Grails访问安全注释中的配置属性

Grails访问安全注释中的配置属性,grails,configuration,Grails,Configuration,我试图通过springsecurity的@securied注释访问grails应用程序的配置,目的是在以后将角色名外部化 遗憾的是,我没能让它工作。既不尝试使用已弃用的ConfigurationHolder类,也不获取对grailsApplication对象的引用 import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH @Secured([CH.config.grails.app.user]) class MyCon

我试图通过springsecurity的@securied注释访问grails应用程序的配置,目的是在以后将角色名外部化

遗憾的是,我没能让它工作。既不尝试使用已弃用的ConfigurationHolder类,也不获取对grailsApplication对象的引用

import org.codehaus.groovy.grails.commons.ConfigurationHolder as CH
@Secured([CH.config.grails.app.user])
class MyController { ...}

Config.groovy:
...
grails.app.user = "ROLE_APPNAME_USER"
...
有人对如何解决这个问题有什么建议吗

编辑
这是一个信息性问题。

您不能-注释元素值必须是编译时常量,因为它们由编译器解析并存储为类字节码的一部分


使用其他机制中的一种来指定安全约束(静态规则或数据库中的Requestmap实例,而不是注释),您可能会更幸运。

您不能这样做-注释元素值必须是编译时常量,因为它们由编译器解析并存储为类字节码的一部分


您可能更幸运地使用其他机制之一来指定安全约束静态规则或数据库中的Requestmap实例,而不是注释。

不知道注释值必须是编译时约束。感谢您提供的信息。我认为Grails能够在编译时将常量迁移到注释中,方法是在开始编译到字节码之前用字符串替换常量。@MichaelWölm在Java中,您可以使用任何编译时常量,例如对src/java类中静态最终常量的引用,但不是只能在运行时解析的内容。不知道注释值必须是编译时约束。感谢您提供的信息。我认为Grails能够在编译时将常量迁移到注释中,方法是在开始编译到字节码之前用字符串替换常量。@MichaelWölm在Java中,您可以使用任何编译时常量,例如对src/java类中静态final常量的引用,但不是只能在运行时解析的内容。