【若依】@PreAuthorize

2023-10-27

提示:自己学习帮助记忆,有问题指出,不喜勿喷!


前言

@PreAuthorize:

Spring Security提供了Spring EL表达式,允许我们在定义接口访问的方法上面添加注解,来控制访问权限


一、权限方法

方法 参数 描述
hasPermi String 验证用户是否具备某权限
lacksPermi String 验证用户是否不具备某权限,与hasPermi逻辑相反
hasAnyPermi String 验证用户是否具有以下任意一个权限
hasRole String 判断用户是否拥有某个权限
lacksRole String 验证用户是否不具备某个权限,与hasRole逻辑相反
hasAnyRoles String 验证用户是否具有以下任意一个角色,多个逗号分隔

二、使用示例

其中@ss代表的是PermissionService (opens new window)服务,对每个接口拦截并调用PermissionService的对应方法判断接口调用者的权限。

1.数据示例

代码如下(示例):

// 符合system:user:list权限要求
@PreAuthorize("@ss.hasPermi('system:user:list')")

// 不符合system:user:list权限要求
@PreAuthorize("@ss.lacksPermi('system:user:list')")

// 符合system:user:add或system:user:edit权限要求即可
@PreAuthorize("@ss.hasAnyPermi('system:user:add,system:user:edit')")

2.角色权限示例

代码如下(示例):

// 属于user角色
@PreAuthorize("@ss.hasRole('user')")

// 不属于user角色
@PreAuthorize("@ss.lacksRole('user')")

// 属于user或者admin之一
@PreAuthorize("@ss.hasAnyRoles('user,admin')")

权限提示:超级管理员拥有所有权限,不受权限约束。

三、公开接口

如果有些接口是不需要验证权限可以公开访问的,这个时候就需要我们给接口放行。
使用注解方式,只需要在Controller的类或方法上加入@Anonymous该注解即可

// @PreAuthorize("@ss.xxxx('....')") 注释或删除掉原有的权限注解
@Anonymous
@GetMapping("/list")
public List<SysXxxx> list(SysXxxx xxxx)
{
    return xxxxList;
}

总结

来源于若依官方文档,记一下帮助记忆!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【若依】@PreAuthorize 的相关文章

  • Java Util Logger 写入同步

    通常在应用程序中 以 Web 应用程序为例 我们在启动期间创建一个记录器实例 它甚至可以是一个单例 但这并不重要 重要的是整个应用程序有 1 个实例 我们使用java util logger 现在想象一下 您有来自两个不同用户的两个请求 它
  • 我的应用程序中的 google+ 集成

    我是 Android 开发新手 正在创建一个带有 Google 集成的 Android 应用程序 我看到了一个教程并开始遵循它 但自教程以来 Google 已经更新了 Google 集成 例如 在本教程中您曾经单击 获取配置文件 按钮htt
  • Eclipse + Spring Boot 中“抛出 new SilentExitException()”处的断点

    每次我在 Eclipse IDE Spring Tool Suite 中以调试模式运行 Spring Boot 项目时 线程都会停止在throw new SilentExitException 即使没有断点也行 有什么解决方案可以避免这种行
  • 从 ArrayList Java 中的 HashMap 键中检索所有值

    美好的一天 这让我现在有点困惑 大脑冻结 并且似乎遗漏了一些东西 有一个 ArrayList 我用 HashMap 填充它 现在我放入 HashMap 和 arraylist Map put DATE value1 Map put VALU
  • 如何选择主题与队列

    当我们设计应用程序时如何选择Topic Queue类型实现 我知道 a 如果有多个消费者使用该消息 则使用 Topicb 如果只有一个消费者则使用Queue 请提供更多需要考虑的点 比如并发 消息持久化 负载均衡等等 Thanks Rw 如
  • Spring批处理2.2 JavaConfig

    我正在尝试让 Spring Batch 2 2 与 JavaConfig 一起使用 如今他们有一个 EnableBatchProcessing设置很多东西的注释 默认情况下 该注释使用数据源作为其作业数据 但我们不想保存此数据 也不想为其创
  • HQL - 分页的行标识符

    有谁知道HQL是否有一个关键字来标识行 例如ROWID或ROWNUM 我想使用 HQL 实现分页 但我无法使用 setMaxResult 或 setFirstResult 因为我不直接使用会话对象 因此不使用 Query 对象 而只是将查询
  • Java(正则表达式)-获取句子中的所有单词

    我需要将 java 字符串拆分为单词数组 假设该字符串是 Hi I need to split this string into a serie s of words 目前我正在尝试使用这个String strs str split w 但
  • java中简单程序中的“未为类型定义方法”错误

    所以我只是想学习 Java 在观看了一些教程并阅读了一些基本内容之后 我对为什么它无法运行感到困惑 package Test public class TestProg public static void main String args
  • Apache HttpClient 4.x 在上传较大文件时表现奇怪?

    我正在使用 java 和 scala 开发和测试一个简单的客户端 服务器应用程序 The server是基于com sun net httpserver HttpServer并允许使用 POST 和 PUT 操作通过基本的 RESTful
  • spring Kafka模型不在可信包中

    我正在研究微服务spring Kafka 2 1 5 and spring boot 2 0 5 第一个服务将向卡夫卡产生一些消息 第二个服务将消耗它们 在消耗时我遇到了问题 Caused by java lang IllegalArgum
  • Java 多态性中的字段如何工作? [复制]

    这个问题在这里已经有答案了 我正在读书面试问题 http javabypatel blogspot in 2016 04 java interview questions html关于java 发现了很好的例子 但感到困惑 因为没有很好 更
  • Finalize() 何时执行? [复制]

    这个问题在这里已经有答案了 在一次采访中我被问到 假设 JVM 在 A 类对象未被使用时运行 gc class A some code here protected void finalize code here 它是否保证finalize
  • Java Reflection:为什么这么慢?

    我一直避免使用 Java 反射 因为它速度缓慢 我在当前项目的设计中达到了一个点 能够使用它将使我的代码更具可读性和优雅性 所以我决定尝试一下 我只是对这种差异感到惊讶 我注意到有时运行时间几乎延长了 100 倍 即使在这个简单的例子中 它
  • NoSuchMethodError:org.springframework.data.repository.config.RepositoryConfigurationSource.getAttribute

    我正在尝试在 spring boot 应用程序中使用 spring data redis 来使用 redis 我正在创造JedisConnectionFactory如下 RedisStandaloneConfiguration config
  • JRuby调用了错误的方法

    我在调用 Java 方法时遇到了一个奇怪的问题JRuby http en wikipedia org wiki JRuby 在我的 Java 类中 这些方法定义了两次 看来 JRuby 调用了错误的方法 所以我尝试使用java method
  • 控制台中的 Java msg - 两个方法具有相同的方法签名但不提供可分配的类?

    在迁移到 java 1 8 时 我升级了项目中的许多依赖项 它是基于spring 4 3的应用程序 有很多外部依赖 例如 JMS HTTP客户端 FTP XML等 当应用程序启动时 我现在在控制台中收到以下消息 两个方法具有相同的方法签名但
  • 在java中访问dll方法

    我正在尝试访问java中用c 编写的dll方法 从下面的代码我试图构建已成功生成的 dll using System using Microsoft Win32 namespace CyberoamWinHelper public clas
  • Java中有没有办法随机获取HashMap的值?

    Java中有没有办法随机获取HashMap的值 这有效 Random generator new Random Object values myHashMap values toArray Object randomValue values
  • Java:当计时器处于活动状态时,JSplitPane 将顶部面板的内容复制到底部面板

    所以我有一个 JSplitPane 和两个 JPanel 一个在顶部 一个在底部 在这两个面板中 我重写了paintComponent方法并添加了我自己的图形 在底部面板中 我想添加动画 当面板不重新绘制时 这很好 但是一旦计时器 java

随机推荐

  • 超详细SpringMVC 之 JSR303与拦截器

    一 JSR303 简介 JSR303是做服务端校验 参数验证 实现服务器校验步骤 1 做服务端参数校验 JSR303 的jar包依赖
  • 设计模式——设计模式简介和七大原则

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 设计模式 牛客面试题 目录 一 通过经典面试题掌握重点 二 设计模式的目的和核心原
  • Unity3D之键盘输入

    目录 获取按键状态 检测特殊按键 获取键盘输入 自定义键位 获取按键状态 Unity的Input类提供了几个方法来获取按键的状态 GetKey GetKey方法用于检测指定按键是否被按住 if Input GetKey KeyCode Sp
  • twrp Xposed zip包脚本定制全解析

    声明 本文不对印刷机导致的任何结果承担责任 请谨慎尝试 想要研究一个新技术 最好的办法就是read the fuck source code 读源码时最直接高效的方式 当然 这很难啃 所以通常也可以配合网上一些教程来理解 但是通常 值钱的技
  • 接口学习总结

    接口测试学习总结 什么是接口测试 接口测试是项目测试的一部分 它测试的主要对象是接口 是测试系统组件间接口的一种测试 接口测试主要用于检测外部系统与所测系统之间以及内部各系统之间的交互点 测试的重点是检查数据交互 传递 和控制管理过程以及系
  • 攻防世界-level2

    攻防世界 level2 text 0804844B vulnerable function proc near CODE XREF main 11p text 0804844B text 0804844B buf byte ptr 88h
  • 备忘录莫名其妙的没了_苹果手机备忘录突然消失了该怎么办

    展开全部 恢复苹果备忘录的准备copy工具 1 iPhone手机bai及数据线du 2 开心手机恢复大师 专业的iOS数据恢复软zhi件 3 常用dao电脑 找回iPhone备忘录的详细步骤 1 将专业的苹果手机数据恢复软件 开心手机恢复大
  • 基于 Ng-zorro-antd 的企业后台模板 ng-alain

    ng alain 详细介绍 ng alain 一套基于 Ng zorro antd ANT DESIGN 的企业后台模板 README in English DEMO 快速入门 确保 node 版本 gt 6 9 0 且 npm 版本 gt
  • Oracle 自定义对象集合遍历

    功能要求 Oracle 定义对象集合 将查询结果集批量插入对象集合 循环遍历自定义对象集合属性值 定义自定义对象Object create or replace type HOUSE is object 定义biz id 属性 biz id
  • 冲击手机应用榜单Top3,高手都做了这些

    作者 舒大飞 博客地址 https juejin im post 5b1b5e29f265da6e01174b84 由于项目里之前线上版本出现过一定比例的OOM 虽然比例并不大 但是还是暴露了一定的问题 所以打算对我们App分为几个步骤进行
  • h3c服务器登录密码修改,h3c服务器网关口默认密码

    h3c服务器网关口默认密码 内容精选 换一换 本节为您介绍通过控制台提供的CloudShell登录云服务器的操作步骤 登录成功后 如需使用CloudShell界面提供的复制 粘贴功能 请参见CloudShell常用操作 云服务器状态为 运行
  • yolov7人脸检测

  • STM32精确延迟1us和1ms的函数

    函 数 名 delay us 函数功能 延时函数 延时us 输 入 i 输 出 无 void delay us u32 i u32 temp SysTick gt LOAD 9 i
  • 5分钟搞定内存字节对齐

    写出一个struct 然后sizeof 你会不会经常对结果感到奇怪 sizeof的结果往往都比你声明的变量总长度要大 这是怎么回事呢 讲讲字节对齐吧 分割线 如果体系结构是不对齐的 A中的成员将会一个挨一个存储 从而sizeof a 为11
  • VPP代码阅读中文注解---clib_error.h

    include
  • 做好需求分析的4大关键认知

    探索如何正确的需求分析 本文详细介绍了4大关键点 帮助您明确用户与产品需求 深入挖掘用户动机 并为产品经理提供筛选需求的实用建议 一 什么是需求分析以及重要性 需求分析指的是在建立一个新的或改变一个现存的产品时 确定新产品的目的 范围 定义
  • 压力测试神器stress-ng

    工欲成其事 必先善其器 CentOS 7的EPEL源包含了2个压力测试工具 一个是标准的stress 另外一个是更强大的stress ng 可以帮助模拟产生各种cpu压力 安装 stress stress参数和用法都很简单 c cpu 代表
  • 【c#基础】键值对集合

    class Program static void Main string args Hashtable 键值对集合 账号 密码 键唯一 1 集合在内存中是倒序存储的 2 集合有自己的排序方式 Hashtable ht new Hashta
  • LeetCode-NO.01两数之和(一题多解-C++)

    目录 Sol 1 暴力法 Sol 2 两遍哈希表 Sol 3 一遍哈希表 完整代码实现 含主函数测试代码 题目描述 给定一个整数数组 nums 和一个目标值 target 请你在该数组中找出和为目标值的那 两个 整数 并返回他们的数组下标
  • 【若依】@PreAuthorize

    提示 自己学习帮助记忆 有问题指出 不喜勿喷 文章目录 前言 一 权限方法 二 使用示例 1 数据示例 2 角色权限示例 三 公开接口 总结 前言 PreAuthorize Spring Security提供了Spring EL表达式 允许