`
ligf06
  • 浏览: 102854 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

jeecms 验证码-jcaptcha

    博客分类:
  • CMS
阅读更多

本文主要介绍jeecms中使用的验证码 jcapthcha.

 

这是个开源的软件,下载地址:

 

http://jcaptcha.sourceforge.net/

 

在jeecms中使用的版本是jcaptcha-1.0.jar.

 

  • web.xml里的配置
	<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 重新写了生成图片的代码。

 

  • login.html中的配置
<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 方法后面是如果点击此图片,则生成新的验证码图片。

 

  • 验证码的处理类CasLoginAct.java

包路径: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;

 

 

 

分享到:
评论

相关推荐

    jeecms9.2-adminVue

    【Jeecms 9.2-adminVue:一个增强型的内容管理系统】 Jeecms是一个高度可定制的、基于Java技术的内容管理系统(CMS),以其强大的功能和灵活性受到开发者的青睐。9.2-adminVue版本是对该系统的一次重大更新,相较于...

    jcaptcha-all-1.0-RC6.jar 和 解决步骤 包

    1.将jeecms自带的jcaptcha-1.0.jar 替换成jcaptcha-all-1.0-RC6.jar 2.修改配置文件WEB-INF/config/captcha-context.xml &lt;constructor-arg index="0" ref="imageEngine"/&gt; &lt;constructor-arg type="int" index="1...

    jeecms-2.3.2-final-db oracl建库脚本

    《Jeecms 2.3.2-Final 在 Oracle 数据库中的建库脚本转换详解》 Jeecms,一个成熟的Java内容管理系统,通常与MySQL数据库配合使用。然而,在某些特定场景下,用户可能需要将数据库环境从MySQL切换到Oracle。本文将...

    jeecms6-src.zip_certainvgr_jeecms_jeecms6 src_jeecms6.1_mainb2s

    《Jeecms6.1全功能源码解析与深度探讨》 Jeecms6.1是一款基于Java技术的开源内容管理系统,由"Certainvgr"提供的"jeecms6-src.zip"压缩包,包含了该系统的完整源代码,是开发者深入理解和定制Jeecms的理想资源。在...

    jeecms-3.1.1 源码版

    JEECMS是JavaEE版网站管理系统 (Java Enterprise Edition Content Manage System)的简称。 · 基于java技术开发,继承其强大、稳定、安全、高效、跨平台等多方面的优点 · 采用SpringMVC3+Spring3+Hibernate3+...

    jeecms5.1-src.zip 源码包

    Jeecms是一款基于Java技术开发的内容管理系统,专为企业的信息化建设和网站运营提供了强大的支持。它的源码包"jeecms5.1-src.zip"包含了整个系统的所有源代码,是学习和二次开发的理想资源。Jeecms的核心设计理念...

    jeecms-db-3.0.4-final.sql

    jeecms-db-3.0.4-final.sql

    jeecms-3.0.4-fina

    这是jeecms-3.0.4-fina的安装文件,希望对朋友们有所帮助。

    [CMS程序]JEECMS 2.3.2 Final 系统程序_jeecms-2.3.2-final.zip

    【CMS程序】JEECMS 2.3.2 Final 是一款基于Java技术和JSP的开源内容管理系统,适用于构建企业网站、新闻门户等电子商务平台。这个系统版本为2.3.2,标记为Final,意味着它是该版本的最终稳定版,为用户提供了可靠且...

    jeecms6-src.z02.gz_jeecms src_jeecms6.1

    jeecms完整全功能版——源代码,压缩包3,去掉后最gz,配合压缩包1解压。

    jeecms-2012.zip

    《Jeecms-2012:深入了解企业级内容管理系统》 Jeecms-2012是一款在2012年推出的基于Java技术的企业级内容管理系统(Content Management System,CMS)。这款系统以其高效、易用和强大的功能,赢得了广泛的赞誉和...

    JEECMS标签-使用说明pdf文档.pdf

    **JEECMS标签使用说明** JEECMS是一款基于Java技术的企业级内容管理系统,其提供了丰富的标签供用户在模板中使用,以方便地展示和处理网站内容。在JEECMS中,标签的使用是构建页面的关键,它们可以用于调用网站数据...

    jeecms-2012.rar

    这个压缩包“jeecms-2012.rar”可能包含了该系统的所有源代码、配置文件、数据库脚本、文档以及必要的运行库,使得用户能够下载并部署到自己的服务器上,用于构建网站或内容管理平台。 Java技术是Jeecms的基础,它...

    java建站,jeecms-2012-sp1

    总的来说,Jeecms-2012-sp1为Java建站提供了一套完整的解决方案,无论是初学者还是经验丰富的开发者,都能从中受益。通过学习和使用Jeecms,你可以快速建立并管理功能丰富的网站,同时享受到Java技术带来的强大支撑...

    jeecms-2.4.2-final-src

    通过分析Jeecms-2.4.2-final-src源码,开发者可以深入理解Java EE开发的最佳实践,学习如何整合Spring、Hibernate等框架,以及如何设计和实现一个高效的内容管理系统。这对于提升Java Web开发技能,特别是对企业级...

    jeecms万能验证码

    jeecms安装完毕后,找到项目对应的目录,把三个文件进行替换,就可以在注册、登录、留言时免验证码。登录密码错误三次后显示验证码,输入任意数如123就行。注明:jeecms9.2版本已验证通过。

    jeecms6-src.z01.gz_byj6q_jeecms6 src

    jeecms完整全功能版——源代码,压缩包2,去掉后最gz,配合压缩包1解压。

    jeecms-3.1.1-final

    3. **配置数据库**:根据你的数据库类型,配置jeecms-system.properties文件中的数据库连接信息。 4. **运行安装脚本**:使用数据库管理工具(如MySQL的phpMyAdmin)运行Jeecms提供的SQL脚本,创建数据库和表结构。 ...

Global site tag (gtag.js) - Google Analytics