本文主要介绍jeecms中使用的验证码 jcapthcha.
这是个开源的软件,下载地址:
http://jcaptcha.sourceforge.net/
在jeecms中使用的版本是jcaptcha-1.0.jar.
<servlet>
<servlet-name>Jcaptcha</servlet-name>
<servlet-class>com.jeecms.common.captcha.JcaptchaServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Jcaptcha</servlet-name>
<url-pattern>/captcha.svl</url-pattern>
</servlet-mapping>
注意,这里的url使用的是/captcha.svl.
servlet JcaptchaServlet 重新写了生成图片的代码。
<form
id
="jvForm
" action
="/login.jspx
" method
="post
">
...
<td colspan="2"><img src="/captcha.svl" onclick="this.src='/captcha.svl?d='+new Date()*1"
width="100" height="35"/></td>
...
</form>
onclick 方法后面是如果点击此图片,则生成新的验证码图片。
包路径:package com.jeecms.cms.action.member;
验证的代码如下:
@RequestMapping(value = "/login.jspx", method = RequestMethod.POST)
public String submit(String username, String password, String captcha,
String processUrl, String returnUrl, String message,
HttpServletRequest request, HttpServletResponse response,
ModelMap model) {
Integer errorRemaining = unifiedUserMng.errorRemaining(username);
CmsSite site = CmsUtils.getSite(request);
String sol = site.getSolutionPath();
WebErrors errors = validateSubmit(username, password, captcha,
errorRemaining, request, response);
。。。。。
private WebErrors validateSubmit(String username, String password,
String captcha, Integer errorRemaining, HttpServletRequest request,
HttpServletResponse response) {
WebErrors errors = WebErrors.create(request);
if (errors.ifOutOfLength(username, "username", 1, 100)) {
return errors;
}
if (errors.ifOutOfLength(password, "password", 1, 32)) {
return errors;
}
// 如果输入了验证码,那么必须验证;如果没有输入验证码,则根据当前用户判断是否需要验证码。
if (!StringUtils.isBlank(captcha)
|| (errorRemaining != null && errorRemaining < 0)) {
if (errors.ifBlank(captcha, "captcha", 100)) {
return errors;
}
try {
if (!imageCaptchaService.validateResponseForID(session
.getSessionId(request, response), captcha)) {
errors.addErrorCode("error.invalidCaptcha");
return errors;
}
} catch (CaptchaServiceException e) {
errors.addErrorCode("error.exceptionCaptcha");
log.warn("", e);
return errors;
}
}
return errors;
}
。。。。
注意,image的生成和验证,是根据sessionid为标识的。
比如生成时的代码:
String captchaId = session.getSessionId(request, response);
BufferedImage challenge = captchaService.getImageChallengeForID(
captchaId, request.getLocale());
// Jimi.putImage("image/jpeg", challenge, jpegOutputStream);
ImageIO.write(challenge, CAPTCHA_IMAGE_FORMAT, jpegOutputStream);
验证时的代码:
if (!imageCaptchaService.validateResponseForID(session
.getSessionId(request, response), captcha)) {
errors.addErrorCode("error.invalidCaptcha");
return errors;
分享到:
相关推荐
1.将jeecms自带的jcaptcha-1.0.jar 替换成jcaptcha-all-1.0-RC6.jar 2.修改配置文件WEB-INF/config/captcha-context.xml <constructor-arg index="0" ref="imageEngine"/> <constructor-arg type="int" index="1...
jeecms是一款很不错的cms产品,之前在文章《基于Java的门户网站管理系统——JEECMS源码版的搭建步骤》中讲述了jeecms的搭建,现在已经是V9.3版本了,功能又比之前增强了不少。
JEECMS标签-使用说明pdf文档.pdf
jeecms-2.4.1-beta-src jeecms-2.4.1-beta-src jeecms-2.4.1-beta-src
jeecms-db-3.0.4-final.sql
jeecms mysql 建库脚本改为 oracle 建库脚本
这是jeecms-3.0.4-fina的安装文件,希望对朋友们有所帮助。
JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content Manage System)的简称。 基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点 采用hibernate3+struts2+spring2+freemarker...
jeecms完整全功能版——源代码,压缩包3,去掉后最gz,配合压缩包1解压。
JEECMS-V2012使用说明书.doc
jeecms 源码包快来下载吧
前几年的JavaJsp应用源码Demo,主要面向的是学生毕业设计学习。
jeecms-2012.rar
毕业设计论文-IT计算机-jeecms-2012-源码.zip
jeecms完整全功能版——源代码,压缩包1
jeecms安装完毕后,找到项目对应的目录,把三个文件进行替换,就可以在注册、登录、留言时免验证码。登录密码错误三次后显示验证码,输入任意数如123就行。注明:jeecms9.2版本已验证通过。
jeecms完整全功能版——源代码,压缩包2,去掉后最gz,配合压缩包1解压。
jeecms java一键建站。傻瓜式操作,jeecms-2012-sp1
主题 : java开源CMS系统-JEECMS v2012sp1版安装包下载帖. eecms 版是一款集新闻管理、图库管理、视频管理、下载系统、作品管理、产品发布及留言板于一体的综合性CMS系统。 JEECMS一直秉承用户体验、系统性能和实际...