springboot验证码
时间: 2023-10-12 22:17:23 浏览: 52
Spring Boot中生成验证码可以使用Kaptcha插件。首先在`pom.xml`文件中添加如下依赖:
```xml
<dependency>
<groupId>com.github.penggle</groupId>
<artifactId>kaptcha</artifactId>
<version>2.3.2</version>
</dependency>
```
然后在`application.properties`中添加如下配置:
```properties
# 验证码配置
kaptcha.border=yes
kaptcha.border.color=105,179,90
kaptcha.textproducer.font.color=blue
kaptcha.image.width=125
kaptcha.image.height=45
kaptcha.textproducer.char.length=4
kaptcha.textproducer.font.size=30
kaptcha.noise.color=black
kaptcha.textproducer.char.space=5
kaptcha.background.clear.from=white
kaptcha.background.clear.to=white
kaptcha.textproducer.font.names=宋体,楷体,微软雅黑
```
最后在Controller中添加生成验证码的方法:
```java
@GetMapping("/captcha")
public void captcha(HttpServletRequest request, HttpServletResponse response) throws Exception {
// 禁止缓存
response.setHeader("Cache-Control", "no-store, no-cache");
response.setContentType("image/jpeg");
// 生成验证码
DefaultKaptcha kaptcha = new DefaultKaptcha();
// 将生成的验证码存入session中,用于后续校验
String text = kaptcha.createText();
request.getSession().setAttribute("captcha", text);
// 将验证码图片输出到response中
BufferedImage image = kaptcha.createImage(text);
ServletOutputStream out = response.getOutputStream();
ImageIO.write(image, "jpg", out);
out.close();
}
```
这样就可以在前端页面上调用该接口,获取生成的验证码图片了。在验证时,只需要从session中取出验证码进行比对即可。