SpringBoot整合Kaptcha实现图形验证码功能
作者:DaenCode
这篇文章主要介绍了SpringBoot整合Kaptcha实现图形验证码功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
引入依赖
首先引入Kaptcha的starter依赖
<dependency> <groupId>com.baomidou</groupId> <artifactId>kaptcha-spring-boot-starter</artifactId> <version>1.1.0</version> </dependency>
验证码配置类
/** * 图形验证码配置类 */ @Configuration @Slf4j public class CaptchaConfig { /** * 验证码配置 * @return */ @Bean @Qualifier("captchaProducer") public DefaultKaptcha kaptcha() { DefaultKaptcha kaptcha = new DefaultKaptcha(); Properties properties = new Properties(); //验证码个数 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 = new Config(properties); kaptcha.setConfig(config); return kaptcha; } }
controller
主要步骤如下:
- 1.生成验证码字符串
- 2.生成图形形式验证码
- 3.输出到客户端
- 4.关闭流
@RestController @RequestMapping("/user") @Slf4j public class UserController { @Autowired private Producer producer; /** * 生成图形验证码 * 1.生成验证码字符串 * 2.生成图形形式验证码 * 3.输出到客户端 * 4.关闭流 * @param request * @param response */ @GetMapping("captcha") public void getCaptcha(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等等二进制文件。
- 将二进制数据流式传递给客户端。
使用步骤:
- 通过HttpservletRespon获取输出流getOutputStream。
- 通过ImageIO.write将图像写入到输出流中。
- 缓冲输出流。
- 关闭输出流。
效果
写在最后
以上就是SpringBoot整合Kaptcha实现图形验证码功能的详细内容,更多关于SpringBoot整合Kaptcha验证码的资料请关注脚本之家其它相关文章!