2016-04-19 13 views
0

Ich habe versucht, LDAP-Authentifizierung mit Federsicherheit unter Verwendung der Konfiguration unten zu tun. Die Authentifizierung war erfolgreich.Spring Security + Ldap Authentifizierung

<authentication-manager> 
    <ldap-authentication-provider 
     user-search-filter="(uid={0})" 
     user-search-base="ou=people" 
     > 
    </ldap-authentication-provider> 
    </authentication-manager> 

    <ldap-server url="ldap://ldap.XXX.net/dc=XXX,dc=com" manager-dn="dc=XXX,dc=com" manager-password="" /> 

Jetzt brauche ich Benutzerdaten wie Domain zu bekommen, Organisation usw. von ldap selbst, durch java ich in der Lage bin unter Verwendung der Ergebnisse zu erhalten, indem Suchmethode von LdapContext aufrufen. Gibt es einen ähnlichen Weg, um nach einer erfolgreichen Authentifizierung die erforderlichen Details mit der Federsicherheit zu erhalten?

LdapContext ctx = null; 
    NamingEnumeration<SearchResult> results = null; 
    results = ctx.search(baseDn,searchFilter,controls); 

Antwort

0

können Sie verwenden, um die userContextMapper Eigenschaft auf dem LDAP-Authentifizierungsanbieter:

<authentication-manager> 
     <ldap-authentication-provider 
      user-search-filter="(uid={0})" 
      user-search-base="ou=people" 
      user-context-mapper-ref="customUserContextMapper" /> 
      > 
     </ldap-authentication-provider> 
     </authentication-manager> 


    public class CustomUserContextMapper extends LdapUserDetailsMapper { 
     @Override 
     public UserDetails mapUserFromContext(DirContextOperations ctx, String username, Collection<? extends GrantedAuthority> authorities) {} 

    } 

Sie dann ctx notwendigen Informationen abfragen können.

+0

Danke Michael. Es funktionierte. – Nagendra

Verwandte Themen