快速业务通道

在SpringSide 3 中使用JCaptcha - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-21

在SpringSide 3 中使用JCaptcha

时间:2011-01-15 BlogJava 海边沫沫

在目前的网络上,想必大家对验证图片已经司空见惯了。验证图片是区分人和计算机的一种既有效又简单的方法。为了提高网站的安全性,防止黑客利用计算机进行暴力破解和防止黑客使用程序自动提交大量垃圾信息,在我们的网站中引入验证码机制是必要的。

在SpringSide 3的Showcase中,江南白衣演示了JCaptcha。Captcha是Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自动区分计算机和人类的图灵测试)的简称,而JCaptcha是一个在该理论下的基于Java的一个实现。我终于开始看Showcase中的一些特性了,下面来谈谈把JCaptcha集成到项目中的一些想法。

首先要把如下四个jar包拷贝到项目中:

jcaptcha-1.0.jar

jcaptcha-api-1.0.jar

imaging-01012005.jar

springside3-jee-3.1.5.jar

以上四个jar文件前两个不用我多解释,imaging-01012005.jar是必须要的,因为它提供了JCaptcha需要的 WaterFilter类,而springside3-jee-3.1.5.jar里面包含的就是SpringSide 3对JCaptcha的扩展。SpringSide 3对JCaptcha做了哪些扩展呢?主要表现在两个方面:一是编写了一个Filter,用来配合SpringSecurity,二是实现了一个图片生成引擎,即GMailEngine。

事实上,JCaptcha是可以直接使用的,即直接使用CaptchaService类来生成和验证图片中的信息,而CaptchaService可以使用Spring管理;但是一旦和SpringSecurity配合起来使用就比较麻烦了,因为我们不可能去修改SpringSecurity的代码,所以就只能在web.xml中配置Filter了。但是在不和SpringSecurity配合的情况下,我们还是少不了直接使用 CaptchaService类,因为Filter是定制死了的,不灵活,如果我们要返回供AJAX使用的字符串,就必须得自己写代码。

好了,下面看看具体步骤。

1、先在Spring的配置文件中配置CaptchaService的Bean,如下:

<!--JCaptcha验证码服务 -->      <bean id="captchaService" class="com.octo.captcha.service.image.DefaultManageableImageCaptchaService">          <property name="captchaEngine">              <bean class="org.springside.modules.security.jcaptcha.GMailEngine" />          </property>          <property name="minGuarantedStorageDelayInSeconds" value="600" />      </bean>

2、在web.xml中配置Filter,如下:

<!-- SpringSide''s JCaptcha filter -->      <filter>          <filter-name>jcaptchaFilter</filter-name>          <filter-class>org.springside.modules.security.jcaptcha.JCaptchaFilter</filter-class>          <init-param>              <param-name>failureUrl</param-name>              <param-value>/login.action?error=2</param-value>          </init-param>      </filter>

<!-- jcaptcha图片生成URL. -->      <filter-mapping>          <filter-name>jcaptchaFilter</filter-name>          <url-pattern>/security/jcaptcha.jpg</url-pattern>      </filter-mapping>      <!-- jcaptcha登录表单处理URL.                   必须放在springSecurityFilter的filter

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号