Grails resources.groovy beans

时间:2012-10-12 11:12:56

标签: grails spring-security spring-ldap

我在尝试确定我的咖啡豆是否已正确加载时遇到了一些问题。 是否有一些log4j属性可以在日志中显示正确加载的bean?。

经过一番尝试后,我开始尝试here

中的另一个例子

重新定义我的resources.groovy如下:

import grails.spring.BeanBuilder
BeanBuilder bb = new BeanBuilder()
bb.beans = {
    ldapUserDetailsMapper(example.CustomDetailsContextMapper) {
    }
}

CustomDetailsContextMapper依次定义为:

class CustomDetailsContextMapper implements UserDetailsContextMapper {
def springSecuritySource

@Override
public UserDetails mapUserFromContext(DirContextOperations ctx, String username, Collection authorities) {

这是使用这种resource.groovy设置时出现的错误:

2012-10-12 12:52:31,663 [main] ERROR spring.GrailsRuntimeConfigurator  - [RuntimeConfiguration] Unable to load beans from resources.groovy
org.codehaus.groovy.runtime.metaclass.MissingPropertyExceptionNoStack: No such property: beans for class: resources
Possible solutions: class

当不使用beanbuilder时,我没有错误,但我无法确认我的bean已加载,因为它们似乎永远不会被调用。 在另一种情况下,我得到以下错误。

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

在resource.groovy中的

只需写

beans = {
    ldapUserDetailsMapper(example.CustomDetailsContextMapper) {
    }

已经为您定义了BeanBuilder

使用时调用bean ...在控制器内部尝试

VeryBeanController{

    def ldapUserDetailsMapper

    def index = {

       render( ldapUserDetailsMapper  )

    }

}

并致电控制器