Java LDAP身份验证错误
当试图使用LDAP身份验证来查找使用AD身份验证的用户时,我在grails中遇到一个错误。这是我从grails方面得到的代码:Java LDAP身份验证错误,java,spring,grails,active-directory,ldap,Java,Spring,Grails,Active Directory,Ldap,当试图使用LDAP身份验证来查找使用AD身份验证的用户时,我在grails中遇到一个错误。这是我从grails方面得到的代码: @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException { ArrayList<String> roles=new ArrayList<String
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException, DataAccessException {
ArrayList<String> roles=new ArrayList<String>(2);
roles.add("ROLE_USER");
try {
GldapoSchemaClassForUser.findAll( directory: "user", filter: "(userPrincipalName=${username})" ).each{ user ->
def userName = user.cn
user.memberOf.each{ groupListing ->
String groupName=groupListing.substring(3, groupListing.indexOf(','));
if (groupName.equals("Admin")) {
roles.add("ROLE_ADMIN");
} else if (groupName.equals("User")) {
// Do nothing
}
} catch (Throwable e) {
System.err.println(e.getMessage())
}
return new User(username)
}
当它试图访问上面的这一行时,它会碰到catch块:
GldapoSchemaClassForUser.findAll目录:用户,筛选器:
userPrincipalName=${username}
显示此错误消息:
org.springframework.ldap.AuthenticationException:[ldap:错误代码49
-80090308:LDAPPER:DSID-0C0900334,注释:AcceptSecurityContext错误,数据525,vece
根据文档,此错误表明525错误意味着无效用户,但我已经使用LDAP explorer工具进行了测试,它与用户连接良好,具有相同的详细信息
在应用程序配置文件中,我有以下ldap设置:
ldap.directories.user.url=ldap://sbs.testsbs.local
ldap.directories.user.base=OU=staff,DC=skills,DC=local
ldap.directories.user.userDn=OU=staff,DC=skills,DC=local
ldap.directories.user.password=Pa55w0rd
有人知道我做错了什么吗?你的错误在应用程序配置LDAP设置中 ldap.directories.user.userDn设置已填充容器,与您在ldap.directories.user.base中指定的容器相同 但是,这应该是执行搜索的用户对象的DN,类似于ldap.directories.user.userDn=CN=myAppUser、OU=staff、DC=skills、DC=local 525错误意味着找不到用户,但在本例中属于登录用户,而不是您正在搜索的用户