关于SpringSecurity出现Failed to evaluate expression ‘ps.hasAuthority(‘role‘)‘

1. 问题描述

在使用SpringSecurity对接口进行权限校验时,报错java.lang.IllegalArgumentException: Failed to evaluate expression 'ps.hasAuthority('role')'

2. 解决方案

2.1 查看是否添加注解

对于SpringSecurity对配置类,我们需要添加注解@EnableGlobalMethodSecurity(prePostEnabled = true)

java 复制代码
@EnableGlobalMethodSecurity(prePostEnabled = true)
@Configuration	
public class AdminSecurityConfig extends WebSecurityConfigurerAdapter {
	//...
}

2.2 校验接口实现类的名称

  • 对于直接使用@Service注解标识的接口实现类,其注入Spring容器后,对应bean名称的首字母会变为小写。例如注入的实现类为PermissionServiceImpl,其bean名称为permissionServiceImpl
  • 对于使用@Service(value = "xxx"),其对应bean的名称就为xxx,直接使用即可。

2.3 校验是否添加@符号进行标识。

对应接口上添加了@PreAuthorize注解后,参数正确格式为@beanName.methodName(roleName)。例如:

java 复制代码
@PreAuthorize("@permissionServiceImpl.hasPermission('role')")
相关推荐
毕设源码-钟学长5 分钟前
【开题答辩全过程】以 基于Springboot的在线考试系统为例,包含答辩的问题和答案
java·spring boot·后端
星如雨グッ!(๑•̀ㅂ•́)و✧13 分钟前
Webflux onErrorStop使用
java
java1234_小锋13 分钟前
Java高频面试题:RocketMQ有哪些使用场景?
java·zookeeper·java-zookeeper
wellc16 分钟前
SpringCloud系列教程:微服务的未来(十四)网关登录校验、自定义过滤器GlobalFilter、GatawayFilter
java·spring cloud·微服务
dovens21 分钟前
SpringBoot 集成 Activiti 7 工作流引擎
java·spring boot·后端
sinat_2554878121 分钟前
JSON·学习笔记
java·开发语言·笔记·算法
liqianpin123 分钟前
SpringMVC新版本踩坑[已解决]
java
弹简特24 分钟前
【JavaEE】MybatisPlus速成
java·数据库·java-ee·mybatis
庞轩px36 分钟前
线程池核心参数与拒绝策略深度解析
java·jvm·数据库
guestsun41 分钟前
Idea反编译插件--方便查看和修改class文件
java·intellij-idea·jar·反编辑工具·idea反编译插件·class反编译·jar反编译