Ldap with ssl - WebSecurityConfig - java

时间:2017-04-18 06:14:59

标签: java ssl spring-boot ldap spring-security-ldap

我试图在我的应用程序中使用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");
    }

}

0 个答案:

没有答案