Ich habe in Active Directory über LDAP erfolgreich verbunden zu authentifizieren, und mit dem folgend in meinem LDAP.xml habe ich meine benutzerdefinierten Behörden Populator genannt:Wie verwende ich einen benutzerdefinierten Behörden-Populator mit Spring Security und dem ActiveDirectoryLdapAuthenticationProvider?
<bean id="ldapAuthenticationProvider"
class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">
<constructor-arg ref="ldapBindAuthenticator"/>
<constructor-arg ref="ldapAuthoritiesPopulator"/>
</bean>
<bean id="ldapBindAuthenticator"
class="org.springframework.security.ldap.authentication.BindAuthenticator">
<constructor-arg ref="ldapServer"/>
<property name="userSearch" ref="ldapSearch"/>
</bean>
<bean id="ldapSearch"
class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">
<constructor-arg value="CN=Users"/>
<constructor-arg value="(sAMAccountName={0})"/>
<constructor-arg ref="ldapServer"/>
</bean>
<bean id="ldapAuthoritiesPopulator"
class="my.project.package.ActiveDirectoryLdapAuthoritiesPopulator"/>
<bean id="ldapServer"
class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
<constructor-arg value="ldap://192.168.0.2/dc=test,dc=server"/>
<property name="userDn" value="[email protected]"/>
<property name="password" value="ldap"/>
<property name="baseEnvironmentProperties">
<map>
<entry key="java.naming.referral">
<value>follow</value>
</entry>
</map>
</property>
</bean>
Dies funktioniert gut, und ich kann das Benutzer-ermitteln Genehmigung auf der Grundlage ihrer Gruppenzugehörigkeit, aber ich würde lieber tun dies durch den Einbau-Provider Active Directory LDAP-Authentifizierung:
<bean id="ldapAuthenticationProvider"
class="org.springframework.security.ldap.authentication.ad.ActiveDirectoryLdapAuthenticationProvider">
<constructor-arg value="test.server"/>
<constructor-arg value="ldap://192.168.0.2:389"/>
<property name="convertSubErrorCodesToExceptions" value="true"/>
</bean>
Das Problem mit der oben ist, dass meine Zollbehörden populator ist (natürlich) nicht genannt, so während ich meine Benutzer authentifizieren kann (was mit dem oben genannten funktioniert), ich Ich bin ohne die Gruppen (die ich brauche, um die Genehmigung zu bestimmen).
Ich fühle mich wie dies eine einfache Frage ist, aber für das Leben von mir kann ich hier oder anderswo keine Antwort finden. Muss ich die ActiveDirectoryLdapAuthenticationProvider-Klasse erweitern und von dort aus meinen Behörden-Populator aufrufen?
(Danke für all die Hilfe, die diese Seite mir seit mehreren Jahren gegeben hat; die Wirksamkeit dieser Seite kann daran gemessen werden, dass ich erst kürzlich versucht habe, einen Account zu erstellen, und dies ist meine erste Frage. Vielen dank im Voraus für Ihre Hilfe.)