SpringSecurity鉴权简介
前言
本博文为听课笔记,简单记录下SpringSecurity的鉴权方式及如何在整个流程中自定义个性化鉴权,以备后续学习及工程需要。
正文
一个请求进来SpringSecurity会经过一系列的过滤器,示意图如下:

-
jwtFilter简介:验证用户token,通过则将其保存在SpringSecurity的上下文,保持登录状态 -
FilterSecurityInterceptor简介:SpringSecurity通过这个过滤器实现权限验证。具体做法:
- 拿到request的URL=》
- 拿到匹配器中的资源(如白名单等)与当前request中的资源匹配=》
- 匹配到的话,根据URL拿到对应角色(鉴权策略)=》
- 鉴权(对比:当前用户的角色和URL拿到的角色,对比上,有权限,否则,无权限)
对应源码:
doFilter():
beforeInvocation():在该方法中进行鉴权操作
SecurityMetadataSource:维护所有资源、角色信息,根据当前URL获取角色信息
AffirmativeBased.decide():鉴权:上一步的角色和当前用户的角色进行对比 -
定制过滤器:在
FilterSecurityInterceptor前加自定义dynamicSecurityFilter,示意图如下:


浙公网安备 33010602011771号