【发布时间】:2014-10-31 17:12:06
【问题描述】:
在 Grails 项目中,我需要连接 Active Directory 并搜索用户(身份验证目的)。
我在 LDAP 和 Active Directory 中使用 Groovy LDAP API 和更大。
我的公司给了我一张用于测试的用户凭证
OU=Vendors,DC=company,DC=net
CN=Testing -2
sAMAccountName=test2
password=test123
ip=LDAP://xx.xx.xx.xx:389
所以我尝试了
LDAP ldapConn = LDAP.newInstance("LDAP://xx.xx.xx.xx:389", "CN=Testing -2,OU=Vendors,DC=company,DC=net", "test123")
try{
def results = ldapConn.search('(CN=Testing -2)', 'OU=Vendors,DC=company,DC=net', SearchScope.ONE )
println "${results.size} entries found:"
println results
}
catch(Exception ex){
println ex.printStackTrace()
}
以上代码有效,我使用CN=Testing -2 绑定Active Directory,但公司员工始终使用sAMAccountName 登录。
所以,当我尝试使用 sAMAccountName=test2 和密码进行绑定时
LDAP ldapConn = LDAP.newInstance("LDAP://xx.xx.xx.xx:389", "sAMAccountName=test2,OU=Vendors,DC=company,DC=net", "test123")
try{
def results = ldapConn.search('(sAMAccountName=test2)', 'OU=Vendors,DC=company,DC=net', SearchScope.ONE )
println "${results.size} entries found:"
println results
}
catch(Exception ex){
println ex.printStackTrace()
}
我来了
java.lang.NullPointerException
Error |
at org.apache.directory.groovyldap.LDAP.search(Unknown Source)
Error |
at org.apache.directory.groovyldap.LDAP$search.call(Unknown Source)
Error |
那么我该如何继续,test2 用户总是使用他的sAMAccountName (test2) 登录而不是使用CN (Testing -2)。
【问题讨论】:
标签: grails groovy active-directory ldap groovy-ldap