使用springboot整合kaptcha实现生成验证码功能
【摘要】 话不多少,直接上干货!开发环境:IDEA : IntelliJ IDEA 2020.3.3 x64springboot:2.0.3配置步骤导入jar包 pom中导入kaptcha相关依赖<dependency> <groupId>com.github.axet</groupId> <artifactId>kaptcha</artifactId> <version>0.0...
话不多少,直接上干货!
开发环境:
IDEA : IntelliJ IDEA 2020.3.3 x64
springboot:2.0.3
配置步骤
导入jar包
pom中导入kaptcha相关依赖
<dependency>
<groupId>com.github.axet</groupId>
<artifactId>kaptcha</artifactId>
<version>0.0.9</version>
</dependency>
编写kaptcha配置类
import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Properties;
/**
* 验证码配置
*
* */
@Configuration
public class KaptchaConfig {
@Bean
public DefaultKaptcha producer() {
Properties properties = new Properties();
properties.put("kaptcha.border", "no");
properties.put("kaptcha.textproducer.font.color", "black");
properties.put("kaptcha.textproducer.char.space", "5");
Config config = new Config(properties);
DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
defaultKaptcha.setConfig(config);
return defaultKaptcha;
}
}
在controller中使用:
/**
* 验证码
*/
@Autowired
private Producer producer;
@GetMapping("captcha.jpg")
public void getKaptcha(HttpServletRequest request, HttpServletResponse response) throws IOException {
//设置响应头
response.setHeader("Cache-Control", "no-store, no-cache");
response.setContentType("image/jpeg");
//生成文字验证码
String text = producer.createText();
//创建验证码图片
BufferedImage image = producer.createImage(text);
ServletOutputStream out = response.getOutputStream();
ImageIO.write(image, "jpg", out);
IOUtils.closeQuietly(out);
}
}
配合前端使用,可以完美呈现出验证码信息
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)