首页>代码>基于 SpringBoot + vue 企业信息管理系统>/liawan-vue/liawan-admin/src/main/java/com/javapub/liawan/admin/controller/common/CaptchaController.java
package com.javapub.liawan.admin.controller.common; import com.google.code.kaptcha.Producer; import com.javapub.liawan.common.config.LiaWanConfig; import com.javapub.liawan.common.constant.Constants; import com.javapub.liawan.common.core.domain.AjaxResult; import com.javapub.liawan.common.core.redis.RedisCache; import com.javapub.liawan.common.utils.sign.Base64; import com.javapub.liawan.common.utils.uuid.IdUtils; import com.javapub.liawan.system.service.ISysConfigService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.FastByteArrayOutputStream; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletResponse; import java.awt.image.BufferedImage; import java.io.IOException; import java.util.concurrent.TimeUnit; /** * 验证码操作处理 * * @author ruoyi */ @RestController public class CaptchaController { @Resource(name = "captchaProducer") private Producer captchaProducer; @Resource(name = "captchaProducerMath") private Producer captchaProducerMath; @Autowired private RedisCache redisCache; @Autowired private ISysConfigService configService; /** * 生成验证码 */ @GetMapping("/captchaImage") public AjaxResult getCode(HttpServletResponse response) throws IOException { AjaxResult ajax = AjaxResult.success(); boolean captchaOnOff = configService.selectCaptchaOnOff(); ajax.put("captchaOnOff", captchaOnOff); if (!captchaOnOff) { return ajax; } // 保存验证码信息 String uuid = IdUtils.simpleUUID(); String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid; String capStr = null, code = null; BufferedImage image = null; // 生成验证码 String captchaType = LiaWanConfig.getCaptchaType(); if ("math".equals(captchaType)) { String capText = captchaProducerMath.createText(); capStr = capText.substring(0, capText.lastIndexOf("@")); code = capText.substring(capText.lastIndexOf("@") + 1); image = captchaProducerMath.createImage(capStr); } else if ("char".equals(captchaType)) { capStr = code = captchaProducer.createText(); image = captchaProducer.createImage(capStr); } redisCache.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES); // 转换流信息写出 FastByteArrayOutputStream os = new FastByteArrayOutputStream(); try { ImageIO.write(image, "jpg", os); } catch (IOException e) { return AjaxResult.error(e.getMessage()); } ajax.put("uuid", uuid); ajax.put("img", Base64.encode(os.toByteArray())); return ajax; } }
最近下载更多
dapeng0011 LV13
3月2日
微信网友_6873044563791872 LV1
2月19日
肸乯 LV8
1月31日
xiexiaoming05 LV14
1月26日
siximu912 LV10
1月23日
zhangwuxuan
2023年12月31日
暂无贡献等级
Jingbo Jia LV2
2023年12月9日
1515465193 LV9
2023年11月30日
wuying8208 LV15
2023年11月28日
唐唐丶 LV33
2023年11月20日
最近浏览更多
860421 LV3
前天
可是不知道么 LV23
4月16日
微信网友_6935352109010944 LV2
4月5日
玖零定制问题修复 LV34
4月4日
微信网友_6927932988952576 LV12
3月30日
赵文俊
3月16日
暂无贡献等级
ChenZheMeng LV3
3月9日
2771547747
3月6日
暂无贡献等级
小王wang LV10
2月29日
dapeng0011 LV13
2月26日