将SpringSecurity与Capcha集成的合适方法是什么?
我有以下用例:当用户尝试登录时,如果我们他登录N次都失败了,就会显示captcha,所以身份验证将使用三个参数:用户名、密码、captcha。但是Spring Security不支持内置的Captcha处理。
我刚开始考虑实施。并有以下变体:
- 在Spring security过滤器堆栈中添加单独的安全过滤器
- 完全重写AuthenticationProcessingFilter以支持某些Captcha
- 使用一些带有拦截captcha逻辑的编程身份验证,然后将用户名和密码传输到Spring Security
作为一个Captcha实现,我认为JCaptcha,但你的想法是什么?
作为使用JCaptcha的替代方案,如果您想在网站上使用reCAPTCHA服务,请查看新的Spring in Practice手册(目前处于测试版)的免费第4.4节(直接PDF链接)。
这向您展示了与Spring MVC和Spring Validation的集成。由于集成是在前端,带有外部API,因此这里并没有真正介绍Spring Security。
我不确定你的用例是什么?你是否希望使用captchas作为身份验证的替代品来证明"人性"?
看看这篇文章:Spring Security 3:集成reCAPTCHA服务。
这使用了两个过滤器,使reCAPTCHA集成尽可能无缝和无干扰。这意味着您现有的SpringSecurity实现不会中断。无需触摸现有类
我已经通过定义自定义安全过滤器与reCaptcha和Spring Security(Spring Web Flow+JSF)进行了集成。也许它不是最优雅的,但效果很好。你可以看看我的博客——不幸的是,它是抛光的,但也许会对你或其他人有所帮助。。。
http://marioosh.net/blog/?p=1087
Kaptcha易于使用。