在学习Spring Security的时候,我的编辑器给我报错:An internal error occurred while trying to authenticate the user.
明明我是按照教程一步一步的操作的。
我发现当我不使用自定义的登陆页面时,它是正常的。
所以我猜测问题是出现在我的自定义登录页面上。
为此,我特意检查了一下登录页面的from表单,发现里面的用户名的name属性的值是“id”的,并不是通常的“username”值。
我立即修改成:username,重启,刷新,登陆。一气呵成。
我为什么要写成id?因为我这个登陆可以使用邮箱或者身份证号为条件,所以我的数据库内的字段名为id和email,这才会用id作为name。
这个bug耗费我几个小时的时间,可以说是相当的不值的,完全没有什么技术提升。纯粹就是Security设计人员硬编码导致的。

在使用SpringSecurity时,自定义登录页面可能导致Aninternalerroroccurredwhiletryingtoauthenticatetheuser.错误。问题源于表单中用户名字段的name属性被设置为id而非username。修改后问题解决,提醒开发者注意默认字段名。

被折叠的 条评论
为什么被折叠?



