【发布时间】:2017-07-29 02:58:56
【问题描述】:
我想在 Spring Security 中将 @PreAuthorize 与 SpEL 一起使用,例如 http://forum.spring.io/forum/spring-projects/security/100708-spel-and-spring-security-3-accessing-bean-reference-in-preauthorize 中的示例
但这对我在 Spring Security 4.1.4 中使用时不起作用。以下是我的示例代码:
一个 bean 类:
package com.service.spel;
import org.springframework.stereotype.Component;
@Component(value="accessBean")
public class AccessCheckBean {
public String getPermision(){
/**
* return the api permision
*/
String scope = "#oauth2.hasScope('resource.Update')";
return scope;
}
}
在控制器中:
@PreAuthorize("accessBean.getPermision()")
@GetMapping("/perm")
public @ResponseBody String getPerm(){
return "Perm";
}
错误信息:
无法评估表达式“accessBean.getPermision()”
好像我不能像上面那样使用SpEL,那么如果我使用这个版本的Spring Security,我该如何继续?
【问题讨论】:
标签: spring-security