java - 在 Spring 注解中使用静态变量

我使用spring的PreAuthorize注解如下:

@PreAuthorize("hasRole('role')");

但是,我已经将“角色”定义为另一个类的静态字符串。如果我尝试使用这个值:

@PreAuthorize("hasRole(OtherClass.ROLE)");

我收到一个错误:

org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 14): Field or property 'OtherClass' cannot be found on object of type 'org.springframework.security.access.expression.method.MethodSecurityExpressionRoot'

有没有办法通过 PreAuthorize 注释访问这样的静态变量?

最佳答案

尝试以下使用 Spring 表达式语言来评估类型:

@PreAuthorize("hasRole(T(fully.qualified.OtherClass).ROLE)");

请务必指定完全限定的类名。

Documentation

https://stackoverflow.com/questions/17444856/

相关文章:

java - Spring jsp页面未评估

java - cvc-complex-type.2.4.c : The matching wildc

java - 我应该把我的 ThreadLocals 放在一个 Spring 注入(inject)的

java - 依赖注入(inject) servlet 监听器

json - Spring 3.2RC1 中来自 JodaTime 的 jackson2 JSON

spring - 将 HTML5 占位符属性添加到 Spring 3.0 表单输入元素

java - 多语言数据库,默认回退

java - 关于 Spring web.xml

java - Spring 3中@Component和@Configuration的区别

java - 非法状态异常 : Cannot find changelog location: cl