zoukankan      html  css  js  c++  java
  • spring boot 集成 kaptcha

    kaptcha是一个开源的验证码实现库

    1.添加依赖

    <dependency>
        <groupId>com.github.axet</groupId>
        <artifactId>kaptcha</artifactId>
        <version>0.0.9</version>
    </dependency>

    2.添加配置类

    配置验证码的生成属性

    package com.dream.road.config;
    
    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", "yes");
            // 设置边框颜色
            properties.put("kaptcha.border.color", "105,179,90");
            // 设置字体颜色
            properties.put("kaptcha.textproducer.font.color", "black");
            // 设置图片宽度
            properties.put("kaptcha.image.width", "160");
            // 设置图片高度
            properties.put("kaptcha.image.height", "50");
            //设置字体尺寸
            properties.put("kaptcha.textproducer.font.size", "30");
            // 设置验证码长度
            properties.put("kaptcha.textproducer.char.length", "5");
            // 设置字体
            properties.put("kaptcha.textproducer.font.names", "宋体,楷体,黑体");
    
            Config config = new Config(properties);
            DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
            defaultKaptcha.setConfig(config);
            return defaultKaptcha;
        }
    }

    参数:

      kaptcha.border:图片边框,值:yes , no

      kaptcha.border.color:边框颜色,值: r,g,b (and optional alpha) 或者 white,black,blue

      kaptcha.image.width:图片宽

      kaptcha.image.height:图片高

      kaptcha.textproducer.char.length:验证码长度

      kaptcha.textproducer.font.names:字体

      kaptcha.textproducer.font.size:字体大小

      kaptcha.textproducer.font.color:字体颜色

      kaptcha.textproducer.char.space:文字间隔

      kaptcha.background.clear.from:背景颜色渐变,开始颜色

      kaptcha.background.clear.to:背景颜色渐变,结束颜色

    3.生成验证码api

    package com.dream.road.controller;
    
    import com.google.code.kaptcha.Constants;
    import com.google.code.kaptcha.Producer;
    import org.apache.tomcat.util.http.fileupload.IOUtils;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.imageio.ImageIO;
    import javax.servlet.ServletException;
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.awt.image.BufferedImage;
    import java.io.IOException;
    
    @RestController
    public class LoginController {
    
        @Autowired
        private Producer producer;
    
        @GetMapping("captcha.jpg")
        public void captcha(HttpServletResponse response, HttpServletRequest request) throws ServletException, IOException {
            response.setHeader("Cache-Control", "no-store, no-cache");
            response.setContentType("image/jpeg");
    
            // 生成文字验证码
            String text = producer.createText();
            // 生成图片验证码
            BufferedImage image = producer.createImage(text);
            // 保存到验证码到 session
            request.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, text);
    
            ServletOutputStream out = response.getOutputStream();
            ImageIO.write(image, "jpg", out);
            IOUtils.closeQuietly(out);
        }
    
    }

    4.测试

  • 相关阅读:
    Android系统API综述
    Android中的WeakReference 弱引用
    Android代码编译环境配置 “Gerrit和Git环境配置”
    Android源代码下载 “Gerrit下载源代码”
    Android源代码编译过程及指令
    Android的Launcher启动流程 “Launcher部分启动流程”
    Android Frameworks的base目录内容分析 “Android Frameworks base”
    Android系统源代码目录结构 “Android源代码”“目录结构”
    (Android UI)Android应用程序中资源:图片、字符串、颜色、布局等
    (Android UI)Action Bar
  • 原文地址:https://www.cnblogs.com/baby123/p/13332064.html
Copyright © 2011-2022 走看看