PartialResultException bei der Authentifizierung mit Spring Security und JavaConfig
Ich bin derzeit am erstellen einer neuen web-Anwendung mit Spring Boot und begann der Prozess der Integration von Spring Security für die Authentifizierung. Nach erfolgreichem folgenden der Spring-Boot-Basis LDAP-tutorial, ich wollte meinen JavaConfig-basierte Konfiguration auf meinem Active Directory-Instanz.
Mein Antrag jetzt behandelt schlecht Anmeldeinformationen, wie erwartet, jedoch gültige Anmeldeinformationen nun zur Folge, dass
javax.naming.PartialResultException: Unprocessed Continuation Reference(s); remaining name ''
Dies ist ein häufiges problem-es gibt eine Anzahl der Orte, wo dieses Problem aufgetreten. Die Lösung angezeigt werden festlegen des Kontexts.Weiterleitung zu "Folgen", aber ich finde keine Dokumentation, der angibt, wie zu setzen, dass die option mit JavaConfig. Ist meine einzige Möglichkeit, hier wieder auf eine XML-basierte Konfiguration? Es scheint, wie der Frühling treibt Entwickler in Richtung JavaConfig, so möchte ich vermeiden, das mischen der beiden Ansätze, wenn möglich.
Das folgende ist meine Sicherheit Konfiguration:
@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>");
}
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hatte ich das Gefühl, ich müsste die Verwendung einer Instanz von
LdapContextSource
um dies möglich zu machen (da es bequem hat einesetReferral
Methode), aber ich kämpfte ein wenig mit den details. Ein forum post auf Frühling.io gab mir genug, um zu gehen, und so wie es aussieht habe ich jetzt die Dinge arbeiten.Es ist mir nicht klar, ob es signifikante Mängel mit dem, was ich hier mache, aber es scheint zu funktionieren, so hoffentlich wird dies hilfreich sein, jemand anderes in der Zukunft: