登录流程不仔细讲了,参考其他博客。
①提交表单后,首先经过UsernamePasswordAuthenticationFilter的attemptAuthentication()方法。
②这个方法又调用了obtainUsername()以及obtainPassword()方法,在这个方法中可以看到它用的是javaweb那一套获取参数的方法。
所以SpringSecurity原生的就是通过请求地址来获取参数。接下来把它update一下
③继承UsernamePasswordAuthenticationFilter类
照抄它的 attemptAuthentication()方法的内容再加个判断
④配置SecurityConfig类
在这个类中注入自定义的jsonLoginFilter类
在这个重写的方法中将自定义的jsonLoginFilter过滤器添加在UsernamePasswordAuthenticationFilter过滤器的前面
此时两种形式的登录方式基本配置好了。为什么说基本,因为还有坑。
用接口调试软件测试两种方式登录:
key/value形式:
json形式: