봄 부팅 코드는 신속한 통합 kaptcha 생성

빠른 통합 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을 다음과 같이 스크린 샷 검증 코드가 생성 생성 된 코드를 볼 수 있습니다



 

이 봄 부팅 신속한 통합이 가득 달성하기 위해 코드를 생성 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等高并发分布式、大数据、机器学习等技术。
关注下方公众号即可免费领取:

 

추천

출처www.cnblogs.com/haha12/p/11390844.html