你好,我有使用LDAP創建簡單的登錄問題。我已經從spring.io網站下載了入門項目:link它與ldif文件完美結合,但我想用運行ldap服務器替換它。我已經嘗試了好幾天沒有進展。我與這段代碼(在WebSecurityConfig取代入門項目)春季啓動LDAP安全
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().authenticated().and().httpBasic();
}
@Override
protected void configure(AuthenticationManagerBuilder authManagerBuilder) throws Exception {
authManagerBuilder.authenticationProvider(activeDirectoryLdapAuthenticationProvider()).userDetailsService(userDetailsService());
}
@Bean
public AuthenticationManager authenticationManager() {
return new ProviderManager(Arrays.asList(activeDirectoryLdapAuthenticationProvider()));
}
@Bean
public AuthenticationProvider activeDirectoryLdapAuthenticationProvider() {
ActiveDirectoryLdapAuthenticationProvider provider = new ActiveDirectoryLdapAuthenticationProvider(null, "ldap://ip:port/", "ou=GROUP,dc=domain,dc=com");
provider.setConvertSubErrorCodesToExceptions(true);
provider.setUseAuthenticationRequestCredentials(true);
return provider;
}
}
如果我嘗試用格式「用戶名」,「密碼」控制檯輸出良好的用戶名和密碼登錄最好的結果:ActiveDirectoryLdapAuthenticationProvider:活動目錄身份驗證失敗:提供的密碼無效
如果我使用「[email protected]」和良好的密碼,頁面只是沒有輸出到控制檯重新加載。
如果我使用隨機用戶名和密碼控制檯:Active Directory身份驗證失敗:提供的密碼無效
有人能幫忙嗎?
正如你在ActiveDirectoryLdapAuthenticationProvider的構造函數中使用「空」的域名,則必須使用「的UserPrincipalName」([email protected])來驗證 您可以啓用日誌記錄,以找出爲什麼這不工作或如果你不使用LDAPS或StartTLS擴展操作的網絡跟蹤會肯定地告訴如果LDAP BIND請求成功 –