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?
Haben Sie eine Lösung gefunden? – Saita