Springboot 验证码去掉横线
时间: 2024-12-17 13:11:16 浏览: 12
Spring Boot中默认生成的验证码通常包含一些干扰线条,如横线,这主要是为了增加识别难度,防止自动化破解。如果你想要去除这些横线,你可以自定义验证码生成器并调整相关的配置。
首先,在Spring Boot项目中,你可能使用了`spring-boot-starter-web`依赖下的`org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration`中的`DefaultServletErrorViewResolver`,它会启用内置的验证码图片生成。
一种常见的做法是:
1. **创建自定义验证码生成器**:
- 创建一个自定义的`AbstractImageBasedGenerator`子类,并覆盖`generate`方法,移除生成图片中的横线。
```java
public class CustomImageBasedGenerator extends AbstractImageBasedGenerator {
@Override
protected BufferedImage generateRandomImage() {
BufferedImage image = super.generateRandomImage();
Graphics2D g = image.createGraphics();
// 清除干扰线条
g.setStroke(new BasicStroke(0));
return image;
}
}
```
2. **配置Spring MVC**:
将自定义的验证码生成器添加到Spring MVC的配置中,替换默认的验证码生成器。
```yaml
spring:
mvc:
view:
suffix: .png
cache: false
validators:
enabled: true
disabled-content-types: image/svg+xml
disable-registration-validation: true
custom-codecs: [your.package.CustomImageBasedGenerator]
```
3. **应用自定义配置**:
确保上述配置生效,重启应用即可看到去除了横线的新验证码。
阅读全文