3

我正在使用 Spring LDAP 和 Spring security 的最新版本。另外,我正在使用基于注释的配置,并且我没有 XML 配置文件。

我想要实现的是非常基本的,我希望能够允许用户从我的 Web 应用程序更改他们的密码。

我发现我可以通过 DirContext.modifyAttributes 执行该请求。这个方法需要两个属性,第一个是当前的userDn,不知道怎么轻松通过Spring。我很确定有一个功能可以得到它。

然后使用密码属性作为第二个参数的修改项。现在,我如何知道需要应用于用户提供的密码的密码编码?

我从来没有使用过 Spring LDAP / Security,一个小而简单的例子会很棒。现在,我正在针对内存中的 ldap 进行测试,但我必须在本周末切换到真正的 LDAP。

谢谢!

4

1 回答 1

3

您需要使用 的实例org.springframework.security.ldap.userdetails.LdapUserDetailsManager,它实现UserDetailsManager并具有更改用户密码的方法。要在非 XML 配置中实例化它,请执行以下操作:

@Bean
public UserDetailsService getUserDetailsService() {
    return new LdapUserDetailsManager(); // TODO give it whatever constructor params it needs
}
于 2014-07-22T20:38:32.330 回答