Java Spring - Annotation param作为属性值

时间:2015-01-06 16:34:14

标签: java spring annotations

Java - 来自属性值的Spring Annotation参数

以下是我的@Secured注释我想要定义字符串" USER_ABC"在.properties文件中,并在@Secured({myProp})使用它,但它给了我错误

@Value('${my.property}') private string myProp;

   @Secured({myProp,"ADMIN_123"})
    public void mySecureMethod(){
    }

而不是

@Secured({"USER_ABC","ADMIN_123"})
public void mySecureMethod(){
}

提前获得任何解决方案。

1 个答案:

答案 0 :(得分:1)

虽然你不能使用@Secured,因为正如Edwin指出的那样,它无法处理常量表达式,你可以使用@PreAuthorize注释来评估SPEL表达式。

请注意,@PreAuthorize在Spring安全过滤器链方面以及何时被调用时的工作方式略有不同。

有一个非常好的问题应该是你的第一个停靠点here。如果您有理由不能使用@PreAuthorize,请与我们联系。