当前位置: 首页 > 知识库问答 >
问题:

无法通过LDAP身份验证通过Spring Security登录

赫连俊雄
2023-03-14

嗨,我正在进行Spring Boot,我正在尝试使用Spring Security性来从active Directory进行用户身份验证。但是我无法将用户登录到应用程序中,我已经尝试了几个东西,下面是我尝试的代码:

@Override
    public void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth
            .ldapAuthentication()
                .userDnPatterns("uid={0},ou=Users")
                .groupSearchBase("ou=groups")
                .contextSource(contextSource())
                .passwordCompare()
                    .passwordEncoder(new LdapShaPasswordEncoder())
                    .passwordAttribute("userPassword");
    }

    @Bean
    public DefaultSpringSecurityContextSource contextSource() {
        return  new DefaultSpringSecurityContextSource(Arrays.asList("ldap://WIN-BSCF2478SL5.Adexample.com"), "CN=Administrator,DC=ADExample,DC=com");
    }

当我试图从administrator登录时,我得到的错误如下:

原因:LDAP处理过程中出现未分类异常;嵌套异常是javax.naming.namingException:[LDAP:错误代码1-000004DC:LDAPERR:DSID-0C0906E8,注释:为了执行此操作,必须在连接上完成成功的绑定。,data 0,v1db1];剩余名称'uid=administrator,ou=users'

我还尝试使用userSearchFilter而不是userDnPatterns,但仍然有一个例外:代码

auth.ldapAuthentication().userSearchFilter("uid={0}").contextSource()
                .url("ldap://WIN-BSCF2478SL5.Adexample.com/DC=ADExample,DC=com").managerDn("Administrator")
                .managerPassword("Passw0rd");
auth.ldapAuthentication().userSearchFilter("uid={0}").contextSource()
            .url("ldap://WIN-BSCF2478SL5.Adexample.com/DC=ADExample,DC=com");

它对我也不起作用,我得到的例外是

原因:LDAP处理过程中出现未分类异常;嵌套异常是javax.naming.namingException:[LDAP:错误代码1-000004DC:LDAPERR:DSID-0C0906E8,注释:为了执行此操作,必须在连接上完成成功的绑定。,data 0,v1db1];剩余名称“/”

共有1个答案

贺恩
2023-03-14

类似的问题也可以在这里找到。

您得到的错误可能是由多种其他原因造成的,因为我们看不到您的配置。看来您无法绑定到LDAP。您的LDAP配置正确吗?您是否像教程所指出的那样尝试配置测试服务器。ldif?

 类似资料:
  • 问题内容: 我有一个Node.js程序,该程序使用root帐户连接到本地MySQL数据库(这不是生产设置)。这是创建连接的代码: 它可以与MySQL 5.7一起使用,但是由于安装了MySQL 8.0,因此在启动Node.js应用程序时出现此错误: 看来根帐户使用了一种新的密码哈希方法: …但是我不知道为什么Node.js无法连接到它。我已经更新了所有npm软件包,但这仍然是一个问题。 我想保留新的

  • 问题内容: 问题: 我们有一个基于Spring MVC的RESTful API,其中包含敏感信息。该API应该是安全的,但是不希望随每个请求一起发送用户凭证(用户/密码组合)。根据REST准则(和内部业务要求),服务器必须保持无状态。该API将由另一台服务器以mashup方式使用。 要求: 客户端使用凭据向(不受保护的URL)发出请求;服务器返回一个安全令牌,该令牌包含足够的信息供服务器验证未来的

  • 我们想使用Jitsi REST API创建一个会议。我们的Jitsi实例已经受到Prosody的保护:只有某些用户可以主持会议(他们必须使用用户和密码凭据进行身份验证才能主持会议室)。现在,在他们这么做之后,计划是通过创建一个来宾密码来保护房间,聊天伙伴/来宾需要输入该密码才能加入会议。这个过程需要通过REST API实现自动化:我们希望通过REST API创建会议,并传递一个需要来宾输入的密码。

  • 一切都一直在工作,只是今天我开始得到一个错误消息,我甚至不能从Android工作室“同步项目与Gradle文件”。我唯一改变的是...办公室:D

  • 在我配置了下面的配置之后,它不会连接到Active Directory。我无法使用Active Directory的帐户登录。会有什么问题? 我有一个Ubuntu服务器18.04,带有ApacheGuacamoleV1。0.0. 安装。我想使用LDAP身份验证来验证用户。我已经下载了鳄梨酱-auth-ldap-1.0.0。jar和jldap-4.3。jar扩展。 10.10.10.21,10.10

  • 问题: 我们有一个spring的基于MVC的RESTful API,它包含敏感信息。API应该是安全的,但是不希望在每个请求中发送用户的凭据(User/Pass组合)。根据REST指南(和内部业务需求),服务器必须保持无状态。API将由另一台服务器以混搭方式使用。 要求: > 客户端请求使用凭据(不受保护的URL);服务器返回一个安全令牌,该令牌包含足够的信息,供服务器验证未来的请求并保持无状态。