作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Spring Boot 1.5.9
应用程序中,我重置了密码。使用 token ,我能够识别正在重置密码的用户。
这是我更新已连接用户密码的方法:
public void updatePassword(User entity) {
if (null != entity.getOldPassword() && null != entity.getPassword()) {
userDetailsService.changePassword(entity.getOldPassword(), encrypt(entity.getPassword()));
}
}
我使用LdapUserDetailsManager userDetailsService
,来自spring security ldap 4.2.3.RELEASE
,我没有看到任何方法来重置我拥有的用户的密码>用户名
来自。
如何使用用户名
(或 ldap 中的uid
)重置密码?
最佳答案
我就是这样做的:
DistinguishedName dn = new DistinguishedName(dn_string);
Attribute passwordAttribute = new BasicAttribute(passwordAttr,
newPassword);
ModificationItem[] modificationItems = new ModificationItem[1];
modificationItems[0] = new ModificationItem(
DirContext.REPLACE_ATTRIBUTE, passwordAttribute);
/*
Attribute userPasswordChangedAttribute = new BasicAttribute(
LDAP_PASSWORD_CHANGE_DATE, format.format(convertToUtc(null)
.getTime()) + "Z");
ModificationItem newPasswordChanged = new ModificationItem(
DirContext.REPLACE_ATTRIBUTE, userPasswordChangedAttribute);
modificationItems[1] = newPasswordChanged;
*/
getLdapTemplate().modifyAttributes(dn, modificationItems);
我更喜欢这种方法,因为我使用的 spring security ldap 版本没有使用密码覆盖来更改密码,以使其更加一致,否则,如果您使用的是较新版本的 spring security ldap,更喜欢第二种方法。
关于java - 如何在 Spring 中重置 LDAP 密码(忘记密码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61722236/
我是一名优秀的程序员,十分优秀!