Я пытаюсь получить роли LDAP в моем Spring Boot Rest API. Однако я получаю org.springframework.ldap.NameNotFoundException
Я не знаком с LDAP, но попробовал следующие руководства:
Если я удаляю groupSearchBase в следующем фрагменте, код запускается, однако мне нужно получить роли ...
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.authorizeRequests()
.antMatchers("/login").permitAll()
.antMatchers("/page1").hasRole("Role1")
.antMatchers("/page2").hasRole("Role2")
.and()
.formLogin();
}
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.ldapAuthentication()
.userSearchFilter("(&(sAMAccountName={0})(memberOf=cn=Users,OU=Group2,OU=Group1,dc=dc3,dc=dc2,dc=dc1))")
.groupSearchBase("OU=Group2,OU=Group1,dc=dc3,dc=dc2,dc=dc1")
.contextSource()
.url(ldapUrls + ldapBaseDn)
.managerDn(ldapSecurityPrincipal)
.managerPassword(ldapPrincipalPassword);
}
}
Мое исключение:
org.springframework.ldap.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-031001E4, problem 2001 (NO_OBJECT), data 0, best match of:
'CN=Users,DC=dc3,DC=dc2,DC=dc1'
]; nested exception is javax.naming.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-031001E4, problem 2001 (NO_OBJECT), data 0, best match of:
'CN=Users,DC=dc3,DC=dc2,DC=dc1'
]; remaining name 'OU=Group2,OU=Group1,dc=dc3,dc=dc2,dc=dc1'