- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章jfinal添加jcaptcha验证码实现方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
代码如下
package com.g.core.common.JCaptcha,
。
import java.awt.Color; import java.awt.Font,
import com.octo.captcha.component.image.backgroundgenerator.BackgroundGenerator; import com.octo.captcha.component.image.backgroundgenerator.FileReaderRandomBackgroundGenerator; import com.octo.captcha.component.image.color.RandomListColorGenerator; import com.octo.captcha.component.image.fontgenerator.FontGenerator; import com.octo.captcha.component.image.fontgenerator.RandomFontGenerator; import com.octo.captcha.component.image.textpaster.DecoratedRandomTextPaster; import com.octo.captcha.component.image.textpaster.TextPaster; import com.octo.captcha.component.image.textpaster.textdecorator.TextDecorator; import com.octo.captcha.component.image.wordtoimage.ComposedWordToImage; import com.octo.captcha.component.image.wordtoimage.WordToImage; import com.octo.captcha.component.word.wordgenerator.RandomWordGenerator; import com.octo.captcha.component.word.wordgenerator.WordGenerator; import com.octo.captcha.engine.image.ListImageCaptchaEngine; import com.octo.captcha.image.gimpy.GimpyFactory,
/** * 生成验证码图片 */ 。
public class JCaptchaEngine extends ListImageCaptchaEngine { 。
public static final String IMAGE_CAPTCHA_KEY = "imageCaptcha";// ImageCaptcha对象存放在Session中的key public static final String CAPTCHA_INPUT_NAME = "j_captcha";// 验证码输入表单名称 public static final String CAPTCHA_IMAGE_URL = "/captcha.jpg";// 验证码图片URL private static final Integer MIN_WORD_LENGTH = 4;// 验证码最小长度 private static final Integer MAX_WORD_LENGTH = 4;// 验证码最大长度 private static final Integer IMAGE_HEIGHT = 28;// 验证码图片高度 private static final Integer IMAGE_WIDTH = 80;// 验证码图片宽度 private static final Integer MIN_FONT_SIZE = 16;// 验证码最小字体 private static final Integer MAX_FONT_SIZE = 16;// 验证码最大字体 private static final String RANDOM_WORD = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";// 随机字符 private static final String IMAGE_PATH = "./captcha/";// 随机背景图片路径 // 验证码随机字体 private static final Font[] RANDOM_FONT = new Font[] { new Font("nyala", Font.BOLD, MIN_FONT_SIZE), new Font("Arial", Font.BOLD, MIN_FONT_SIZE), new Font("Bell MT", Font.BOLD, MIN_FONT_SIZE), new Font("Credit valley", Font.BOLD, MIN_FONT_SIZE), new Font("Impact", Font.BOLD, MIN_FONT_SIZE) },
// 验证码随机颜色 private static final Color[] RANDOM_COLOR = new Color[] { new Color(255, 255, 255), new Color(255, 220, 220), new Color(220, 255, 255), new Color(220, 220, 255), new Color(255, 255, 220), new Color(220, 255, 220) },
// 生成验证码 @Override protected void buildInitialFactories() { 。
RandomListColorGenerator randomListColorGenerator = new RandomListColorGenerator(RANDOM_COLOR),
BackgroundGenerator backgroundGenerator = new FileReaderRandomBackgroundGenerator(IMAGE_WIDTH, IMAGE_HEIGHT, IMAGE_PATH),
WordGenerator wordGenerator = new RandomWordGenerator(RANDOM_WORD),
FontGenerator fontGenerator = new RandomFontGenerator(MIN_FONT_SIZE, MAX_FONT_SIZE, RANDOM_FONT),
TextDecorator[] textDecorator = new TextDecorator[] {},
TextPaster textPaster = new DecoratedRandomTextPaster(MIN_WORD_LENGTH, MAX_WORD_LENGTH, randomListColorGenerator, textDecorator),
WordToImage wordToImage = new ComposedWordToImage(fontGenerator, backgroundGenerator, textPaster),
addFactory(new GimpyFactory(wordGenerator, wordToImage)); } 。
} 。
。
。
复制代码代码如下
package com.g.core.common.JCaptcha,
。
import com.octo.captcha.service.captchastore.FastHashMapCaptchaStore; import com.octo.captcha.service.image.DefaultManageableImageCaptchaService; import com.octo.captcha.service.image.ImageCaptchaService,
public class CaptchaServiceSingleton { 。
private static ImageCaptchaService instance =null,
public CaptchaServiceSingleton() { } 。
// 使用synchronized关键字解决线程不安全 public synchronized static ImageCaptchaService getInstance() { if (instance == null) { instance = new DefaultManageableImageCaptchaService(new FastHashMapCaptchaStore(), new JCaptchaEngine(), 180, 100000 , 75000); } return instance; } 。
} 。
。
。
复制代码代码如下
package com.g.core.render,
。
import java.awt.image.BufferedImage; import java.io.IOException,
import javax.imageio.ImageIO; import javax.servlet.ServletOutputStream,
import com.g.core.common.JCaptcha.CaptchaServiceSingleton; import com.jfinal.kit.StringKit; import com.jfinal.render.Render,
public class JCaptchaRender extends Render { 。
private String randomCodeKey; public JCaptchaRender(String randomCodeKey) { if (StringKit.isBlank(randomCodeKey)) throw new IllegalArgumentException("randomCodeKey can not be blank"); this.randomCodeKey = randomCodeKey; } @Override public void render() { response.setHeader("Cache-Control", "no-store"); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", 0); response.setContentType("image/jpeg"); ServletOutputStream sos = null; try { sos = response.getOutputStream(); // String captchaId = request.getSession(true).getId(); BufferedImage challenge = (BufferedImage) CaptchaServiceSingleton.getInstance().getChallengeForID(randomCodeKey, request.getLocale()); ImageIO.write(challenge, "jpg", sos); sos.flush(); } catch (Exception e) { throw new RuntimeException(e); } finally { if (sos != null) try {sos.close();} catch (IOException e) {e.printStackTrace();} } } 。
} 。
。
。
复制代码代码如下
public void random_code() { render(new JCaptchaRender(getSession().getId())); } 。
最后此篇关于jfinal添加jcaptcha验证码实现方法的文章就讲到这里了,如果你想了解更多关于jfinal添加jcaptcha验证码实现方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我在一个项目中使用 JCaptcha 并且需要一种不能直接使用的行为。所以我查看了源代码,看看是否可以扩展它以获得我想要的东西,发现我使用的存储实现 ( MapCaptchaStore ) 使用 Ha
我正在使用 jcaptcha-all-1.0-RC6 生成验证码图像。 相同的代码片段如下 captchaService = new DefaultManageableImageC
我已经根据来自 Jcaptcha 站点的示例提供了一个 Jcaptcha,但我需要使用颜色和字体配置默认的 jcaptcha。 我设法找到了这个 Configuration Jcaptcha with
我们在我的团队正在编写的一个小应用程序中使用 JCaptcha 作为验证码工具。然而,就在开发期间(在一个小团队中——我们 4 个人),我们遇到了一些针对实际验证码的诅咒词和其他可能令人反感的词。有没
我已经在我的网络应用程序中实现了 JCaptcha,它工作正常,但是当浏览器的 cookie 被阻止时,它总是失败并返回 false。 servlet代码如下: protected void doPo
在本地调试我的 webapp 时一切都运行良好,但是当将它部署到服务器(Microsoft Azure,操作系统:Ubuntu 14.04 tomcat7+apache)时,找不到 jcaptcha
在开始回答之前,我知道有 ReCaptcha,它更简单更容易,但我不能使用它。生产服务器不在线。所以我们开始了。 我在 maven 项目和 weblogic 上使用带有 spring security
我们实现了由 Redis 支持的 Spring Session,并拥有一个 Tomcat 服务器集群。当我们通过不设置 jvmRoute 来关闭粘性 session 时,我们在 jcaptcha 服务
简单介绍一下,本框架的基本功能点: Spring:整个框架的主体部分,这个自不用说。 SpringMVC:MVC部分我还是比较喜欢Spring的。 MyBatis:选型的时候选择
您好,我在尝试将 jcaptcha 插件与 grails 1.3.7 一起使用时遇到以下错误。 org.codehaus.groovy.runtime.typehandling.GroovyCastE
我是一名优秀的程序员,十分优秀!