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

在身份验证过程之前检查用户名和密码的有效性

澹台岳
2023-03-14

我使用的是Spring Security 3.2.5。我使用ActiveDirectoryLdapAuthenticationProvider作为身份验证提供程序。但我想在通过Active Directory进行身份验证之前检查我的用户名和密码。例如,在通过Active Directory启动身份验证过程之前,我想检查用户名和密码是否不相等,其中是否没有空格,或者其大小是否小于特殊大小。

更新:Spring Security不允许用户名和/或密码为空,并引发此异常:身份验证请求失败:org。springframework。安全身份验证。BadCredentialsException:凭据错误。

我查看了不同的过滤器,我想我应该在UsernamePasswordAuthenticationFilter中进行检查,但我不确定,也不知道如何进行检查。我非常感谢你的帮助。

提前谢谢。

致以最良好的问候,/萨马内

共有1个答案

韩飞翮
2023-03-14

默认情况下,如果用户试图提交空用户名或密码,Spring Security将出错。就在LDAP身份验证尝试之前测试密码标准而言,这似乎本质上是不安全的。通过测试前提条件,您可以让攻击者了解密码可能是什么。此外,短路LDAP绑定尝试将有效规避Active Directory中配置的任何最大无效尝试阈值。

简单地说,当涉及到身份验证时,除了您提供的用户名和密码错误之外,我们不想向用户提供任何特定的详细信息。

 类似资料:
  • 客户已创建密钥存储库并存储凭据。为了验证密钥存储库,我已经在节点中创建了应用程序,并使用客户端id和客户端机密,我能够读取机密。但是现在客户不想使用客户id和客户机密,而是使用AZURE的用户名和密码来访问程序中的keyvault。它是一个没有MFA的keyvault访问的专用用户。 我不确定我们是否可以从节点JS使用用户名和密码访问keyvault。敬请建议。 谢谢

  • 在loadByUserName()方法中,我通过邮件找到用户。目前,我的用户类使用isEnabled()方法实现UserDetails,以检查用户是否已启用。然而,在身份验证之前会检查这个启用标志,这样任何人都可以发现另一个用户的帐户是否启用,无论使用什么密码。有没有办法在身份验证后检查启用标志? 我的用户类: My loadUserByUsername()方法: 我更改了默认消息,以防凭据不良或

  • 我才刚刚开始使用Git/GitHub就完全卡住了。我正在使用Mac/OSX El Capitan上的终端,当它询问密码时,它告诉我密码是无效的,但我输入的密码与我为GitHub帐户创建的密码相同,所以这肯定会起作用吗?我做错了什么?

  • 我正在尝试使用Postman发出POST请求。我拥有的凭据只是一个API密钥,而不是用户名和密码。 现在在Postman中,只要我选择“基本认证”,它就会提示输入用户名和密码。所以我将这些字段留空,然后转到Headers以给出我自己的授权键值,这给我留下了两个“授权”字段,如屏幕截图所示,我得到了无效的身份验证响应。 使用CLI中的CUrl命令授权工作正常。有解决方法吗?

  • 我有一个django rest_framework API、Swagger和一个Swagger UI。当我没有登录时,我只能看到非常有限的“登录”和“文档”视图。当我登录后,我可以看到很多东西。 我正在尝试使用swagger-代码生成客户端: 然而,它只生成一个非常有限的客户端,提供“登录”和“文档”功能。 如何让 swagger-codegen 知道如何使用 http 基本身份验证登录,以便生成

  • 问题内容: 正在尝试在提示(URL给定)中输入数据,以下代码给我一个错误。请帮我这些吗? 我尝试过: 这也是行不通的。 问题答案: 当你一起工作通过 3.6.1可以绕过通过嵌入的弹出和在自身如下。 此解决方案将打开URL http://the-internet.herokuapp.com/basic_auth并使用有效的username和password凭据进行身份验证。