我有一个带有Spring Security(4.2)和ThymeLeaf应用程序的Spring Boot(1.5.6),它允许用户重置密码。所有的html页面都在src / resources / templates中。基本流程是:
新密码将被持久化并由以下代码处理:
@RequestMapping(值=“ / user / savePassword”,方法= RequestMethod.POST) public String savePassword(Locale locale,@RequestParam(“ username”)字符串用户名, @RequestParam(“ password”)字符串密码,模型模型){
//逻辑在这里 ...
“返回”登录“; }
至此,一切都按预期进行了。数据库已更新,控制台日志中没有错误。
提示用户登录页面(尽管浏览器栏上显示“ savePassword”)。提供用户名和新密码,服务器返回403。控制台中没有错误,唯一的错误表示发生了问题是Chrome开发者工具从登录POST返回403。系统会显示默认错误页面。
如果我导航到首页然后登录页面,则可以使用新更改的凭据进行身份验证。
我没有看到错误的出处或原因。我试过通过“ java -jar”并在IDE调试器中打开调试注释来运行。完全不会产生错误或消息。没有会话,用户未通过身份验证,那么为什么会抛出403(假设通过Spring Security)?
答案 0 :(得分:0)
我终于找到了答案。因为日志中没有任何信息,所以我认为这是由Spring Security框架来完成的。我更新了安全配置,以禁用/ login页面的CSRF。现在它可以按需工作了。
答案 1 :(得分:-1)