SpringBoot项目的用户鉴权分析

一、鉴权类:UserAuthFilter

springBoot被称为开箱即用,是因为许多代码都帮开发者实现了,就连用户鉴权部分都帮我们写好了,如需自定义过滤器,则继承UserAuthFilter类即可。其用户鉴权的主要逻辑都在UserAuthFilter类的packageRequest((ParameterRequestWrapper requestWrapper, HttpServletResponse httpServletResponse))方法中,其鉴权中心可在application.yaml或application.properties配置文件中自行配置,例如:

SpringBoot项目的用户鉴权分析

看的出可通过isNeedAuth参数打开或关闭鉴权功能,还可以通过参数excludeUrl实现特定url的添加例外(不进行鉴权)

二、鉴权过程:

但是在阅读UserAuthFilter类中查看源码时发现,其鉴权时收获取了httpHeader中Cookie的token,然后再用这个token发送到鉴权中心去做校验,源码如下:

SpringBoot项目的用户鉴权分析

三、使用postman发送PUT请求

需要将token放在header里面去,不要使用url的问号传参方式。这样后台就可以正常获取到该token的值,否则将无法获取到token,导致出现 请重新登录的情况!

SpringBoot项目的用户鉴权分析

四、在代码中携带token发送put请求

需要在http.header中加入Cookie,如下:

SpringBoot项目的用户鉴权分析