Mar*_*tus 5 authorization shiro java-ee-6
我试图在心理上将Java EE 6 组,用户和角色的安全概念映射到Apache Shiro的角色,用户和权限的概念,我的理解是它们是不兼容的.
阅读Java EE 6安全教程,似乎模型限制性过于严格:基于每个服务器而不是每个应用程序配置组,这实际上只留下了两个灵活的概念来表达授权机制:用户和角色,存在于简单的1对N关系中.相比之下,Shiro的角色模型,用户和权限更加动态,因为它使得人们能够在注释的代码中硬编码权限,并在事情发生变化或引入新角色时在运行时修改角色到权限的映射.我不知道如何根据Java EE 6模型对容器管理的授权做同样的事情.
我的理解是否正确?因为这意味着使用容器管理的授权不能真正走得太远.
它们不兼容,我认为 Java EE 安全性的设计者弄错了,因为有关角色的术语似乎不正确。
根据经验,我知道,当您想向其他组/角色开放功能时,提供基于角色的访问控制(在他们的文档中建议)只会导致出现问题。基于权限的访问映射回角色(或组)似乎效果最好,因为它是抽象级别的重新映射练习,而不是重新编码/重新注释。
我可以理解您会对 Java EE 安全模型感到困惑。我建议仔细研究 Shiro 以及它如何对应用程序级安全性进行建模。Shiro 的创建者 Les Hazelwood 撰写了一篇关于 RBAC 的博客,该博客对于需要细粒度控制(甚至深入到实例级别)的应用程序非常有意义。