我试图在我的应用程序中使用Ldap和SSL。我使用Appache Directory Studio配置本地连接。我在ADS中测试了连接,并且通过SSL建立连接成功,但是当我尝试登录我的Web应用程序时仍然出现错误:
原因:简单绑定失败:localhost:10636;嵌套异常是javax.naming.CommunicationException:简单绑定失败:localhost:10636 [根异常是javax.net.ssl.SSLHandshakeException:握手期间远程主机关闭连接]
我使用具有Spring安全依赖性的Spring-boot。 这是我的WebSecurityConfig类(它没有ssl工作正常 - 我将端口更改为ssl并且它停止工作......)。
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().fullyAuthenticated()
.and()
.formLogin();
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.ldapAuthentication()
.userDnPatterns("uid={0},ou=people")
.groupSearchBase("ou=groups")
.contextSource(contextSource())
.passwordCompare()
.passwordEncoder(new LdapShaPasswordEncoder())
.passwordAttribute("userPassword");
}
@Bean
public DefaultSpringSecurityContextSource contextSource() {
return new DefaultSpringSecurityContextSource(Arrays.asList("ldaps://localhost:10636/"), "dc=springframework,dc=org");
}
}