我正在尝试构建一个可以进行 LDAP 查找的 Grails 应用程序。我一直在关注一些指南(链接文本和其他一些指南),但恐怕没有尽头。
相关源代码:来自 config.groovy:
ldap {
directories {
dir1 {
url = "ldap://dc01"
base = "ou=someou,dc=check,dc=nl"
userDn = "cn=Administrator,cn=Users,dc=check,dc=nl"
password = "wowthisisnothepassword"
}
}
schemas = [
ldapclient.GldapoSchemaClassForUser
]}
我的域类:
package ldapclient
import gldapo.schema.annotation.GldapoNamingAttribute
import gldapo.schema.annotation.GldapoSynonymFor
import gldapo.schema.annotation.GldapoSchemaFilter
@GldapoSchemaFilter("(objectclass=person)")
class GldapoSchemaClassForUser {
@GldapoNamingAttribute
String uid
@GldapoSynonymFor("cn")
String name
@GldapoSynonymFor("mail")
String email
@GldapoSynonymFor("uid")
String username
@GldapoSynonymFor("fullname")
String fullName
}
我的控制器:
package ldapclient
class AdController {
def defaultAction = "list"
List matches = GldapoSchemaClassForUser.findAll(
filter: "(name=s*)"
)
def list = {
[ "adMatches" : matches.list() ]
}}
尽管我的程序符合(据我所知)根据许多文档应该工作的内容,但我无法运行它。抛出的错误:
引起:groovy.lang.MissingMethodException:没有方法签名:静态 ldapclient.GldapoSchemaClassForUser.findAll() 适用于参数类型:(java.util.LinkedHashMap) 值: ldapclient 的 [[filter:(name=s )]] .AdController.(AdController.groovy:6)*
任何线索发生了什么/错误?我正在使用 Grails 1.2.3 并使用最新版本的 LDAP 插件。该项目是干净的(新创建的)。
提前致谢!
感谢您的回复;我刚刚升级到 Grails 1.3.4 并移动了一些文件。这做了一些好事,虽然我仍然得到这个讨厌的错误:
Error creating bean with name 'ldapclient.AdController': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [ldapclient.AdController]: Constructor threw exception; nested exception is groovy.lang.MissingMethodException: No signature of method: static ldapclient.GldapoSchemaClassForUser.findAll() is applicable for argument types: (java.util.LinkedHashMap) values: [[directory:dir1, filter:(uid=myname,ou=st,ou=ouou,dc=dc,dc=dcdc)]] Possible solutions: findAll(groovy.lang.Closure), find(groovy.lang.Closure)