사용자 지정 로그인 영역이있는 WildFly 9.0.2 서버에서 웹 응용 프로그램을 실행하고 있습니다. 조직에서 쿼리 된 조직 구성 단위 B에 대해 여러 조직 구성 단위 A를 반복적으로 쿼리해야합니다. 그래서 같은 standalone.xml에 구성된 사용자 단위 C는) :사용자에 대한 여러 OU에서 반복적으로 LDAP 역할을 쿼리합니다.
<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"/>
...
사용자는 예를 들어, 자신의 이름 (예 : 테 스타), 암호 (제공하여 웹 사이트에 무엇이든)과에서 사용자 그룹을 선택을에 로그인 드롭 다운 메뉴 (예 : UserGroupA). 그런 다음 LdapLoginModule을 확장하는 사용자 정의 로그인 모듈 (de.test.LoginModule.class)은 독립 실행 형 XML에서 접두사를 가져 와서 뒤에 접미사를 추가하여 주요 문자열을 작성하여 역할 조회를 수행합니다.
예 : 접두사 : 로그인 모듈에 의해 uid=
빌드 : 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에 정의 된 보안 제한 조건이 실행됩니다.
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
으로뿐만 아니라 역할을 조회 할뿐만 아니라 모든 :
<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>
이제 조직 단위 "ProjectControlCenter는"같은 보이는 LDAP 트리 구조에 추가 ou=permissions,ou=ProjectControlCenter,ou=applications,dc=test,dc=de
여기서 할당 된 역할은의 고유 회원이며이를 사용자에게 추가합니다. ou=permissions,ou=ProjectControlCenter,ou=applications,dc=test,dc=de
이 고유 한 구성원 인 모든 ou=resources,ou=ProjectControlCenter,ou=applications,dc=test,dc=de
을 얻으려면 또 다른 쿼리가 필요하며이를 사용자에게도 추가해야합니다.
질문 : 특정 사용자에 대한 모든 그룹, 해당 그룹의 사용 권한 및 LDAP 구성을 통한 사용 권한에 대한 재귀 쿼리 방법이 있습니까? 필요한 쿼리를 달성하기 위해?