gpt4 book ai didi

java - Java EE 服务器上的动态角色

转载 作者:搜寻专家 更新时间:2023-10-30 21:08:32 25 4
gpt4 key购买 nike

我想在专用应用程序中管理用户和角色。例如,此应用程序的用户(“customerX 老板”)可以创建一个新角色“customerX 员工”。如果员工访问 Java EE 应用程序服务器 (GlassFish 3),他应该获得角色“customerX employee”。

这听起来很简单,但它不受 Java EE 支持,因为组在启动时被映射到角色,并且应用程序中的角色是静态的。

在 Java EE (6) 环境中运行时管理用户角色的最佳方式是什么?

最佳答案

Java EE 中的声明式安全性确实不适合此类要求。安全问题可以分为两部分:

  • 身份验证
  • 授权

我曾经有过类似的需求。我们使用内置身份验证来设置主体,然后依赖于默认的 Java EE 登录机制。但是我们最终在应用程序级别手动管理授权部分。

事实上,即使是将要加载并与主体关联的角色(isUserInRole 用于 Web 和 isCallerInRole 用于 EJB)也需要在 中指定web.xmlejb.xml 没有提供足够的灵 active 。然后我们必须从 LDAP 或 ActiveDirectory 手动加载角色(根据委托(delegate)人)。然后,我们使用 EJB3 拦截器和 Servlet 过滤器自行执行安全检查。

不过,我强烈建议坚持使用基于角色的访问控制 (RBAC),不要实现更花哨的东西。有几个框架可以帮助处理自制的 RBAC。

我们还查看了 JSecurityAcegi Security他们看起来很有趣。

关于java - Java EE 服务器上的动态角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2230717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com