PartialResultException ao autenticar com Spring Security e JavaConfig
Atualmente, estou criando um novo aplicativo Web usando o Spring Boot e iniciei o processo de integração do Spring Security para autenticação. Após seguir com sucesso o Spring Boot-basedTutorial LDAP, Eu queria apontar minha configuração baseada em JavaConfig para minha instância do Active Directory.
Meu aplicativo agora lida com credenciais ruins conforme o esperado, mas credenciais válidas agora resultam em
javax.naming.PartialResultException: Unprocessed Continuation Reference(s); remaining name ''
Esse é um problema comum - há umanúmero do lugares onde esse problema foi encontrado. A solução parece estar configurando Context.REFERRAL como "follow", mas não consigo encontrar nenhuma documentação indicando como definir essa opção usando JavaConfig. É minha única opção aqui para reverter para uma configuração baseada em XML? Parece que o Spring está empurrando os desenvolvedores para o JavaConfig, então eu gostaria de evitar misturar as duas abordagens, se possível.
A seguir está minha configuração de segurança:
@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>");
}
}
}