小编Ant*_*ton的帖子

从用户的多个OU递归查询LDAP角色

我在WildFly 9.0.2服务器上运行Web应用程序,该服务器具有自定义登录领域(需要以递归方式查询为组织单位B查询的组织单位B的多个组织单位A,该组织单位为独立配置).像这样的xml:

<security-realm name="LoginRealm">
   <authentication>
       <ldap connection="EC2" base-dn="ou=users,dc=test,dc=de">
           <username-filter attribute="uid"/>
       </ldap>
   </authentication>
</security-realm>
...
<security-domain name="other" cache-type="default">
    <authentication>
        <login-module code="de.test.LoginModule" flag="required">
            <module-option name="principalDNPrefix" value="uid="/>
            <module-option name="principalDNSuffix" value=",ou=users,dc=test,dc=de"/>
            <module-option name="rolesCtxDN" value="ou=groups,dc=test,dc=de"/>
            <module-option name="roleAttributeID" value="cn"/>
            <module-option name="roleAttributeIsDN" value="false"/>
            ...
Run Code Online (Sandbox Code Playgroud)

用户通过提供他的用户名(例如testA),密码(例如,无论如何)并从下拉菜单(例如UserGroupA)中选择UserGroup来登录网站.然后,扩展LdapLoginModule的自定义登录模块(de.test.LoginModule.class)通过从独立xml中获取前缀并在之后添加后缀来构建主体字符串来执行角色查找,
例如前缀:uid=
Build by 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定义与根据角色和安全性约束被执行.

<security-constraint>
    <display-name>Test-Service</display-name>
    <web-resource-collection>
        <web-resource-name>Test</web-resource-name>
        <url-pattern>/admin/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
        <description>Only Project Processors may see this</description>
        <role-name>Project Processor</role-name>
    </auth-constraint>      
</security-constraint>
Run Code Online (Sandbox Code Playgroud)

现在,组织单元"ProjectControlCenter"已添加到LDAP树结构中,如下所示:

dc=test,dc=de
|-- ou=applications
|    |-- ou=ProjectControlCenter
|    |    |-- …
Run Code Online (Sandbox Code Playgroud)

java ldap ldap-query wildfly wildfly-9

10
推荐指数
1
解决办法
837
查看次数

标签 统计

java ×1

ldap ×1

ldap-query ×1

wildfly ×1

wildfly-9 ×1