빠른 통합 kaptcha 스프링 부트 코드 생성 확인 절차에 따라 아래에서 설명] Kaptcha는 코드를 생성하는 매우 유용한 도구, 코드는 복사하여 붙여 넣을 수있는 사진의 형태에 나타낸 구성의 다양성에 의해 생성 될 수있다.
기사 디렉토리
A, Kaptcha 소개 두, 봄 부트 통합 Kaptcha . 1, pom.xml 파일 항아리 패키지의 도입 이 추가 된 Kaptcha 구성 클래스 3, 코드가 컨트롤 레이어 추가 (4)을 확인하는 인증 코드 생성
A, Kaptcha 소개
Kaptcha 실제 코드는 다음과 같은 자유롭게 구성 옵션을 고도로 구성 가능한 도구를 생성합니다 :
- 코드 글꼴
- 코드 글꼴 크기
- 글꼴 코드 글꼴 색상
- 내용 범위 코드 (숫자, 문자, 한자)
- 확인 사진 크기, 테두리, 테두리 두께, 테두리 색상
- 라인 코드의 간섭
- 패턴 인증 코드 (물고기 눈 패턴, 3D, 일반 흐림)
두, 봄 부팅 통합 Kaptcha
1,의 pom.xml 도입 항아리 패키지
<!-- 验证码 -->
<dependency>
<groupId>com.github.penggle</groupId>
<artifactId>kaptcha</artifactId>
<version>2.3.2</version>
</dependency>
도 2를 참조하면, 클래스 Kaptcha을 추가 배치
다음과 같이 핵심 코드는 다음과 같습니다
/**
* 验证码 生成的bean
*/
@Bean
public DefaultKaptcha captchaProducer() {
DefaultKaptcha captchaProducer = new DefaultKaptcha();
Properties properties = new Properties();
properties.setProperty(Constants.KAPTCHA_IMAGE_WIDTH, "100");
properties.setProperty(Constants.KAPTCHA_IMAGE_HEIGHT, "30");
properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_SIZE, "22");
properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "4");
properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_SPACE, "6");
properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_COLOR, "black");
properties.setProperty(Constants.KAPTCHA_BORDER_COLOR, "LIGHT_GRAY");
properties.setProperty(Constants.KAPTCHA_BACKGROUND_CLR_FROM, "WHITE");
properties.setProperty(Constants.KAPTCHA_NOISE_IMPL, "com.google.code.kaptcha.impl.NoNoise");
properties.setProperty(Constants.KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.ShadowGimpy");
properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_STRING, "0123456789");
properties.setProperty(Constants.KAPTCHA_SESSION_CONFIG_KEY, "checkCode");
Config config = new Config(properties);
captchaProducer.setConfig(config);
return captchaProducer;
}
(3) 또한, 제어 레벨 코드
다음과 같이 핵심 코드는 다음과 같습니다
@Autowired
private Producer captchaProducer;
@RequestMapping("/getCode")
public ModelAndView getKaptchaImage(HttpServletRequest request, HttpServletResponse response) throws Exception {
response.setDateHeader("Expires", 0);
// Set standard HTTP/1.1 no-cache headers.
response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
// Set IE extended HTTP/1.1 no-cache headers (use addHeader).
response.addHeader("Cache-Control", "post-check=0, pre-check=0");
// Set standard HTTP/1.0 no-cache header.
response.setHeader("Pragma", "no-cache");
response.setContentType("image/jpeg");
// create the text for the image
String capText = captchaProducer.createText();
log.info("******************验证码是: " + capText + "******************");
// store the text in the session
request.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);
// create the image with the text
BufferedImage bi = captchaProducer.createImage(capText);
ServletOutputStream out = response.getOutputStream();
// write the data out
ImageIO.write(bi, "jpg", out);
try {
out.flush();
} finally {
out.close();
}
return null;
}
4, 생성 된 코드는 참조
// localhost를 : HTTP에 액세스 할 수있는 브라우저 열고 8081 / kaptcha / getCode을 다음과 같이 스크린 샷 검증 코드가 생성 생성 된 코드를 볼 수 있습니다
![](https://img2018.cnblogs.com/blog/463242/201908/463242-20190821195001025-241231894.png)
이 봄 부팅 신속한 통합이 가득 달성하기 위해 코드를 생성 kaptcha, 오 통신에 메세지를 남겨주세요 질문이 있습니다!
완전한 소스 주소 : https://github.com/suisui2019/springboot-study
추천 도서
1.Spring Boot 2.X 整合Redis
2.Spring Boot 2.X 如何优雅的解决跨域问题?
3.Spring Boot 2.X 集成spring session实现session共享
4.Spring条件注解@Conditional
5.SpringBoot 2.X从0到1实现邮件发送功能
6.Redis批量删除key的小技巧,你知道吗?
7.Spring Boot 2.X 如何快速整合jpa?
8.Spring Boot之Profile--快速搞定多环境使用与切换
限时领取免费Java相关资料,涵盖了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高并发分布式、大数据、机器学习等技术。
关注下方公众号即可免费领取:
![](https://img2018.cnblogs.com/blog/463242/201903/463242-20190308150124591-2139175944.jpg)