package com.moral.util;
|
|
import com.google.code.kaptcha.impl.DefaultKaptcha;
|
import com.moral.pojo.VerificationCode;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.stereotype.Component;
|
import sun.misc.BASE64Encoder;
|
|
import javax.annotation.Resource;
|
import javax.imageio.ImageIO;
|
import javax.servlet.ServletOutputStream;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import java.awt.image.BufferedImage;
|
import java.io.ByteArrayOutputStream;
|
import java.io.IOException;
|
import java.util.UUID;
|
|
/**
|
* @ClassName KaptchaUtils
|
* @Description 验证码工具类
|
* @Author 陈凯裕
|
* @Date 2021/3/16 15:36
|
* @Version TODO
|
**/
|
@Component
|
@Slf4j
|
public class KaptchaUtils {
|
|
private static DefaultKaptcha defaultKaptcha;
|
|
private static RedisTemplate redisTemplate;
|
|
@Autowired
|
public void setRedisTemplate(RedisTemplate redisTemplate) {
|
KaptchaUtils.redisTemplate = redisTemplate;
|
}
|
|
@Autowired
|
@Qualifier(value = "kaptchaProducer")
|
public void setDefaultKaptcha(DefaultKaptcha defaultKaptcha) {
|
KaptchaUtils.defaultKaptcha = defaultKaptcha;
|
}
|
|
/**
|
* @Description: 生成验证码
|
* @Param: []
|
* @return: java.lang.String
|
* @Author: 陈凯裕
|
* @Date: 2021/3/16
|
*/
|
|
public static VerificationCode createVerificationCode() throws IOException {
|
//生成验证码内容
|
String text = defaultKaptcha.createText();
|
//生成图片
|
BufferedImage image = defaultKaptcha.createImage(text);
|
//获取图片的字节数组
|
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
ImageIO.write(image,"jpg",outputStream);
|
byte[] bytes = outputStream.toByteArray();
|
//将字节数组进行编码
|
BASE64Encoder encoder = new BASE64Encoder();
|
String encode = encoder.encode(bytes);
|
//将验证码存入redis
|
String key = UUID.randomUUID().toString();
|
//redisTemplate.opsForValsue().set(key,encode);
|
//redisTemplate.expire();
|
return null;
|
}
|
public boolean verify(String verificationCode) {
|
return false;
|
}
|
|
|
|
}
|