Spring Security mit LDAP und benutzerdefinierte UserDetailsContextMapper
Ich versuche, Spring Security 3.05 arbeiten mit einer modifizierten UserDetailsContextMapper, so dass ich ein paar mehr Infos aus dem LDAP, die Sie, wie ich muss, eine Aufgabe, die scheint ziemlich einfach, aber hatte keinen Erfolg.
Habe ich konfiguriert Spring Security für die Verwendung der LDAP-Authentifizierung mit den folgenden Bohnen:
<bean id="contextSource"
class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
<constructor-arg value="ldaps://192.168.1.102:636" />
<property name="userDn" value="manager" />
<property name="password" value="password" />
</bean>
<bean id="ldapAuthProvider"
class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">
<constructor-arg>
<bean class="org.springframework.security.ldap.authentication.BindAuthenticator">
<constructor-arg ref="contextSource" />
<property name="userSearch">
<bean id="userSearch" class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">
<constructor-arg index="0" value="" />
<constructor-arg index="1" value="(mail={0})" />
<constructor-arg index="2" ref="contextSource" />
</bean>
</property>
</bean>
</constructor-arg>
<property name="userDetailsContextMapper" ref="myContextMapper" />
</bean>
Aber auch wenn ich den vorgegebenen myContextMapper
als:
<bean id="myContextMapper" class="com.mypackage.MyLDAPUserDetailsMapper">
<property name="rolePrefix" value="TEST_PREFIX" />
</bean>
funktioniert es nicht. was bedeutet, dass die custom mapper wird ignoriert (ich bekomme keine debug-Ausgabe auch immer).
p.s. applicationContext-security.xml kann unten gesehen werden, und abgesehen von den benutzerdefinierten UserDetailsMapper das ist ignoriert worden, Authentifizierung und Rollenzuweisung ist in Ordnung.
<authentication-manager>
<ldap-authentication-provider server-ref="contextSource"/>
</authentication-manager>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Brauchen Sie nicht zu konfigurieren, die in-built UserDetailsContextMapper Klassen. Spring Security greift automatisch nach den richtigen
UserDetailsContextMapper
basierend auf dem Typ derLdapUserDetails
Klasse angefordert, die konfiguriert istuser-details-class
Attributldap-authentication-provider
. Wenn Sie mit Ihrem eigenen Kontext-mapper konfigurieren Sie es mithilfe des Attributsuser-context-mapper-ref
.<ldap-authentication-provider server-ref="contextSource"/>
verwenden Sie<authentication-provider ref="ldapAuthProvider"/>