在SpringSide 3 中使用JCaptcha
来源:互联网 发布:08年网络流行歌曲 编辑:程序博客网 时间:2024/06/10 23:57
在目前的网络上,想必大家对验证图片已经司空见惯了。验证图片是区分人和计算机的一种既有效又简单的方法。为了提高网站的安全性,防止黑客利用计算机进行暴力破解和防止黑客使用程序自动提交大量垃圾信息,在我们的网站中引入验证码机制是必要的。
在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-mapping定义之前 -->
<filter-mapping>
<filter-name>jcaptchaFilter</filter-name>
<url-pattern>/j_spring_security_check</url-pattern>
</filter-mapping>
- 在SpringSide 3 中使用JCaptcha
- 在SpringSide 3 中使用JCaptcha
- 在SpringSide 3 中使用多个数据库的方法
- 在SpringSide 3 中使用多个数据库的方法
- 在SpringSide 3 中使用多个数据库的方法
- 在SpringSide 3 中使用多个数据库的方法
- 在Spring中使用jcaptcha实现图片验证
- 在SpringSide 2.0中使用CXF提供Web Service服务
- jcaptcha 使用
- 在使用JCaptcha(验证码)在项目中时,在windows没报异常,但移植linux上部署出错。
- Springside中使用MyBatis进行分页
- Springside中使用MyBatis进行分页
- jcaptcha+使用redis集群保存jcaptcha
- SpringMVC中使用Jcaptcha实现校验码验证(转载)
- JCaptcha基本使用
- jcaptcha
- SpringSide使用MyBatis框架
- 使用 jcaptcha 产生图片校验码
- MyBatis学习 之 三、SQL语句映射文件(2)增删改查、参数、缓存
- 优势k歌软件功能说明
- div里的图片居 中
- 2012年08月13日
- Mybatis传递多个参数
- 在SpringSide 3 中使用JCaptcha
- 如果工作流技术的进一步发展,那会是什么?
- mac 下 添加/删除/管理 开机自动运行程序
- TFS学习笔记之非域安装篇
- SQL基本查询语句(Northwind数据库)
- MyBatis学习 之四、动态SQL语句
- Java不支持多继承,但是。。。
- 【解题报告】 POJ 1113 Wall -- 求凸包周长
- MyBatis学习 之 五、MyBatis配置文件