| | |
| | | import org.springframework.beans.factory.annotation.Qualifier; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.util.ObjectUtils; |
| | | import sun.misc.BASE64Encoder; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | import java.io.ByteArrayOutputStream; |
| | | import java.io.IOException; |
| | | import java.util.UUID; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | /** |
| | | * @ClassName KaptchaUtils |
| | |
| | | private static DefaultKaptcha defaultKaptcha; |
| | | |
| | | private static RedisTemplate redisTemplate; |
| | | |
| | | //验证码有效期 单位:秒 |
| | | private static final int validity_time = 60; |
| | | |
| | | @Autowired |
| | | public void setRedisTemplate(RedisTemplate redisTemplate) { |
| | |
| | | */ |
| | | |
| | | public static VerificationCode createVerificationCode() throws IOException { |
| | | VerificationCode verificationCode = new VerificationCode(); |
| | | //生成验证码内容 |
| | | String text = defaultKaptcha.createText(); |
| | | //生成图片 |
| | |
| | | String encode = encoder.encode(bytes); |
| | | //将验证码存入redis |
| | | String key = UUID.randomUUID().toString(); |
| | | //redisTemplate.opsForValsue().set(key,encode); |
| | | //redisTemplate.expire(); |
| | | return null; |
| | | redisTemplate.opsForValue().set(key,text); |
| | | redisTemplate.expire(key,validity_time, TimeUnit.SECONDS); |
| | | verificationCode.setKey(key); |
| | | verificationCode.setEncode(encode); |
| | | return verificationCode; |
| | | } |
| | | public boolean verify(String verificationCode) { |
| | | public static boolean verify(VerificationCode code) { |
| | | String key = code.getKey(); |
| | | String inputText = code.getInputText(); |
| | | String validText = (String) redisTemplate.opsForValue().get(key); |
| | | if(inputText.equals(validText)) |
| | | return true; |
| | | return false; |
| | | } |
| | | |