无法通过Spring Security的LDAP身份验证登录

时间:2017-04-19 13:41:23

标签: java authentication spring-boot active-directory

您好我正在使用Spring Boot,我尝试使用Spring安全性从Active Directory进行用户身份验证。但是我无法将用户登录到应用程序中我尝试了几种东西,这是我尝试过的代码:

@Override
    public void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth
            .ldapAuthentication()
                .userDnPatterns("uid={0},ou=Users")
                .groupSearchBase("ou=groups")
                .contextSource(contextSource())
                .passwordCompare()
                    .passwordEncoder(new LdapShaPasswordEncoder())
                    .passwordAttribute("userPassword");
    }

    @Bean
    public DefaultSpringSecurityContextSource contextSource() {
        return  new DefaultSpringSecurityContextSource(Arrays.asList("ldap://WIN-BSCF2478SL5.Adexample.com"), "CN=Administrator,DC=ADExample,DC=com");
    }

我尝试从here

实施示例

我尝试从管理员登录时收到的错误如下:

原因:LDAP处理期间发生了未分类的异常;嵌套异常是javax.naming.NamingException:[LDAP:错误代码1 - 000004DC:LdapErr:DSID-0C0906E8,注释:为了执行此操作,必须在连接上完成成功绑定。,data 0,v1db1];剩余名称' uid = administrator,ou =用户'

我也尝试使用userSearchFilter而不是userDnPatterns,但这里仍然有例外代码

auth.ldapAuthentication().userSearchFilter("uid={0}").contextSource()
                .url("ldap://WIN-BSCF2478SL5.Adexample.com/DC=ADExample,DC=com").managerDn("Administrator")
                .managerPassword("Passw0rd");

我得到的代码的异常如下: 我得到的例外:原因:[LDAP:错误代码49 - 80090308:LdapErr:DSID-0C0903A9,注释:AcceptSecurityContext错误,数据52e,v1db1];嵌套异常是javax.naming.AuthenticationException:[LDAP:错误代码49 - 80090308:LdapErr:DSID-0C0903A9,注释:AcceptSecurityContext错误,数据52e,v1db1]

最后我也尝试了不提供用户名和密码

auth.ldapAuthentication().userSearchFilter("uid={0}").contextSource()
            .url("ldap://WIN-BSCF2478SL5.Adexample.com/DC=ADExample,DC=com");

它对我来说也没有用,我得到的例外是

原因:LDAP处理期间发生了未分类的异常;嵌套异常是javax.naming.NamingException:[LDAP:错误代码1 - 000004DC:LdapErr:DSID-0C0906E8,注释:为了执行此操作,必须在连接上完成成功绑定。,data 0,v1db1];剩下的名字' /'

1 个答案:

答案 0 :(得分:0)

可以找到类似的问题here

您获得的错误可能是由多个其他原因引起的,因为我们无法看到您的配置。看起来您无法绑定到LDAP。您的LDAP配置正确吗?您是否尝试过像教程指出的那样配置test-server.ldif?