Как сопоставить группы LDAP ролям - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь получить роли 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'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...