Spring Security を使用する私の Grails アプリでは、conf/spring/resource.groovy で次の Spring Bean を初期化したいと考えています。
beans = {
if (grailsApplication.config.grails.plugins.springsecurity.rememberMe.persistent) {
rememberMeServices(MyPersistentTokenBasedRememberMeService) {
userDetailsService = ref('userDetailsService')
key = grailsApplication.config.grails.plugins.springsecurity.rememberMe.key
cookieName = grailsApplication.config.grails.plugins.springsecurity.rememberMe.cookieName
alwaysRemember = grailsApplication.config.grails.plugins.springsecurity.rememberMe.alwaysRemember
tokenValiditySeconds = grailsApplication.config.grails.plugins.springsecurity.rememberMe.tokenValiditySeconds
parameter = grailsApplication.config.grails.plugins.springsecurity.rememberMe.parameter
useSecureCookie = grailsApplication.config.grails.plugins.springsecurity.rememberMe.useSecureCookie // false
tokenRepository = ref('tokenRepository')
seriesLength = grailsApplication.config.grails.plugins.springsecurity.rememberMe.persistentToken.seriesLength // 16
tokenLength = grailsApplication.config.grails.plugins.springsecurity.rememberMe.persistentToken.tokenLength // 16
}
}
}
このコードは、ページの下部にあります。
次のエラーが表示されます。
ERROR context.GrailsContextLoader - Error initializing the application: Error creating bean with name 'authenticationProcessingFilter': Cannot resolve reference to bean 'rememberMeServices' while setting bean property 'rememberMeServices'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeServices': Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type 'groovy.util.ConfigObject' to required type 'int' for property 'tokenLength'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [groovy.util.ConfigObject] to required type [int] for property 'tokenLength': PropertyEditor [org.springframework.beans.propertyeditors.CustomNumberEditor] returned inappropriate value of type [groovy.util.ConfigObject]
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'authenticationProcessingFilter': Cannot resolve reference to bean 'rememberMeServices' while setting bean property 'rememberMeServices'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeServices': Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type 'groovy.util.ConfigObject' to required type 'int' for property 'tokenLength'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [groovy.util.ConfigObject] to required type [int] for property 'tokenLength': PropertyEditor [org.springframework.beans.propertyeditors.CustomNumberEditor] returned inappropriate value of type [groovy.util.ConfigObject]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
Bean を正しく初期化するには、何を変更する必要がありますか?