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.测试

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • SpringBoot集成kaptcha验证码

    本文实例为大家分享了SpringBoot集成kaptcha验证码的具体代码,供大家参考,具体内容如下 1.kaptcha相关介绍 Kaptcha是一个基于SimpleCaptcha的验证码开源项目. 2.集成方案 ①pom.xml中配置依赖 <!-- 验证码--> <dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> &l

  • SpringMvc使用GoogleKaptcha生成验证码

    前言:google captcha 是google生成验证码的一个工具类,其原理是将随机生成字符串保存到session中,同时以图片的形式返回给页面,之后前台页面提交到后台进行对比. 1.jar包准备 官方提供的pom应该是 <dependency> <groupId>com.google.code.kaptcha</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2<

  • 登陆验证码kaptcha结合spring boot的用法详解

    前言 在我们用户登录的时候,为了安全性考虑,会增加验证码的功能,这里采用的是google的kaptcha:spirngboot是轻便,独立,使得基于spring的应用开发变得特别简单.网上有很多介绍springboot的介绍,这里不多说. 言归正抓,讲下登陆时验证码结合springboot的用法 引入kaptcha所需要的jar包,我这里用的是maven <dependency> <groupId>com.github.penggle</groupId> <art

  • springboot整合kaptcha验证码的示例代码

    前言: 关于kaptcha简介以及spring整合kaptcha,我在另一篇文章中已详细讲解,请参考:spring整合kaptcha验证码. 本文将介绍springboot整合kaptcha的两种方式. 开发工具及技术: 1.idea 2017 2.springboot 2.0.2 3.kaptcha 正式开始: 方式一:通过kaptcha.xml配置 1.用idea新建一个spring Initializr 2.添加kaptcha的依赖: <!-- kaptcha验证码 --> <de

  • springMVC实现图形验证码(kaptcha)代码实例

    springMVC项目中实现图形验证码功能,可以使用kaptcha来实现,下面是步骤 一.引入架包,pom.xml <dependency> <groupId>com.google.code</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version> </dependency> 二.kaptchaProducer配置,需要在spring

  • spring mvc 使用kaptcha配置生成验证码实例

    使用Kaptcha 生成验证码十分简单并且参数可以进行自定义,以下简单记录下使用步骤. 1.在pom.xml中添加maven依赖: <dependency> <groupId>com.google.code.kaptcha</groupId> <artifactId>kaptcha</artifactId> <version>2.3</version> <classifier>jdk15</classif

  • SpringBoot 集成Kaptcha实现验证码功能实例详解

    在一个web应用中验证码是一个常见的元素.不管是防止机器人还是爬虫都有一定的作用,我们是自己编写生产验证码的工具类,也可以使用一些比较方便的验证码工具.在网上收集一些资料之后,今天给大家介绍一下kaptcha的和springboot一起使用的简单例子. 准备工作: 1.你要有一个springboot的hello world的工程,并能正常运行. 2.导入kaptcha的maven: <!-- https://mvnrepository.com/artifact/com.github.penggl

  • Google Kaptcha 框架实现登录验证码功能(SSM 和 SpringBoot)

    一.效果图: 二.导入 jar 包 1.由于这是大神写好封装起来的一个框架,所有我们使用前得先下载相关的 jar 包 第一种:maven <!-- 验证码 --> <!-- https://mvnrepository.com/artifact/com.github.penggle/kaptcha --> <dependency>     <groupId>com.github.penggle</groupId>     <artifactI

  • 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

  • 实例详解Spring Boot实战之Redis缓存登录验证码

    本章简单介绍redis的配置及使用方法,本文示例代码在前面代码的基础上进行修改添加,实现了使用redis进行缓存验证码,以及校验验证码的过程. 1.添加依赖库(添加redis库,以及第三方的验证码库) <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> </dependency&

  • 详解Spring Boot工程集成全局唯一ID生成器 UidGenerator的操作步骤

    Spring Boot中全局唯一流水号ID生成器集成实验 概述 流水号生成器(全局唯一 ID生成器)是服务化系统的基础设施,其在保障系统的正确运行和高可用方面发挥着重要作用.而关于流水号生成算法首屈一指的当属 Snowflake 雪花算法,然而 Snowflake本身很难在现实项目中直接使用,因此实际应用时需要一种可落地的方案. UidGenerator 由百度开发,是Java实现的, 基于 Snowflake算法的唯一ID生成器.UidGenerator以组件形式工作在应用项目中, 支持自定义

  • Spring Boot如何集成模板引擎FreeMarker

    一.Java模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档. 在java中,主要的模板引擎有JSP.Thymeleaf.FreeMarker.Velocity等. 虽然随着前后端分离的崛起和流行,模板引擎已遭受到冷落,但不少旧项目依然使用java的模板引擎渲染界面,而偶尔自己写一些练手项目,使用模板引擎也比起前后端分离要来的快速. 本系列会分别讲解SpringBoot

  • Spring Boot项目集成UidGenerato的方法步骤

    前言 UidGenerato 基于snowflake算法实现 UidGenerato 由百度开发,基于SnowFlake算法的唯一ID生成器.UidGenerato 已组件的形式工作在应用项目中,支持自定义workeid位数和初始化策略,从而适用docker等虚拟化环境下实例自动重启等场景. 准备一个maven项目,构建两个模块.分别作为使用方和提供方.(建两个模块主要是为了"造轮子",其他模块或项目可以直接引用,无需关心uid配置,如果没有分模块,可以指忽略构建两个模块) 下载uid

  • Spring Boot整合mybatis并自动生成mapper和实体实例解析

    最近一直都在学习Java,发现目前Java招聘中,mybatis出现的频率挺高的,可能是目前Java开发中使用比较多的数据库ORM框架.于是我准备研究下Spring Boot和mybatis的整合. 1.在pom.xml文件中添加下面的配置 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-

  • Spring Boot 快速集成 Redis的方法

    Spring Boot 如何快速集成 Redis?没错,栈长本文教你,让大家少走弯路! 添加依赖 使用像 Redis 这类的 NoSQL 数据库就必须要依赖 spring-data-redis 这样的能力包,开箱即用,Spring Boot 中都封装好了: 引入spring-boot-starter-data-redis: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>

  • Spring Boot 项目集成Redis的方式详解

    集成方式 使用Jedis Jedis是Redis官方推荐的面向Java的操作Redis的客户端,是对服务端直连后进行操作.如果直接使用Jedis进行连接,多线程环境下是非线程安全的,正式生产环境一般使用连接池进行连接. <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> &

  • Spring Boot项目集成Knife4j接口文档的实例代码

    目录 1.在pom.xml引入依赖包 2.创建Knife4j配置文件 3.使用Knife4j注解 4.全局参数 Knife4j就相当于是swagger的升级版,对于我来说,它比swagger要好用得多 1.在pom.xml引入依赖包 <!-- Swagger配置依赖knife4j --> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-b

随机推荐