我在具有自定义登录领域的WildFly 9.0.2服务器上运行Web应用程序(需要递归地查询在独立的配置中为用户组织单位C查询的组织单位B的组织单位). xml喜欢这样:
...
...
用户通过提供他的用户名(例如testA),密码(例如任何)以及从下拉菜单(例如UserGroupA)中选择用户组来登录网站.
然后,扩展LdapLoginModule的定制登录模块(de.test.LoginModule.class)通过从独立xml获取前缀并在其后添加后缀来构建主体字符串来执行角色的查找
例如前缀:uid =
由LoginModule构建:testA,ou = UserGroupA
后缀:,ou = users,dc = test,dc = de
导致:uid = testA,ou = UserGroupA,ou = users,dc = test,dc = de
现在这样做完美.检索ou = groups,dc = test,dc = de的角色,并执行在具有相应角色的web.xml中定义的安全约束.
Test-Service
Test
/admin/*
GET
POST
Only Project Processors may see this
Project Processor
现在,组织单位“ProjectControlCenter”被添加到LDAP树结构中,如下所示:
dc=test,dc=de
|-- ou=applications
| |-- ou=ProjectControlCenter
| | |-- ou=permissions
| | | |-- cn=group.Project Processor.manage
| | | |-- cn=group.Project Processor.read
| | | |-- cn=group.Project Monitorer.read
| | | |-- ...
| | |-- ou=resources
| | | |-- cn=ProjectControlCenter.Applicaton
| | | |-- cn=ProjectControlCenter.List
| | | |-- cn=ProjectControlCenter.System
| | | |-- ...
|-- ou=groups
| | |-- cn=Project Processor
| | |-- cn=Project Monitorer
| | |-- ...
| |-- ou=users
| | |-- ou=UserGroupA
| | | |-- uid=testA
| | | |-- uid=testB
| | | |-- uid=testC
| | |-- ou=UserGroupB
| | |-- ...
现在我不仅需要查询角色为ou = groups,dc = test,dc = de,还可以查询所有ou = permissions,ou = ProjectControlCenter,ou = applications,dc = test,dc =一个独特的成员,并添加到用户.
另外还需要一个查询来获取所有的ou =资源,ou = ProjectControlCenter,ou = applications,dc = test,dc = de其中ou = permissions,ou = ProjectControlCenter,ou = applications,dc = test,dc = de是一个独特的成员,也添加到用户.
所以问题是:有没有办法递归查询特定用户的所有组,通过LDAP配置为这些组和资源的权限进行递归查询,还是需要重载createLdapInitContext(String username,Object credential)方法LdapLoginModule.class来实现所需的查询?