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

这篇具有很好参考价值的文章主要介绍了SpringSecurity安全框架学习——@PreAuthorize的实现原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

@PreAuthorize

首先我们打开@PreAuthorize注解的源码,然后按住Ctrl并单击PreAuthorize,可以看到在EnableMethodSecurity注解中有引用
(本文使用IDEA,后续不再复述)
SpringSecurity安全框架学习——@PreAuthorize的实现原理

@EnableMethodSecurity

查看EnableMethodSecurity源码,可以到,其引用了MethodSecuritySelector
SpringSecurity安全框架学习——@PreAuthorize的实现原理

MethodSecuritySelector

按照惯例,打开MethodSecuritySelector
SpringSecurity安全框架学习——@PreAuthorize的实现原理

PrePostMethodSecurityConfiguration

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

SpringSecurity安全框架学习——@PreAuthorize的实现原理
SpringSecurity安全框架学习——@PreAuthorize的实现原理
可以进一步找到PreAuthorizeAuthorizationManager(预授权方法管理器),在预授权处理器中,要分两步讲解,第一是缓存,当某个请求方法第一次被请求时,会执行下面代码,之后则直接从缓存中获取(缓存实现原理请自行查看源码,严重超纲)。
SpringSecurity安全框架学习——@PreAuthorize的实现原理
第二是进行校验,也就是AuthorizationManager接口的实现方法check
SpringSecurity安全框架学习——@PreAuthorize的实现原理
以上就是Spring Security5.6版本实现@PreAuthorize注解的原理文章来源地址https://www.toymoban.com/news/detail-415025.html

到了这里,关于SpringSecurity安全框架学习——@PreAuthorize的实现原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringSecurity安全框架

    我们使用这个springSecurity安全框架,作用是认证,授权,将 用户的权限和对应的资源进行绑定 , 默认的是在内存中保存的,实际开发中,是需要根据项目业务的需求 对某些方法进行重写, 使数据库中权限对应的资源进行绑定, 就是查看当前登录的用户所扮演的角色,该角色有哪些权限

    2024年02月22日
    浏览(34)
  • SpringBoot集成 SpringSecurity安全框架

    提示:以下是本篇文章正文内容,Java 系列学习将会持续更新 我们时常会在 QQ 上收到别人发送的钓鱼网站链接,只要你在登录QQ账号的情况下点击链接,那么不出意外,你的号已经在别人手中了。实际上这一类网站都属于 恶意网站 ,专门用于盗取他人信息,执行非法操作,

    2024年02月07日
    浏览(49)
  • SpringSecurity安全框架 ——认证与授权

    目录  一、简介 1.1 什么是Spring Security 1.2 工作原理 1.3 为什么选择Spring Security 1.4 HttpSecurity 介绍🌟 二、用户认证 2.1 导入依赖与配置 2.2 用户对象UserDetails 2.3 业务对象UserDetailsService 2.4 SecurityConfig配置 2.4.1 BCryptPasswordEncoder密码编码器 2.4.2 RememberMe 记住登录信息 2.4.3 CSR

    2024年02月04日
    浏览(44)
  • SpringSecurity分布式安全框架

    Spring Security是一个基于Spring框架的安全框架,它提供了全面的安全解决方案,包括用户认证和用户授权等Web应用安全性问题。Spring Security可以轻松扩展以满足自定义需求,它的真正强大之处在于它可以轻松扩展以满足自定义要求。 对于分布式系统来说,Spring Security可以结合

    2024年02月08日
    浏览(49)
  • SpringSecurity源码分析(一) SpringBoot集成SpringSecurity即Spring安全框架的加载过程

          Spring Security是一个强大的并且高度可定制化的访问控制框架。 它基于spring应用。 Spring Security是聚焦于为java应用提供授权和验证的框架。像所有的spring项目一样,Spring Security真正的强大在于可以非常简单的拓展功能来实现自定义的需求。       在分析SpringBoot集成的Sp

    2024年02月03日
    浏览(46)
  • 【security】java springboot项目中使用springSecurity安全框架

    springboot项目如果导入security依赖后会自动托管整个项目,前端在访问项目的任何路径时会被拦截并跳转到security默认的登录页面,登录用户名为user,密码为控制台启动项目时生成的随机密码 一、自定义设置用户的认证:创建一个配置类(类上加@Configuration),让该类继承Web

    2024年02月15日
    浏览(57)
  • SpringSecurity框架学习与使用

    引入相关的依赖,SpringBoot的版本是2.7.10; 前端页面编写,home.html、hello.html、login.html hello.html home.html login.html 视图控制,访问对应的url跳转到不同的页面 SpringSecurity配置 结果 登录失败时 登录成功 认证 上面的demo中,我们是把登录密码放在内存中记录着的,除了这种方式外我

    2024年02月02日
    浏览(37)
  • 若依框架基于@PreAuthorize注解的权限控制

    目录 一、Java注解(Annotation) 1. 概述         2. Annotation通用定义 (1)@interface (2)@Documented (3)@Target(ElementType.TYPE) (4)@Retention(RetentionPolicy.RUNTIME) 二、基于注解的权限控制 1. 数据权限  2. 角色权限         Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注

    2023年04月24日
    浏览(60)
  • 权限管理系统后端实现1-SpringSecurity执行原理概述

    spring security的简单原理: SpringSecurity有很多很多的拦截器,在执行流程里面主要有两个核心的拦截器 1,登陆验证拦截器 AuthenticationProcessingFilter 2,资源管理拦截器 AbstractSecurityInterceptor 但拦截器里面的实现需要一些组件来实现,所以就有了 AuthenticationManager认证管理器 、 ac

    2024年02月13日
    浏览(50)
  • CTF-Crypto学习记录-第四天 “ “ --- SHA1安全散列算法,实现原理。

    MD5学习MD5加密算法 SHA-1(Secure Hash Algorithm1,安全散列算法1)是一种密码散列函数。 SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。 SHA-1的历史: 2005年,密码分析人员发现了对SHA-1的有效攻击方法,这表明该算法可能不够

    2024年02月07日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包