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

时间:2014-10-03 17:13:49

标签: spring-security

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

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

我在不同的过滤器中查看,我认为我应该在UsernamePasswordAuthenticationFilter中进行检查,但我不确定,我不知道该怎么做。我非常感谢你的帮助。

提前致谢。

最诚挚的问候, / Samaneh

1 个答案:

答案 0 :(得分:1)

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

简单地说,在身份验证方面,我们不希望向用户提供除您提供的用户名和密码错误之外的任何具体细节。