如何用Spring验证密码

use*_*997 7 java authentication passwords spring

我已经找到了如何散列某个密码并使用SpringMVC将其保存在数据库中:

BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String pw = passwordEncoder.encode("test");
Run Code Online (Sandbox Code Playgroud)

现在的问题是,我如何验证来自请求的密码,让用户登录我的网络应用程序?经过一些研究,我看到,有很多方法可以做到这一点.一些解决方案适用于用户角色.

我的webapps应该做的是为我的用户提供一个他们可以注册的登录页面(这里我将使用上面显示的代码保存密码).注册后,他们应该能够登录,这意味着我需要从登录表单验证密码.那里有最先进的例子吗?

San*_*jay 12

这是原始密码与编码密码匹配的方式:

passwordEncoder.matches("rawPassword", user.getPassword()),
Run Code Online (Sandbox Code Playgroud)

但正如其他人所说,自己编写安全性是很麻烦的,所以我建议使用Spring Security.是的,它确实需要学习,但你可以找到很好的教程.是一个独特的教程(免责声明:我是作者).


Kev*_*oke 0

要验证用户输入的密码是否正确,请对输入的值使用相同的单向哈希,然后将其与之前的哈希值进行比较 - 如果它们相同,则输入的密码是正确的。