Я пытаюсь получить доступ к Конфигурации приложения grails через аннотацию @Secured весенней безопасности с целью экстернализации имени роли позже.Доступ к 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"
...
Есть ли у кого-нибудь совет, как это решить?
EDIT
Наткнулся Burt's article который был информационный.
Не знаю, какие значения аннотации должны быть связаны с временными ограничениями компиляции. Спасибо за информацию. – dmahapatro
Мысль о том, что Grails может перенести константу в аннотацию во время компиляции, заменив константу на String перед запуском компиляции в байтовый код. –
@ MichaelWölm, как и в Java, вы можете использовать все, что является константой _compile-time_, например ссылку на константу 'static final' в классе' src/java', но не то, что можно разрешить только во время выполнения. –