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

如何使用spring security根据db或ldap动态认证用户?

贺博厚
2023-03-14

我将身份验证配置为与db和ldap一起工作,如下所示:

auth.ldapAuthentication()
        .groupSearchBase(groupSearchBase)
        .groupSearchFilter(groupFilter)
        .userSearchFilter(userFilter).userSearchBase(userSearchBase)
        .contextSource(contextSource())
        .and()
        .jdbcAuthentication().dataSource(dataSource).usersByUsernameQuery(
        "SELECT lower(username), password, active from USER_BTABLE where lower(username)=lower(?) and LDAPAUTH=0"
).authoritiesByUsernameQuery("select lower(username), 'ROLE_USER' from USER_ATABLE where lower(username)=lower(?)");

问题是,如果用户也存在于配置的 ldap 中,并且使用以第 6 个身份验证请求开头的另一个密码,则会出现以下异常:

 org.springframework.ldap.InvalidAttributeValueException: [LDAP: error code 19 - Exceed password retry limit. Please try later.];

我检查登录筛选器,如果用户设置了db-auth标志,我可以在那里动态配置AuthenticationManagerBuilder吗?

共有1个答案

白越
2023-03-14

我最终在 doFilter 方法中执行了从数据库身份验证服务器实例到 ldap 身份验证服务器实例的 307 重定向:

httpResponse.setStatus(TEMPORARY_REDIRECT);
httpResponse.setHeader("Location", req.getScheme() + "://"redirectLocation);
 类似资料:
  • 本文向大家介绍Python使用LDAP做用户认证的方法,包括了Python使用LDAP做用户认证的方法的使用技巧和注意事项,需要的朋友参考一下 LDAP(Light Directory Access Portocol)是轻量目录访问协议,基于X.500标准,支持TCP/IP。 LDAP目录以树状的层次结构来存储数据。每个目录记录都有标识名(Distinguished Name,简称DN),用来读取

  • 我一直在寻找一种使用spring ldapTemplate通过LDAP验证用户名的方法。 我的搜索结果是 但我想知道我需要在contextMapper或attributeMapper中添加什么。据我所知,它用于将数据映射到对象。但我不需要这个东西。我只想知道布尔值是否存在。 我的属性示例: 我的模板包含url、用户名和密码,连接已经建立。 我需要一些帮助,因为我不确定使用搜索方法是否正确。 我已使

  • 问题内容: 我正在玩LDAP和Java搜索。这是我的一个简单组织的LDIF导出 如何运行Java代码段以从LDAP服务器获取所有用户?我的Apache DS目录服务器上没有身份验证设置。 问题答案:

  • 问题内容: 我需要创建一个GUI,用户可以使用它选择几个属性,这些属性将用于查询数据库以找到合适的人。我正在寻找有关如何根据用户的选择动态生成数据库查询的想法。 查询将包含几个字段,但为便于理解,我仅在下面举例说明三个字段: 职业 -可以有0到n个职业字符串。如果给出了占用字符串,则其中之一必须匹配。 年龄 -年龄可以表示为: 完全匹配(30) 范围(例如30-40) 小于一个值(-40) 大于一

  • LDAP的基础是什么?如果在配置期间没有给出任何基数。 我必须从基于web的应用程序验证/验证用户,并且我有java代码。 但是我需要为此建立基础(变量),我已经让另一个团队告诉我基础,他们说我们没有在LDAP上定制任何东西。LDAP的默认基数是什么?

  • 我想在我的公司现有的Spring启动项目中实现 ldap 身份验证。因此,为此,我尝试首先实现一个示例spring启动应用程序,其中我将从我的公司ldap服务器对ldap用户进行身份验证。如果它有效,那么我将在我的现有项目中实现相同的代码,并且我想仅使用ldap绑定身份验证机制来实现这一点。 以下是ldap用户进行身份验证的代码 这是用户的服务器结构,从这张图片中,您将了解用户可用的属性 pom.