您好我正在使用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];剩下的名字' /'
答案 0 :(得分:0)
可以找到类似的问题here。
您获得的错误可能是由多个其他原因引起的,因为我们无法看到您的配置。看起来您无法绑定到LDAP。您的LDAP配置正确吗?您是否尝试过像教程指出的那样配置test-server.ldif?