【发布时间】:2017-09-25 09:24:24
【问题描述】:
如果我的 ldap OU 的密码属性被隐藏了,会不会有问题?在 Spring Security 中我必须做一些额外的配置吗?如果我目前的 ldap 结构如下:
test cn密码属性是隐藏的,如何配置spring security做ldap认证?
目前我已将其配置为:
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.ldapAuthentication()
.userDnPatterns(USER_DN_PATTERNS)
.groupSearchBase("ou=groups")
.contextSource(contextSource())
.passwordCompare()
.passwordEncoder(new LdapShaPasswordEncoder())
.passwordAttribute("UnicodePwd");
}
@Bean
public DefaultSpringSecurityContextSource contextSource() {
DefaultSpringSecurityContextSource contextSource = new DefaultSpringSecurityContextSource(Arrays.asList(LDAP_URL), BASE_DN);
contextSource.setUserDn(USER_DN);
contextSource.setPassword(USER_PASSWORD);
return contextSource;
}
DN 如下:
private static final String USER_DN_PATTERNS = "OU=Usuarios";
private static final String BASE_DN = "dc=mutualser," + "dc=org";
但是当我尝试进行身份验证时,我得到一个 NO_ATTRIBUTE_OR_VAL 错误(我确定这是密码属性的名称)
【问题讨论】:
标签: java spring spring-security ldap