0


SpringBoot整合Kaptcha实现图形验证码

🧑‍💻作者名称:DaenCode
🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。
😎人生感悟:尝尽人生百味,方知世间冷暖。
📖所属专栏:SpringBoot实战


系列文章目录

以下是专栏部分内容,更多内容请前往专栏查看!

标题一文带你学会使用SpringBoot+Avue实现短信通知功能(含重要文件代码)一张思维导图带你学会Springboot创建全局异常、自定义异常一张思维导图带你打通SpringBoot自定义拦截器的思路28个SpringBoot项目中常用注解,日常开发、求职面试不再懵圈一张思维导图带你学会SpringBoot、Vue前后端分离项目线上部署一张流程图带你学会SpringBoot结合JWT实现登录功能一张思维导图带你学会使用SpringBoot中的Schedule定时发送邮件一张思维导图带你学会使用SpringBoot异步任务实现下单校验库存一张思维导图带你学会SpringBoot使用AOP实现日志管理功能

在这里插入图片描述


专栏推荐

  • 专门为Redis入门打造的专栏,包含Redis基础知识、基础命令、五大数据类型实战场景、key删除策略、内存淘汰机制、持久化机制、哨兵模式、主从复制、分布式锁等等内容。链接>>>>>>>>>《Redis从头学》
  • 专门为RabbitMQ入门打造的专栏,持续更新中。。。。。。。。链接>>>>>>>《图解RabbitMQ》

文章目录

🌟引入依赖

首先引入Kaptcha的starter依赖

<dependency><groupId>com.baomidou</groupId><artifactId>kaptcha-spring-boot-starter</artifactId><version>1.1.0</version></dependency>

🌟验证码配置类

/**
 * 图形验证码配置类
 */@Configuration@Slf4jpublicclassCaptchaConfig{/**
     * 验证码配置
     * @return
     */@Bean@Qualifier("captchaProducer")publicDefaultKaptchakaptcha(){DefaultKaptcha kaptcha =newDefaultKaptcha();Properties properties =newProperties();//验证码个数
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH,"4");//字体间隔
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_SPACE,"8");//干扰实现类
        properties.setProperty(Constants.KAPTCHA_NOISE_IMPL,"com.google.code.kaptcha.impl.NoNoise");//图片样式
        properties.setProperty(Constants.KAPTCHA_OBSCURIFICATOR_IMPL,"com.google.code.kaptcha.impl.WaterRipple");//文字来源
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_STRING,"0123456789");Config config =newConfig(properties);
        kaptcha.setConfig(config);return kaptcha;}}

🌟controller

主要步骤如下:

  • 1.生成验证码字符串
  • 2.生成图形形式验证码
  • 3.输出到客户端
  • 4.关闭流
@RestController@RequestMapping("/user")@Slf4jpublicclassUserController{@AutowiredprivateProducer producer;/**
     * 生成图形验证码
     * 1.生成验证码字符串
     * 2.生成图形形式验证码
     * 3.输出到客户端
     * 4.关闭流
     * @param request
     * @param response
     */@GetMapping("captcha")publicvoidgetCaptcha(HttpServletRequest request,HttpServletResponse response){//生成字符串验证码String code= producer.createText();//创建图形验证码BufferedImage image=producer.createImage(code);try{//写到浏览器,向客户端发送数据ServletOutputStream outputStream=null;//获取输出流
            outputStream=response.getOutputStream();ImageIO.write(image,"jpg",outputStream);
            outputStream.flush();
            outputStream.close();}catch(IOException e){
            e.printStackTrace();}}

🌟ServletOutputStream

作用:用户向客户端发送二进制数据。提供了字节数据写入响应输出流的方式,用于生成和发送动态内容或者文件的响应。

应用场景

  • 向客户端发送图像、音频或者视频媒体文件。
  • 生成发送PDF、EXCEL等等二进制文件。
  • 将二进制数据流式传递给客户端。

使用步骤

  1. 通过HttpservletRespon获取输出流getOutputStream。
  2. 通过ImageIO.write将图像写入到输出流中。
  3. 缓冲输出流。
  4. 关闭输出流。

🌟效果

在这里插入图片描述

🌟写在最后

有关于SpringBoot整合Kaptcha实现验证码到此就结束了。感谢大家的阅读,希望大家在评论区对此部分内容散发讨论,便于学到更多的知识。


请添加图片描述

标签: spring boot 后端 java

本文转载自: https://blog.csdn.net/2302_79094329/article/details/133324992
版权归原作者 DaenCode 所有, 如有侵权,请联系我们删除。

“SpringBoot整合Kaptcha实现图形验证码”的评论:

还没有评论