В настоящее время я создаю новое веб-приложение с использованием Spring Boot и начал процесс интеграции Spring Security для аутентификации. После успешного следования руководству по LDAP на основе Spring Boot я хотел указать свой JavaConfig на основе конфигурации моего экземпляра Active Directory.
Мое приложение теперь обрабатывает неверные учетные данные, как и ожидалось, но действительные учетные данные теперь приводят к
javax.naming.PartialResultException: Unprocessed Continuation Reference(s); remaining name ''
Это распространенная проблема — существует число of места, где возникла эта проблема. Похоже, что решение устанавливает для Context.REFERRAL значение «следовать», но я не могу найти никакой документации, указывающей, как установить этот параметр с помощью JavaConfig. Является ли мой единственный вариант вернуться к конфигурации на основе XML? Кажется, что Spring подталкивает разработчиков к JavaConfig, поэтому я бы хотел по возможности избегать смешения двух подходов.
Ниже приведена моя конфигурация безопасности:
@Configuration
@EnableWebMvcSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/css/**").permitAll().anyRequest()
.fullyAuthenticated().and().formLogin();
}
@Configuration
protected static class AuthenticationConfiguration extends
GlobalAuthenticationConfigurerAdapter {
@Override
public void init(AuthenticationManagerBuilder auth) throws Exception {
auth.ldapAuthentication()
.userSearchBase("")
.userSearchFilter("(&(cn={0}))").contextSource()
.managerDn("<username>")
.managerPassword("<password>")
.url("ldap://<url>");
}
}
}