我正在开发一个由不同域组成的 Web 应用程序。我试图实现分层 RBAC 进行授权。每个域在其 bo 实现中都有一些预定义的操作。以下是我的 bo 包层次结构。
com.mycompany.bo
...domain1
...domain2
。
...域N
...rbac
我在第一次部署时预定义了以下角色层次结构,我不想在第一次部署后维护 rbac 操作,我的意思是域 rbac 操作应该由域管理员自行维护。
Root
Domain1Admin Domain2Admin .. DomainNAdmin
root 角色可以授权 bo 实现下的所有操作,每个域管理员也可以授权其所有自己的操作和一些 rbac 操作,如创建用户、编辑用户、创建角色等。
最后,我开发了遵循facelet工具的项目的ui部分,例如include标签,以便我可以区分页面的ui片段。结果,我可以根据用户是否有权查看片段来呈现 ui 片段。任何对系统授权设计的建议都会有很大帮助。
现在,我来到了项目的身份验证部分。在这个系统中,用户不仅在内部进行身份验证,还应该通过 Web 服务或 ldap 在外部系统上进行身份验证,因为用户可能已经在那里创建。
Spring 框架通过 ldap(在 xml 中静态可配置)提供了一些设施认证。就我而言,我想在运行时添加删除编辑新的 LDAP 定义,并且可以更改用户身份验证方法(可能是从组合框中选择新的 LDAP)。如何在 Spring 中动态添加新的 LDAP 定义,我应该继续使用 spring 安全性还是自己实现这个功能?