Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java LDAP身份验证错误_Java_Spring_Grails_Active Directory_Ldap - Fatal编程技术网

Java LDAP身份验证错误

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

当试图使用LDAP身份验证来查找使用AD身份验证的用户时,我在grails中遇到一个错误。这是我从grails方面得到的代码:

@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错误意味着找不到用户,但在本例中属于登录用户,而不是您正在搜索的用户