【发布时间】:2013-11-25 07:08:24
【问题描述】:
假设一个 grails (v2.3.x) 自定义类以模仿 @JamesWatkins in this post 概述的 java 方式创建和设置,使用静态字符串注释方法很简单:
@Secured(["@mySecurityService.hasPermission('special')"])
public void doSpecialStuff() { ... }
但是为了防止硬编码值,是否可以通过在 SpEL 表达式中嵌入自定义 Enum(或类似的)来替换 'special'?
我试过这个:
@Secured(["@mySecurityService.hasPermission('{ T(com.example.MyConfig$MyEnum.SPECIAL) }')"])
public void doSpecialStuff() { ... }
但我不断收到关于字符串不是常量的异常:
Expected '@mySecurityService.hasPermission('{ T(com.example.MyConfig$MyEnum.SPECIAL) }')' to be an inline constant of type java.lang.String
【问题讨论】:
标签: grails enums spring-security annotations spring-el