用kaptcha生成验证码:
package net.gplatform.sudoor.server.captcha.controller; import java.awt.image.BufferedImage; import javax.imageio.ImageIO; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import com.google.code.kaptcha.Constants; import com.google.code.kaptcha.Producer; /** * This class is used to generate image. The image config is in common-config-sudoor.xml. * * Validation In Application : protected void validateCaptcha( HttpServletRequest request, Object command, Errors errors) throws Exception { String captchaId = (String) request.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY); String response = ((RegistrationVO) command).getCaptchaResponse(); if (log.isDebugEnabled()) { log.debug("Validating captcha response: '" + response + "'"); } if (!StringUtils.equalsIgnoreCase(captchaId, response)) { errors.rejectValue("captchaResponse", "error.invalidcaptcha", "Invalid Entry"); } } * * @author xufucheng * */ @Controller public class CaptchaImageCreateController { private Producer captchaProducer = null; @Autowired public void setCaptchaProducer(Producer captchaProducer) { this.captchaProducer = captchaProducer; } @RequestMapping("/sudoor/captcha-image.html") public ModelAndView handleRequest( HttpServletRequest request, HttpServletResponse response) throws Exception { // Set to expire far in the past. response.setDateHeader("Expires", 0); // Set standard HTTP/1.1 no-cache headers. response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate"); // Set IE extended HTTP/1.1 no-cache headers (use addHeader). response.addHeader("Cache-Control", "post-check=0, pre-check=0"); // Set standard HTTP/1.0 no-cache header. response.setHeader("Pragma", "no-cache"); // return a jpeg response.setContentType("image/jpeg"); // create the text for the image String capText = captchaProducer.createText(); // store the text in the session request.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, capText); // create the image with the text BufferedImage bi = captchaProducer.createImage(capText); ServletOutputStream out = response.getOutputStream(); // write the data out ImageIO.write(bi, "jpg", out); try { out.flush(); } finally { out.close(); } return null; } }
验证方法:
package net.gplatform.sudoor.server.captcha.model; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import com.google.code.kaptcha.Constants; @Component public class CaptchaValidator { public boolean validate(HttpServletRequest request) { String captchaFromSession = (String) request.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY); String captchaFromPage = request.getParameter("_captcha"); if (StringUtils.equalsIgnoreCase(captchaFromSession, captchaFromPage)) { return true; } return false; } }
HTML:
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org" xmlns:social="http://spring.io/springsocial" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="layout"> <head> <title>用户登录</title> <script type="text/javascript"> function refresh(obj) { obj.src = "/obiz/app/sudoor/captcha-image.html?"+Math.random(); } </script> </head> <body> <div id="content" layout:fragment="content"> <p><span style="color:red" th:text="${errorMsg}">13 February 2011</span></p> <form action="#" method="POST" th:action="@{/app/account/login}"> <p> 登录名:<input name ="username" type="text"></input> </p> <p> 密码:<input name="password" type="password"></input> </p> <p> </p> <p> 验证码:<input name="_captcha" type="text"></input> <img alt="验证码" style="cursor:pointer" onclick="javascript:refresh(this);" src="/obiz/app/sudoor/captcha-image.html"></img> </p> <p> <a href="">忘记登录密码?</a> </p> <p> <button type="submit" style="cursor:pointer">登录</button> </p> </form> </div> </body> </html>
这也有个比较详细的介绍:
http://stone02111.iteye.com/blog/1688195
相关推荐
`pmiw`可能是某个第三方库或者项目的简写,它可能提供了验证码生成算法、图片处理等功能。具体的实现细节需要查看该库的文档或源代码才能得知。通常,验证码生成器会包含随机数生成、字符扭曲、颜色填充等组件,以便...
第三方,验证码生成的工具类 可以在这里直接下载
这个“java第三方短信校验代码实例包含jar包”提供了一个方便的工具类,帮助开发者快速集成短信验证功能。下面将详细介绍该实例中的核心知识点。 1. **短信验证码的生成与发送** - 验证码通常由4-6位随机数字组成...
在Java Web环境中,我们可以使用第三方库来实现验证码功能。例如,谷歌提供的reCAPTCHA是一个广泛使用的验证码服务。它不仅提供了传统的图像验证码,还有更先进的无感验证,可以检测到用户是否为真人,而无需用户...
短信发送通常涉及第三方短信服务提供商,这些服务商会提供API和SDK,开发者可以通过调用它们提供的接口来发送短信。在Java中,这个过程可能包括以下步骤: 1. **生成随机验证码**:首先,我们需要生成一个6位的...
在SSM框架中实现验证码功能,首先需要集成验证码生成库,例如使用Google的Guava库中的RandomizedStrings类或者第三方的JCaptcha库。生成验证码时,可以创建一个随机字符串并将其与生成的图像一起保存到session中。当...
在Java开发环境中,kaptcha是一个备受青睐的第三方插件,因其轻量级、易配置和高效性而受到开发者们的喜爱。 kaptcha的核心功能在于生成复杂且难以被机器识别的图像验证码,以此来区分真实用户和机器人。它的设计...
在实际项目中,可能需要考虑更多的安全因素,例如使用更复杂的验证码生成算法、集成第三方库(如Google的reCAPTCHA)或者使用更安全的HTTP头(如Content-Security-Policy)来限制脚本执行。 通过分析和理解这个源...
这是一个集成目前Android主流优秀第三方组件、优秀好用的自定义控件、实用工具类封装、以及一些APP共通模块(比如:版本更新、意见反馈、引导界面等等)的开发包,帮助程序员快速开发自己的APP 已集成第三方开源...
这是一个集成目前Android主流优秀第三方组件、优秀好用的自定义控件、实用工具类封装、以及一些APP共通模块(比如:版本更新、意见反馈、引导界面等等)的开发包,帮助程序员快速开发自己的APP 已集成第三方...
在本案例中,"ValidateCode.jar" 是一个专门为生成图片验证码的第三方Java库。这个库使得开发者能够便捷地在他们的应用程序中集成验证码功能,无需从头开始编写复杂的图像生成和混淆算法。 验证码的主要作用包括: ...
jspsmartupload.jar是一个第三方库,它简化了在Java Servlet环境中处理这种类型的请求。这个库提供了方便的方法来解析请求中的多个部分,包括文件数据,而无需处理复杂的HTTP协议细节。 要使用jspsmartupload.jar,...
这是一个集成目前Android主流优秀第三方组件、优秀好用的自定义控件、实用工具类封装、 以及一些APP共通模块(比如:版本更新、意见反馈、引导界面等等)的开发包,帮助程序员 快速开发自己的APP 已集成第三方...
通过这个项目,你可以学习到验证码的生成逻辑,理解如何在实际项目中集成和使用第三方库,以及如何利用Java Servlet处理HTTP请求并返回图像。这不仅对提升安全性有帮助,也能加深对Web开发的理解。
这是一个集成目前Android主流优秀第三方组件、优秀好用的自定义控件、实用工具类封装、以及一些APP共通模块(比如:版本更新、意见反馈、引导界面等等)的开发包,帮助程序员快速开发自己的APP 已集成第三方开源...
短信发送服务通常需要与一个第三方短信服务提供商进行集成。这些提供商通常提供API接口,开发者需要注册账号获取API密钥或者访问令牌。在使用sendsMs-WjUtil01.jar时,可能需要将这些凭证配置到程序中,以便库能够...
这通常涉及到与第三方短信服务商提供的API进行交互。API(Application Programming Interface)是软件之间通信的一种方式,短信服务商通过API允许开发者在其平台上发送短信。接入过程包括以下步骤: 1. 注册:首先...
然而,这个JAR文件仍然可以在一些第三方仓库或归档网站上找到,以便于那些仍需依赖此组件的项目继续使用。对于还在使用这个过时版本的开发者来说,他们需要注意潜在的安全风险和兼容性问题,因为没有更新可能意味着...
【标题】"kaptcha232_jb51.rar" 提供的是一个关于验证码库 kaptcha 的版本,具体为 2.3.2 版本。kaptcha 是一个 Java 实现的开源验证码生成库,主要...同时,了解如何正确配置和集成第三方库也是开发过程中的基础技能。