5

我正在尝试将 Java EE 6 的用户角色的安全概念映射到Apache Shiro角色用户权限的概念,我的理解是它们是不兼容的。

阅读Java EE 6 安全教程,似乎该模型过于严格:是在每个服务器而不是每个应用程序的基础上配置的,这实际上只给我们留下了两个灵活的概念来表达授权机制:用户角色,存在于简单的 1 对 N 关系中。相比之下,Shiro 的角色用户权限模型更加动态,因为它允许在注释代码中硬编码权限并修改角色权限的映射在运行时随着事情的变化或新角色的引入。我看不出如何根据 Java EE 6 模型对容器管理的授权做同样的事情。

我的理解正确吗?因为这意味着容器管理的授权不能真正走得太远。

4

1 回答 1

2

它们不兼容,我认为 Java EE 安全性的设计者弄错了,因为术语似乎与 ROLES 无关。

根据经验,我知道提供基于 ROLE 的访问控制(在他们的文档中建议)只会在您想向其他组/角色打开功能时导致问题。映射回角色(或组)的基于权限的访问似乎效果最好,因为它是抽象级别的重新映射练习,而不是重新编码/重新注释的练习。

我可以看出您会对 Java EE 安全模型感到困惑。我建议仔细看看 Shiro 以及它是如何模拟应用程序级安全性的。Shiro 的创建者 Les Hazelwood 写了一篇关于 RBAC的博客,这对于需要细粒度控制甚至到实例级别的应用程序来说非常有意义。

于 2012-09-20T14:27:09.273 回答