将当前密码字段添加到 CAS 密码更改请求
Adding a current password field to CAS password change request
我正在尝试使用 CAS 6.2.7 和 Thymeleaf 实施最少字符轮换密码重置策略。由于密码散列是一回事,因此必须在将密码请求发送到服务器之前进行此检查。因此,我需要一个当前密码字段作为密码重置视图的一部分。
使用的模型是CAS的cas-server-support-pm-core模块中的PasswordChangeRequest。这个模型有一个 password 字段和一个 confirmedPassword 字段。我需要修改此模型以包含 currentPassword 字段,或者以某种方式 link 我自己的模型到表单并将它们一起发送。
我已经在 https://github.com/apereo/cas/blob/master/docs/cas-server-documentation/webflow/Webflow-Customization-Extensions.md 中找到的指导的帮助下尝试了这两个选项。我不是很精通 Spring WebFlow 并且怀疑我什至不熟悉。
有什么办法可以实现吗?如果可以,怎么做?
最终尝试更改密码的组件是执行此操作的 PasswordManagementService
的实现:
boolean change(Credential credential, PasswordChangeRequest pcr)
throws InvalidPasswordException {
...
}
如果您设计自己的自定义服务,您可以实施 change()
方法,在那里,您可以使用 credential
访问原始密码,然后将其转换为 UsernamePasswordCredential
.
自定义实现通常具有以下大纲:
@Configuration("MyPasswordConfiguration")
@EnableConfigurationProperties(CasConfigurationProperties.class)
public class MyPasswordConfiguration {
@Bean
public PasswordManagementService passwordChangeService() {
...
}
}
我正在尝试使用 CAS 6.2.7 和 Thymeleaf 实施最少字符轮换密码重置策略。由于密码散列是一回事,因此必须在将密码请求发送到服务器之前进行此检查。因此,我需要一个当前密码字段作为密码重置视图的一部分。
使用的模型是CAS的cas-server-support-pm-core模块中的PasswordChangeRequest。这个模型有一个 password 字段和一个 confirmedPassword 字段。我需要修改此模型以包含 currentPassword 字段,或者以某种方式 link 我自己的模型到表单并将它们一起发送。
我已经在 https://github.com/apereo/cas/blob/master/docs/cas-server-documentation/webflow/Webflow-Customization-Extensions.md 中找到的指导的帮助下尝试了这两个选项。我不是很精通 Spring WebFlow 并且怀疑我什至不熟悉。
有什么办法可以实现吗?如果可以,怎么做?
最终尝试更改密码的组件是执行此操作的 PasswordManagementService
的实现:
boolean change(Credential credential, PasswordChangeRequest pcr)
throws InvalidPasswordException {
...
}
如果您设计自己的自定义服务,您可以实施 change()
方法,在那里,您可以使用 credential
访问原始密码,然后将其转换为 UsernamePasswordCredential
.
自定义实现通常具有以下大纲:
@Configuration("MyPasswordConfiguration")
@EnableConfigurationProperties(CasConfigurationProperties.class)
public class MyPasswordConfiguration {
@Bean
public PasswordManagementService passwordChangeService() {
...
}
}