Luc*_*lis 0 spring ldap active-directory spring-security spring-ldap
我无法使用真实的活动目录进行身份验证,让我更好地解释一下我尝试使用 spring.io 提出的示例进行身份验证,没有问题,内部服务启动没有任何问题。参考https://spring.io/guides/gs/authenticating-ldap/
我试图通过插入我的活动目录的配置来修改下面的代码,但没有成功。您能否指导我或向我展示一个真实的案例,在不使用示例中的内部服务的情况下建立真正的连接?我在网上查看,但发现一切都与官方示例相似,没有任何实际案例
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.ldapAuthentication()
.userDnPatterns("uid={0},ou=people")
.groupSearchBase("ou=groups")
.contextSource()
.url("ldap://localhost:8389/dc=springframework,dc=org")
.and()
.passwordCompare()
.passwordEncoder(new LdapShaPasswordEncoder())
.passwordAttribute("userPassword");
}
Run Code Online (Sandbox Code Playgroud)
错误显示:LDAP处理过程中出现未分类异常;嵌套异常是 javax.naming.NamingException: [LDAP: error code 1 - 000004DC: LdapErr: DSID-0C0907C2, comment: 为了执行此操作,必须在连接上完成成功的绑定。, data 0, v2580
小智 5
是的,通过 LDAP 进行身份验证太痛苦了。为了能够对 AD 执行身份验证,您需要使用ActiveDirectoryLdapAuthenticationProvider。这是工作示例:
@Override
protected void configure(AuthenticationManagerBuilder auth) {
ActiveDirectoryLdapAuthenticationProvider adProvider =
new ActiveDirectoryLdapAuthenticationProvider("domain.com", "ldap://localhost:8389");
adProvider.setConvertSubErrorCodesToExceptions(true);
adProvider.setUseAuthenticationRequestCredentials(true);
auth.authenticationProvider(adProvider);
}
Run Code Online (Sandbox Code Playgroud)
为了节省您的时间,请阅读以下内容,这非常重要: AD 身份验证文档
| 归档时间: |
|
| 查看次数: |
4961 次 |
| 最近记录: |