2010-02-03 5 views
0

Je me suis mis à essayer de faire fonctionner l'authentification LDAP avec cette application (apache Roller). Il semble que ce serait simplement "remplir les bons champs et partir", mais je tente toujours de m'authentifier sur la base de données (la méthode d'authentification par défaut).Spring security 2.0.5 Configuration de l'authentification LDAP avec Active Directory

Je ne comprends pas ce qui dit à spring-security d'utiliser un gestionnaire d'authentification plutôt qu'un autre, c'est probablement la première chose à changer. Après avoir passé deux jours à lire la documentation, pas plus près de la comprendre.

<beans:bean id="ldapUserSearch" class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch"> 
    <beans:constructor-arg index="0" value="CN=stuff,DC=domain"/> 
    <beans:constructor-arg index="1" value="uid={0}"/> 
    <beans:constructor-arg index="2" ref="initialDirContextFactory"/>   
    <beans:property name="searchSubtree" value="true"/>   
</beans:bean>  

<beans:bean id="ldapAuthProvider" class="org.springframework.security.providers.ldap.LdapAuthenticationProvider"> 
    <beans:constructor-arg> 
     <beans:bean class="org.springframework.security.providers.ldap.authenticator.BindAuthenticator"> 
      <beans:constructor-arg ref="initialDirContextFactory"/> 
      <beans:property name="userSearch" ref="ldapUserSearch"/> 
     </beans:bean> 
    </beans:constructor-arg> 
    <beans:constructor-arg ref="jdbcAuthoritiesPopulator"/> 
</beans:bean>  

<beans:bean id="jdbcAuthoritiesPopulator" class="org.apache.roller.weblogger.ui.core.security.AuthoritiesPopulator"> 
    <beans:property name="defaultRole" value="groupNameUserHasToBelongTo"/> 
</beans:bean> 

Répondre

0

Nous avons besoin de plus de détails pour vous aider. Quel message d'erreur voyez-vous s'il y en a, copiez la trace de la pile. Une chose que j'ai remarquée est dans le BindAuthenticator, vous pouvez spécifier la source de contexte et userDnPatterns au lieu de créer le bean ldapUserSearch.

<bean id="ldapAuthProvider" 
     class="org.springframework.security.providers.ldap.LdapAuthenticationProvider"> 
    <constructor-arg> 
    <bean class="org.springframework.security.providers.ldap.authenticator.BindAuthenticator"> 
     <constructor-arg ref="contextSource"> 
     </constructor-arg> 
     <property name="userDnPatterns"> 
      <list> 
       <value>CN={0},OU=Users,OU=_Units,DC=corporate,DC=mycompany,DC=com</value> 
      </list> 
     </property> 
     <property name="userAttributes"> 
      <list> 
       <value>objectSID</value> 
       <value>userPrincipalName</value>      
      </list> 
     </property> 
    </bean> 
    </constructor-arg> 
    <constructor-arg> 
     <bean class="com.security.AuthoritiesPopulator"> 
     </bean> 
    </constructor-arg> 
    <property name="userDetailsContextMapper"> 
     <bean class="com.corp.CustomLdapUserDetailsMapper"/> 
    </property> 
    <security:custom-authentication-provider/> 
</bean> 
+0

Oui, j'ai vu votre article de blog dans mes recherches. J'ai essayé cela aussi, mais le problème ici ne semble pas être dans les mappages, mais plutôt dans l'appel de ldapAuthProvider. Je n'obtiens aucune trace de pile; et je ne semble pas essayer de s'authentifier via ldap. –

Questions connexes