Конфигурация безопасности Grails Spring через xml - PullRequest
2 голосов
/ 30 июня 2011

Я новичок в безопасности Grails Spring, и я хотел узнать, возможно ли включить / отключить безопасность в моем приложении через запись XML.

вместо того, чтобы иметь grails.plugins.springsecurity.active= true

Я хотел бы прочитать значение из bean-компонента, который я объявил в моем файле resources.xml.

grails.plugins.springsecurity.active = com.myorg.util.BeanUtil.getBean ("repositorySettings"). getIsSecured ()

Использование этого подхода приводит к ошибкам.Есть ли способ, которым я могу сделать это, и прочитать значение true / false из bean-компонента в resources.xml

1 Ответ

2 голосов
/ 30 июня 2011

Это несколько возможно.resources.xml и resources.groovy загружаются после того, как плагин, но анализируется до.Таким образом, вы можете поместить код в resources.groovy, который будет выполняться во время его анализа, до того, как плагин загрузит конфигурацию и определит, включен ли он.Но вы не можете использовать бин для этого, так как он не будет готов, пока не станет слишком поздно.Это не было бы возможно в resources.xml, поскольку это всего лишь XML, но resources.groovy допускает определения кода Groovy и bean-компонентов:

import com.pbbi.mimgr.util.BeanUtil

beans = {
   def grailsApplication = springConfig.unrefreshedApplicationContext.grailsApplication
   def securityConfig = grailsApplication.config.grails.plugins.springsecurity
   securityConfig.active = BeanUtil.getBean('repositorySettings').isSecured
}

Если BeanUtil обращается к ApplicationContext, это не будет работать.Но если он получает доступ к синглетонам, которые не являются бобами Spring, все должно быть в порядке.

...