首页>代码>基于 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; } }
最近下载更多
依旧原地徘徊 LV12
1月16日
ooosehun LV1
2024年12月18日
zolscy LV24
2024年11月27日
yangchengshuai LV15
2024年10月29日
mlml123 LV6
2024年8月20日
TY0165 LV20
2024年6月17日
vacalono LV1
2024年5月16日
wanglinddad LV55
2024年5月14日
寒于水 LV2
2024年5月13日
1222222tcyy LV8
2024年5月2日
最近浏览更多
f22m1a2b2 LV17
1月23日
2602275348 LV12
2024年12月26日
ooosehun LV1
2024年12月18日
11999333 LV1
2024年12月18日
zolscy LV24
2024年11月26日
15342201772 LV9
2024年11月25日
yangchengshuai LV15
2024年10月29日
liuqingfang LV2
2024年10月28日
charleswang LV7
2024年10月21日
xp95323 LV15
2024年10月11日