【发布时间】:2011-11-12 03:36:31
【问题描述】:
我们在基于 Spring MVC 的 Web 应用程序中使用 Spring Security。
我们正在使用 Spring Security 的 LDAP 模块进行身份验证,该模块工作正常。现在我需要从 LDAP 获取用户密码以保存在数据库中。
为此,我在我的代码中使用它。
public class PersonContextMapper implements UserDetailsContextMapper {
public UserDetails mapUserFromContext(DirContextOperations ctx, String username, Collection<GrantedAuthority> authorities) {
Person.Essence p = new Person.Essence(ctx);
p.setUsername(username);
p.setAuthorities(authorities);
Object passwordValue = ctx.getObjectAttribute("userPassword");
return p.createUserDetails();
}
public void mapUserToContext(UserDetails user, DirContextAdapter ctx) {
Assert.isInstanceOf(Person.class, user, "UserDetails must be a Person instance");
Person p = (Person) user;
p.populateContext(ctx);
}
}
但我没有得到密码的任何值。它始终为空。
请帮忙。
PS。我的身份验证成功。这意味着在登录表单中输入的密码与存储在 LDAP 中的密码正确匹配。
【问题讨论】:
标签: passwords ldap spring-security