当前位置: 代码迷 >> 综合 >> jfinal 重写保存验证码
  详细解决方案

jfinal 重写保存验证码

热度:97   发布时间:2023-11-27 10:18:07.0

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

1.实现ICaptchaCache接口

import com.jfinal.captcha.Captcha;
import com.jfinal.captcha.ICaptchaCache;public class RedisICaptchaCache implements ICaptchaCache{@Overridepublic void put(Captcha captcha) {// 保存验证码信息}@Overridepublic Captcha get(String key) {// 读取验证码return null;}@Overridepublic void remove(String key) {// 删除验证码}@Overridepublic void removeAll() {// 删除所有验证码}}

 

2.在configConstant 方法中配置

 

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