SpringSecurity - 使用matches方法匹配原密码来修改密码

业务需求:修改密码,要求输入原密码和新密码进行修改密码。

原密码因为使用SpringSecurity中的PasswordEncoder的encode方法进行hash加密了,但我们表单传到后端的是没加密的密码。比如密码是123456,加密后是$10$qRyhbnCnQUkLPiX4J1GdwuaFOrLbWqSfw1mzE7/d7PxgX9Pc83rOq

这时,从数据库获取的是加密后的密码,要与前端传送过来的未加密密码进行比对。需要使用PasswordEncoder的matches方法,返回值为boolean类型。

// 参数inputPwd:未加密密码如:123456
// 参数dbPwd:从数据库获取的加密的密码如:$10$qRyhbnCnQUkLPiX4J1GdwuaFOrLbWqSfw1mzE7/d7PxgX9Pc83rOq
boolean isMatches = passwordEncoder.matches(inputPwd,dbPwd);

匹配成功,则可以对传进来的新密码进行加密进行替换。

当完成修改密码之后,通常都会需要你重新登录。

如果页面中使用了iframe子页面,在这个子页面修改的密码。

我们想要通过父页面进行跳转,怎么办?

// 使用该方法,url是注销的url
parent.location.replace("http://localhost:8083/logout");
发布了100 篇原创文章 · 获赞 25 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_40885085/article/details/104217088