我有一个可以在不同场景中调用的弹簧控制器方法。这是一个例子......
@RequestMapping("/resetpassword")
public ModelAndView resetpassword( @Valid @ModelAttribute("resetpasswordForm") ResetPawdFormForm resetPawdFormForm, ModelAndView modelAndView){
...此方法可以在 3 种不同的情况下执行....
使用来自发送到用户电子邮件的用户重置密码链接的超链接.. 例如:localhost/myApp/login/resetpassword// 在这里我可以在 DB 中验证 userID 和 activationSecretCode 并让用户重置密码
用户可以从用户设置页面点击重置密码链接。例如:由于用户已经来自用户设置页面,我可以验证 userSession 并允许他重置密码
用户可以首次登录成功,但由于管理员要求重置初始默认密码,因此被迫重置密码。例如:在这个用户中既没有会话,也没有传递任何激活码来验证。登录方法验证用户 ID/默认密码并重定向到重置密码映射(方法=GET)。
系统如何验证用户请求并允许他重置密码?
一种替代方法是,使用 flash 属性并将 authenticationKey 设置为 flash 属性……这可以在 resetpassword 方法中进行验证。
有没有其他方法来实现这个......
注意:我在 Post: Spring: How to pass Java objects during redirect while using ModelAttribute中发布了实现此方法的问题
有什么帮助吗?