【发布时间】:2019-07-16 19:13:51
【问题描述】:
我正在使用 LdapTemplate 来使用 LDAP 身份验证,我能够成功地在文件系统中找到用户,但身份验证方法返回 false 并认为我的密码错误。
我已经调试过了,它成功找到了它找到匹配但密码不匹配的对象。
dn: dc=obssjobs,dc=com
objectclass: top
objectclass: domain
objectclass: extensibleObject
dc: obssjobs
# Organizational Units
dn: ou=groups,dc=obssjobs,dc=com
objectclass: top
objectclass: organizationalUnit
ou: groups
dn: ou=people,dc=obssjobs,dc=com
objectclass: top
objectclass: organizationalUnit
ou: people
# Create People
dn: uid=john,ou=people,dc=obssjobs,dc=com
objectclass: top
objectclass: hrexpert
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: John Doe
sn: John
uid: john
password: secret
dn: uid=jihn,ou=people,dc=obssjobs,dc=com
objectclass: top
objectclass: hrexpert
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: Jihn Die
sn: Jihn
uid: jihn
password: secret
dn: uid=jahn,ou=people,dc=obssjobs,dc=com
objectclass: top
objectclass: hrexpert
objectclass: organizationalPerson
objectclass: inetOrgPerson
cn: Jahn Dae
sn: Jahn
uid: jahn
password: 123
认证方式
public boolean authenticate(String username, String password) {
AndFilter filter = new AndFilter();
filter.and(new EqualsFilter("objectclass", "hrexpert")).and(new EqualsFilter("cn", username));
return ldapTemplate.authenticate(DistinguishedName.EMPTY_PATH, filter.toString(), password);
}
这是我在 main 中的测试,记录为“false”
@PostConstruct
public void setup(){
boolean authenticated=hrExpertService.authenticate("Jahn Dae", "123");
log.info("authenticated: " + authenticated);
}
【问题讨论】:
标签: java spring ldap spring-ldap