spring Boot 生成图片验证码 存入redis
来源:互联网 发布:千牛首页的店铺数据 编辑:程序博客网 时间:2024/06/04 23:32
首先生成导入jar包:
<dependency><groupId>cn.apiclub.tool</groupId><artifactId>simplecaptcha</artifactId><version>1.2.2</version></dependency>
下边是生成图片验证码的代码:
在生成验证码后,以验证码值为key存入redis内 (已经写好的存入方法,再次不做赘述了)
captcha.getAnswer() 是图片验证码的值
图片存放时间为1分钟
stringRedisTemplate.opsForValue().set(captcha.getAnswer(), captcha.getAnswer(), 1, TimeUnit.MINUTES);
我使用图片流的方式来讲验证码返回给前端
ImageIO.write(captcha.getImage(), "jpg", out);
以下是全部代码
private static int captchaW = 200; //图片验证码的宽 private static int captchaH = 80; //图片验证码的高 private static int codeCount = 4; //值得位数 private static char[] codeNumber = new char[]{'0','1','2','3','4','5','6','7','8','9'}; //生成验证码的取值范围public void createCode(HttpServletRequest request, HttpServletResponse response) throws Exception { //创建验证码模型,指定图片的宽和高 Captcha.Builder captcha = new Captcha.Builder(captchaW, captchaH); //设置字体的颜色和大小,若list内放置多个颜色或字体,则每次生成随机使用其中一个 List<Font> fonts = new ArrayList<>(); List<Color> colors = new ArrayList<>(); fonts.add(new Font("Arial",Font.BOLD, 60)); colors.add(Color.RED); WordRenderer wr = new DefaultWordRenderer(colors, fonts); //将数字放入到图片上 captcha.addText(new DefaultTextProducer(codeCount, codeNumber), wr); //为验证码值设置边框效果---无 captcha.gimp(new RippleGimpyRenderer()); //图片验证码生成 captcha.build(); Captcha captchas = captcha.build(); //将验证码以<key,value>形式缓存到redis stringRedisTemplate.opsForValue().set(captchas.getAnswer(), captchas.getAnswer(), 1, TimeUnit.MINUTES); OutputStream out = response.getOutputStream(); try { ImageIO.write(captchas.getImage(), "jpg", out); } catch (Exception e) { log.debug("", e); } out.close(); }
学习链接:http://www.iteye.com/topic/790038注意:原方法是将生成的图片验证码放入到cookie 中,并将cookie的值返回。
本文为自己学习所整理笔记,仅限参考
阅读全文
0 0
- spring Boot 生成图片验证码 存入redis
- Spring-boot 生成验证码
- Spring-boot生成验证码
- Spring Boot实战之Redis缓存登录验证码
- Spring学习—生成图片验证码
- Redis生成验证码
- 验证码图片生成
- 生成图片验证码
- 生成验证码图片
- 生成验证码图片
- 生成验证码图片
- 生成验证码图片
- 生成验证码图片
- 生成图片验证码
- 生成图片验证码
- 生成验证码图片
- 图片验证码生成
- 生成图片验证码
- com.alibaba.dubbo.remoting.RemotingException问题处理方案。
- 编写一个程序,实现设置上月、本月电表读数,显示上月、本月电表读数,计算并显示本月用电数。假设每度电的价格为1.2元,计算并显示本月电费。
- Socket网络通信(二)
- AIDL进程间通信
- 自定义浏览器滚动条样式
- spring Boot 生成图片验证码 存入redis
- 在activity类中更新widget
- 聊一聊PCB规划、布局和布线方面的设计技巧
- Android 线程通信(Handler + Message + Looper) 2
- String、StringBuffer、StringBuilder的区别
- Android项目The type R is already defined
- Seafile与花生壳实现网络网盘-yellowcong
- FPGA之有限状态机
- HandlerThread 源码解析