假设 grails (v2.3.x) 自定义类以模仿本文中@JamesWatkins 概述的 java 方式创建和设置,使用静态字符串注释方法很简单:
@Secured(["@mySecurityService.hasPermission('special')"])
public void doSpecialStuff() { ... }
但是为了防止硬编码值,是否可以'special'
通过在 SpEL 表达式中嵌入自定义枚举(或类似的)来替换?
我试过这个:
@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