在我搭建springboot + spring security +vue 项目的时候,我遇到了一个问题,在使用前后端分离,登录的时候如果用了axios 的post提交表单,spring security 的UsernamePasswordAuthenticationFilter 中获取表单参数获取不到。
解决这个问题,我查了很多资料,跟了很多次代码,最后解决这个问题,有可能不是最好的解决方法,如果小伙伴们有更好的方案请留言哦!
解决方案1:重写这个过滤器
通过这种方式获取到参数,但是这个有个后续问题,在使用spring security 的remember me 的时候就会出问题,这个有可能是我还没有弄清楚这块。
解决方案2:修改前端提交表单时候的header参数,任然采用spring security 原本的用户名和密码的过滤器
为什么要加这个header信息,因为axios 提交表单的时候
不是Form Data ,所有不能通过request.getParameter("username")的方式获取参数值,所有在过滤器中不会去验证登录;