本文主要介绍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;
分享到:
相关推荐
【Jeecms 9.2-adminVue:一个增强型的内容管理系统】 Jeecms是一个高度可定制的、基于Java技术的内容管理系统(CMS),以其强大的功能和灵活性受到开发者的青睐。9.2-adminVue版本是对该系统的一次重大更新,相较于...
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 2.3.2-Final 在 Oracle 数据库中的建库脚本转换详解》 Jeecms,一个成熟的Java内容管理系统,通常与MySQL数据库配合使用。然而,在某些特定场景下,用户可能需要将数据库环境从MySQL切换到Oracle。本文将...
《Jeecms6.1全功能源码解析与深度探讨》 Jeecms6.1是一款基于Java技术的开源内容管理系统,由"Certainvgr"提供的"jeecms6-src.zip"压缩包,包含了该系统的完整源代码,是开发者深入理解和定制Jeecms的理想资源。在...
JEECMS是JavaEE版网站管理系统 (Java Enterprise Edition Content Manage System)的简称。 · 基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点 · 采用SpringMVC3+Spring3+Hibernate3+...
Jeecms是一款基于Java技术开发的内容管理系统,专为企业的信息化建设和网站运营提供了强大的支持。它的源码包"jeecms5.1-src.zip"包含了整个系统的所有源代码,是学习和二次开发的理想资源。Jeecms的核心设计理念...
jeecms-db-3.0.4-final.sql
这是jeecms-3.0.4-fina的安装文件,希望对朋友们有所帮助。
【CMS程序】JEECMS 2.3.2 Final 是一款基于Java技术和JSP的开源内容管理系统,适用于构建企业网站、新闻门户等电子商务平台。这个系统版本为2.3.2,标记为Final,意味着它是该版本的最终稳定版,为用户提供了可靠且...
jeecms完整全功能版——源代码,压缩包3,去掉后最gz,配合压缩包1解压。
《Jeecms-2012:深入了解企业级内容管理系统》 Jeecms-2012是一款在2012年推出的基于Java技术的企业级内容管理系统(Content Management System,CMS)。这款系统以其高效、易用和强大的功能,赢得了广泛的赞誉和...
**JEECMS标签使用说明** JEECMS是一款基于Java技术的企业级内容管理系统,其提供了丰富的标签供用户在模板中使用,以方便地展示和处理网站内容。在JEECMS中,标签的使用是构建页面的关键,它们可以用于调用网站数据...
这个压缩包“jeecms-2012.rar”可能包含了该系统的所有源代码、配置文件、数据库脚本、文档以及必要的运行库,使得用户能够下载并部署到自己的服务器上,用于构建网站或内容管理平台。 Java技术是Jeecms的基础,它...
总的来说,Jeecms-2012-sp1为Java建站提供了一套完整的解决方案,无论是初学者还是经验丰富的开发者,都能从中受益。通过学习和使用Jeecms,你可以快速建立并管理功能丰富的网站,同时享受到Java技术带来的强大支撑...
通过分析Jeecms-2.4.2-final-src源码,开发者可以深入理解Java EE开发的最佳实践,学习如何整合Spring、Hibernate等框架,以及如何设计和实现一个高效的内容管理系统。这对于提升Java Web开发技能,特别是对企业级...
jeecms安装完毕后,找到项目对应的目录,把三个文件进行替换,就可以在注册、登录、留言时免验证码。登录密码错误三次后显示验证码,输入任意数如123就行。注明:jeecms9.2版本已验证通过。
jeecms完整全功能版——源代码,压缩包2,去掉后最gz,配合压缩包1解压。
3. **配置数据库**:根据你的数据库类型,配置jeecms-system.properties文件中的数据库连接信息。 4. **运行安装脚本**:使用数据库管理工具(如MySQL的phpMyAdmin)运行Jeecms提供的SQL脚本,创建数据库和表结构。 ...