jfinal 重写保存验证码

因为jfianl 生成的验证码保存在当前的Web应用中,浏览器中只有键。在验证验证码的时候,是通过读取cookie中的键,然后在服务器中通过键读取到值,然后进行比较的。在集群部署的情况下,将会出现验证码输入正常。而服务器返回错误的问题。这个时候,我们只需要重新实现ICaptchaCache接口,使用Redis 或者其他方式集中保存就好了

1.实现ICaptchaCache接口

import com.jfinal.captcha.Captcha;
import com.jfinal.captcha.ICaptchaCache;

public class RedisICaptchaCache implements ICaptchaCache{

	@Override
	public void put(Captcha captcha) {
		// 保存验证码信息
	}

	@Override
	public Captcha get(String key) {
		// 读取验证码
		return null;
	}

	@Override
	public void remove(String key) {
		// 删除验证码
		
	}

	@Override
	public void removeAll() {
		// 删除所有验证码
		
	}

}

 

2.在configConstant 方法中配置

 

实现的详细可以参考Jfinal 中的默认实现,路径是 com.jfinal.captcha.CaptchaCache

posted @ 2019-02-27 19:38  小朋友有很多问号  阅读(28)  评论(0编辑  收藏  举报