如何解决Spring Security无法使用ActiveDirectoryLdapAuthenticationProvider连接到本地ldap
我正在尝试通过ldap对某些用户进行身份验证,目前它只是本地ldap,来自官方文档https://spring.io/guides/gs/authenticating-ldap/中的一个。 事实是我正在尝试使用ActiveDirectoryLdapAuthenticationProvider连接到它,但是我真的不明白我必须给它提供什么参数。我的配置是这样的:
@Override
@Bean
public AuthenticationManager authenticationManagerBean() throws Exception {
return new ProviderManager(Arrays.asList(internalAdAuthenticationProvider()));
}
@Bean
@RefreshScope
public AuthenticationProvider internalAdAuthenticationProvider() {
ActiveDirectoryLdapAuthenticationProvider provider = new ActiveDirectoryLdapAuthenticationProvider("springframework.org","ldap://localhost:8389","ou=groups,dc=springframework,dc=org" );
provider.setConvertSubErrorCodesToExceptions(true);
provider.setUseAuthenticationRequestCredentials(true);
return provider;
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(internalAdAuthenticationProvider());
auth.eraseCredentials(false);
}
在application.properties上,我有这个:
spring.ldap.embedded.port=8389
spring.ldap.embedded.ldif=classpath:test-server.ldif
spring.ldap.embedded.base-dn=dc=springframework,dc=org
每当我尝试请求验证用户身份时,都会收到此错误:
Handling error: InvalidNameException,[LDAP: error code 34 - Unable to parse bind DN 'admin
@springframework.org': Unable to parse string 'admin
@springframework.org' as a DN because it does not have an equal sign after RDN attribute 'admin
@springframework.org'.]; nested exception is javax.naming.InvalidNameException: [LDAP: error code 34 - Unable to parse bind DN 'admin
@springframework.org': Unable to parse string 'admin
@springframework.org' as a DN because it does not have an equal sign after RDN attribute 'admin
@springframework.org'.]
此外,我还找到了一个看起来很有希望测试连接的docker容器: https://hub.docker.com/r/dwimberger/ldap-ad-it/ 我已经尝试过,但是我不明白我必须给ActiveDirectoryLdapAuthenticationProvider构造函数使用什么参数:(
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。