【发布时间】:2011-06-30 16:29:24
【问题描述】:
我想在 Spring Security 表单中添加验证码,我该如何实现?
我已经声明了我的自定义表单登录,例如:<form-login login-page="/login" /> 现在我需要覆盖身份验证过滤器来验证验证码,该怎么做?
【问题讨论】:
我想在 Spring Security 表单中添加验证码,我该如何实现?
我已经声明了我的自定义表单登录,例如:<form-login login-page="/login" /> 现在我需要覆盖身份验证过滤器来验证验证码,该怎么做?
【问题讨论】:
我猜你可以重写attemptAuthentication方法如下(伪代码):
1. get captcha response
2. verify captcha response
3. if invalid response, throw some kind of AuthenticationException (may be named as CaptchaFailedException) that you can check in your custom AuthenticationFailureHandler
4. if valid response, call super.attemptAuthentication(request,response)
【讨论】:
@misha,看看这篇文章:Spring Security 3: Integrating reCAPTCHA Service。
这使用两个过滤器来使 reCAPTCHA 集成尽可能无缝且不显眼。这意味着您现有的 Spring Security 实现不会中断。无需触及现有的课程。
无需覆盖您现有的实现。您可以将 CAPTCHA 添加到您现有的实施中。
【讨论】: