2016-08-15 4 views
1

Der DefaultLdapAuthoritiesPopulator legt einen Suchbereich von "ONE_LEVEL" fest, aber ich muss "SUBSCOPE" suchen, um die Liste der Gruppen zu erhalten, denen ein Benutzer angehört.Passen Sie LdapAuthoritiesPopulator in der Konfiguration an

Ich habe die "Konfiguration" -Stil Spring-Setup (Code, nicht XML). Es gibt zwar viele Beispiele dafür, wie ein benutzerdefinierter LdapAuthoritiesPopulator in XML konfiguriert werden kann, aber ich halte mich daran, wie man es im Code macht.

Hier ist, was ich bisher:

@EnableWebSecurity 
public class SecurityConfig extends WebSecurityConfigurerAdapter { 

    @EnableWebSecurity 
    public class SecurityConfig extends WebSecurityConfigurerAdapter { 

     @Autowired 
     public void configure(AuthenticationManagerBuilder auth) throws Exception { 
      auth.ldapAuthentication() 
       .contextSource().url("ldap://ldap.company.org/") 
       .and() 
        .userSearchBase("o=company.org,c=us") 
        .userSearchFilter("(uid={0})") 
        .groupSearchBase("o=company.org,c=us") 
        .groupSearchFilter("(&(objectClass=groupOfUniqueNames)(uniqueMember={0}))"); 
    } 

    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http.formLogin().and().authorizeRequests() 
      .antMatchers("/api/**").authenticated() 
      .anyRequest().permitAll(); 
    } 
} 

Was fehlt, ist, dass ich den Suchbereich auf dem DefaultLdapAuthoritiesPopulator einstellen zu können. Die Klasse selbst stellt eine "setSearchSubtree" -Methode zur Verfügung, aber die LdapAuthenticationProviderConfigurer bietet keine Möglichkeit, sie zu konfigurieren.

Irgendwelche Vorschläge?

+0

Haben Sie eine Lösung gefunden? – Saita

Antwort

0

Sie müssen wie etwas hinzufügen:

final SearchControls searchControls = new SearchControls(); 
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE); 

, bevor Sie Ihre Suche beginnen. Warum es eine "Kontrolle" genannt wird, ist jenseits von mir (ein LDAP-Typ), aber das ist was Spring tut.

-jim

+1

Ich habe das gleiche Problem wie OP, aber Ihre Antwort hilft nicht. Wie sollen wir diesen SearchControl den ganzen Weg durch diese Konfigurationsersteller weiterleiten? – Saita

Verwandte Themen