【SpringBoot3】Spring Security 常用注解

🏷️ 365bet有app吗 📅 2025-10-01 04:50:13 👤 admin 👀 6198 ⭐ 878
【SpringBoot3】Spring Security 常用注解

注:本文基于Spring Boot 3.2.1 以及 Spring Security 6.2.1

Spring Security 6 的常用注解包括以下几种,通过这些注解可以更加方便的控制资源权限。

@Secured :方法执行前检查,直接判断有没有对应的角色

@PreAuthorize:方法执行前检查,根据SpEL表达式执行结果判断是否授权

@PostAuthorize:方法执行后检查,根据SpEL表达式执行结果判断是否授权

要使用以前注解必须增加配置,开启校验功能

// 用于启用方法级别的安全支持

@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)

@Secured

方法执行前检查,直接判断有没有对应的角色

示例代码:

@Secured({

"ROLE_USER" })

public void create(Contact contact);

@Secured({

"ROLE_USER", "ROLE_ADMIN" })

public void update(Contact contact);

@Secured({

"ROLE_ADMIN" })

public void delete(Contact contact);

@PreAuthorize

方法执行前检查,根据SpEL表达式执行结果判断是否授权

示例代码:

// 有角色

@PreAuthorize("hasRole('ROLE_ADMIN')")

// 有任一角色

@PreAuthorize("hasAnyRole({'ROLE_USER','ROLE_ADMIN'})")

// 有任一权限

@PreAuthorize("hasAnyAuthority({'user:search','user:edit'})")

其他用法

@PreAuthorize 参数是SpEL表达式,所以还可以有其他用法

1、方法参数值判断,@PreAuthorize("#age>10")

@GetMapping("/age")

@PreAuthorize("#age>10")

public String age(Integer age) {

return "Hello age "+ age;

}

2、调用bean的方法判断

1)创建Bean,判断是否有权限

@Component("au")

public class AuthUtils {

public boolean check(String role) {

Authentication authentication = SecurityContextHolder.getContext(

相关推荐 ✨

365体育投注官网 学生喜爱的4种教学方式和难以接受的4种教学方式
365bet有app吗 《lol》四级荣誉到五级荣誉所需时间一览
office365链接怎么打开 不懂就问,beautyleg会所大家
365体育投注官网 优酷会员怎么兑换

优酷会员怎么兑换

📅 08-13 👀 4170