Spring Security授权_注解设置访问控制
除了配置类,在SpringSecurity中提供了一些访问控制的注解。这些注解默认都是不可用的,需要开启后使用。
@Secured
该注解是基于角色的权限控制,要求UserDetails中的权限名必须以ROLE_ 开头。
在配置类开启注解使用
@SpringBootApplication
@MapperScan("com.neu.mapper")
@Slf4j
@EnableGlobalMethodSecurity(securedEnabled = true)
public class ApplicationMain {public static void main(String[] args) {SpringApplication.run(ApplicationMain.class,args);log.info("服务启动成功");}
}
在控制器方法上添加注解
@Secured("/reportform/find")@GetMapping("/reportform/find")public String findReportform(){return "查询报表";}@Secured("/salary/find")@GetMapping("/salary/find")public String findSalary(){return "查询工资";}@Secured("/staff/find")@GetMapping("/staff/find")public String findTax(){return "查询员工";}
测试
加’ROLE_修改前缀后
@Secured("ROLE_/salary/find")@GetMapping("/salary/find")public String findSalary(){return "查询工资";}
修改后测试
@PreAuthorize
该注解可以在方法执行前判断用户是否具有权限
在配置类开启注解使用
@SpringBootApplication
@MapperScan("com.neu.mapper")
@Slf4j
//@EnableGlobalMethodSecurity(securedEnabled = true)
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class ApplicationMain {public static void main(String[] args) {SpringApplication.run(ApplicationMain.class,args);log.info("服务启动成功");}
}
在控制器方法上添加注解
@PreAuthorize("hasAuthority('/reportform/find')")@GetMapping("/reportform/find")public String findReportform(){return "查询报表";}@PreAuthorize("hasAuthority('/salary/find')")@GetMapping("/salary/find")public String findSalary(){return "查询工资";}@PreAuthorize("hasAuthority('/staff/find')")@GetMapping("/staff/find")public String findTax(){return "查询员工";}
数据库里的权限
测试
Spring Security授权_注解设置访问控制相关推荐
- Spring Security 源码分析:Spring Security 授权过程
Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring I ...
- security框架工作笔记001--- Shiro和Spring Security对比_智慧城市项目中选型用Spring Security
JAVA技术交流QQ群:170933152 Shiro简介 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Secu ...
- [SpringSecurity]web权限方案_用户授权_注解使用
注解使用 @Secured 判断用户是否具有角色,可以访问方法,另外需要注意的是这里匹配的字符串需要添加前缀"ROLE_". 使用注解先要开启注解功能! 启动类(配置类)开启注解 ...
- [SpringSecurity]web权限方案_用户授权_基于权限访问控制_基于角色访问控制_hasAuthority和hasAnyAuthority_hasRole和hasAnyRole
基于角色或权限进行访问控制 hasAuthority 方法 如果当前的主体具有指定的权限,则返回 true,否则返回 false 在配置类设置当前访问地址有哪些 @Overrideprotected ...
- 【微服务|Spring Security⑱】spring security授权汇总
4.7.1 概述 授权的方式包括web授权和方法授权,web授权是通过url拦截进行授权,方法授权是通过方法拦截进行授权.他们都会调用accessDecisionManager进行授权决策,若为web ...
- Spring Security使用数据库登录认证授权
一.搭建项目环境 1.创建 RBAC五张表 RBAC,即基于角色的权限访问控制(Role-Based Access Control),就是用户通过角色与权限进行关联. 在这种模型中,用户与角色之间,角 ...
- 手把手教你如何使用Spring Security(上):登录授权
文章目录 一.什么是 Spring Security? 官方介绍 通俗来讲 二.初始搭建 创建 启动 三.项目原理 原理 思考 四.登录认证 登录过滤器 配置过滤器链 类补充 五.登录效果 效果演示 ...
- Spring Security:基于内存的角色授权
本文来说下Spring Boot+Spring Security:基于内存的角色授权 文章目录 概述 需求缘起 编码思路 基于内存的角色授权 为用户配置角色 开启Spring方法级安全 配置方法级拥有 ...
- 后端架构token授权认证机制:spring security JSON Web Token(JWT)简例
后端架构token授权认证机制:spring security JSON Web Token(JWT)简例 在基于token的客户端-服务器端认证授权以前,前端到服务器端的认证-授权通常是基于sess ...
最新文章
- 超级直播tv港澳台版2020_直播链接 2020年泉州足球超级联赛 第一轮
- redhat enterprise linux 下配置本地yum源
- 利好不断,跑步入场支持BCH
- 中华图标网--http://sinoLogo.cn
- mysql中explain的用法
- ADO Execute 方法
- mysql服务器(二)
- Python Django 全局上下文代码示例
- 阿里云文件上传工具类
- C#来创建和读取XML文档 [转]
- 十二、实战启动页(一)
- Docker搭建nexus3私服
- 一对一关联查询注解@OneToOne的实例详解
- 人脸方向学习(十二):Face Detection-Tiny-DSOD解读
- 《流畅的Python》读书笔记——Python序列的修改、散列和切片
- java 手势识别_【人体分析-手势识别】-Java示例代码
- linux命令界面切换桌面,Linux图形界面和命令行界面切换
- 神器 | 百度云资源搜索
- 判断司机是否酒后驾车
- LeetCode 6. Z 字形变换 (N字形变换)