0


SpringSecurity安全框架学习——@PreAuthorize的实现原理

SpringSecurity安全框架学习——@PreAuthorize的实现原理

@PreAuthorize

首先我们打开@PreAuthorize注解的源码,然后按住Ctrl并单击PreAuthorize,可以看到在EnableMethodSecurity注解中有引用
(本文使用IDEA,后续不再复述)
在这里插入图片描述

@EnableMethodSecurity

查看EnableMethodSecurity源码,可以到,其引用了MethodSecuritySelector
在这里插入图片描述

MethodSecuritySelector

按照惯例,打开MethodSecuritySelector
在这里插入图片描述

PrePostMethodSecurityConfiguration

可以看到,当prePostEnabled=true时,会注入PrePostMethodSecurityConfiguration,而在PrePostMethodSecurityConfiguration中会各类型拦截器进行注入,其中包括了PreAuthorize,也包括了postAuthorize等,那我们本节专门针对@preAuthorize注解进行学习,所以我们找到这段代码:

在这里插入图片描述
在这里插入图片描述
可以进一步找到PreAuthorizeAuthorizationManager(预授权方法管理器),在预授权处理器中,要分两步讲解,第一是缓存,当某个请求方法第一次被请求时,会执行下面代码,之后则直接从缓存中获取(缓存实现原理请自行查看源码,严重超纲)。
在这里插入图片描述
第二是进行校验,也就是AuthorizationManager接口的实现方法check
在这里插入图片描述
以上就是Spring Security5.6版本实现@PreAuthorize注解的原理

标签: 学习 spring java

本文转载自: https://blog.csdn.net/qq_19472217/article/details/127994307
版权归原作者 笔落墨成 所有, 如有侵权,请联系我们删除。

“SpringSecurity安全框架学习——@PreAuthorize的实现原理”的评论:

还没有评论