码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • RuoYi-Vue Spring Security 配置介绍


    文章目录

              • 核心配置类
              • 方法注解开关
              • 自定义认证规则
              • 自定义获取用户详情
              • 自定义注解实现匿名访问
              • 自定义验证异常处理类
              • 自定义登出逻辑流程
              • 自定义JWT拦截器

    核心配置类

    核心配置文件 com.ruoyi.framework.config.SecurityConfig.java
    在这里插入图片描述

    方法注解开关

    开启全局方法权限配置,默认禁用 @EnableGlobalMethodSecurity
    prePostEnabled = true 开启方法级别访问权限
    开启之后才可以在方法上使用 @PreAuthorize 注解

    在这里插入图片描述

    通过以下方法重新获取AuthenticationManager 的bean实例,解决通过@Autowired注解 无法直接注入 AuthenticationManager。

    在这里插入图片描述

    自定义认证规则

    继承Spring Security核心配置类WebSecurityConfigurerAdapter,可以根据需求通过重写方法实现自定义的逻辑流程。

    重写认证规则 configure方法实现自定义认证规则
    在这里插入图片描述

    自定义获取用户详情

    身份认证接口configure方法实现获取用户、角色、权限相关信息的逻辑。
    在这里插入图片描述

    自定义注解实现匿名访问

    自定义@Anonymous注解添加到方法上可以实现跳过权限验证。
    ①通过com.ruoyi.framework.config.properties.PermitAllUrlProperties类检验请求方法上是否有@Anonymous注解,如果存在则添加到一个集和数组中。

    ②在执行权限验证之前,将集和数组中这些url设置为可以允许访问,类似于下面登录login接口,只是用到2种不同的写法而已。
    在这里插入图片描述

    在这里插入图片描述

    自定义验证异常处理类

    SpringSecurity 验证过程中存在异常时,则抛出异常,有异常抛出的是英文的,通过自定义异常类实现统一管理异常返回。
    在这里插入图片描述
    全局异常拦截器类 org.springframework.security.web.access.ExceptionTranslationFilter
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    自定义登出逻辑流程

    1.删除用户缓存记录
    2.记录用户退出日志
    3.以流的形式封装返回报文,响应浏览器
    在这里插入图片描述

    自定义JWT拦截器

    这个会在jwt章节 详细讲解

  • 相关阅读:
    Python之第十二章 异常处理
    JavaScript:将input标签中的内容打印到控制台
    Windows安装Vmware 虚拟机
    【算法专题--链表】合并两个有序链表--高频面试题(图文详解,小白一看就会!!)
    软通动力:打造AI第二增长曲线,图谋新发展
    Qt官方示例:Fridge Magnets Example(冰箱贴)
    论文降重,你都用了什么奇特的方法?
    Vue电商项目--分页器制作
    矩阵白化原理及推导
    React Router 关键知识点回顾
  • 原文地址:https://blog.csdn.net/weixin_40816738/article/details/126085493
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号