springboot集成kaptcha验证码

在pom.xml引入依赖

<!-- 验证码 -->
<!-- https://mvnrepository.com/artifact/com.github.penggle/kaptcha -->
<dependency>
    <groupId>com.github.penggle</groupId>
    <artifactId>kaptcha</artifactId>
    <version>2.3.2</version>
</dependency>

配置类KaptchaConfig.java

 1 package com.xiaostudy.shiro_test1.config;
 2
 3 import com.google.code.kaptcha.impl.DefaultKaptcha;
 4 import com.google.code.kaptcha.util.Config;
 5 import org.springframework.context.annotation.Bean;
 6 import org.springframework.context.annotation.Configuration;
 7
 8 import java.util.Properties;
 9
10 /**
11  * Created with IntelliJ IDEA.
12  * User: Administrator
13  * Date: 2019/7/17
14  * Time: 23:46
15  * Description: No Description
16  */
17 @Configuration
18 public class KaptchaConfig {
19
20     @Bean
21     public DefaultKaptcha getDefaultKaptcha(){
22         DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
23         Properties properties = new Properties();
24         // 图片边框,合法值:yes[默认] , no
25         properties.setProperty("kaptcha.border", "yes");
26         // 边框颜色,合法值: r,g,b (and optional alpha) 或者 white,black,blue.默认black
27         properties.setProperty("kaptcha.border.color", "105,179,90");
28         // 边框厚度,合法值:>0,默认1
29 //        properties.setProperty("kaptcha.border.thickness", "1");
30         // 图片宽,默认200
31         properties.setProperty("kaptcha.image.width", "110");
32         // 图片高,默认50
33         properties.setProperty("kaptcha.image.height", "40");
34         // 字体大小,默认40px
35         properties.setProperty("kaptcha.textproducer.font.size", "30");
36         // 字体,默认Arial, Courier
37         properties.setProperty("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑");
38         // 字体颜色,合法值: r,g,b  或者 white,black,blue.默认black
39         properties.setProperty("kaptcha.textproducer.font.color", "blue");
40         // session key,默认KAPTCHA_SESSION_KEY
41         properties.setProperty("kaptcha.session.key", "code");
42         // session date,默认KAPTCHA_SESSION_DATE
43 //        properties.setProperty("kaptcha.session.date", "KAPTCHA_SESSION_DATE");
44         // 验证码长度,默认5
45         properties.setProperty("kaptcha.textproducer.char.length", "4");
46         // 文字间隔,默认2
47 //        properties.setProperty("kaptcha.textproducer.char.space", "2");
48         // 干扰 颜色,合法值: r,g,b 或者 white,black,blue.默认black
49 //        properties.setProperty("kaptcha.noise.color", "black");
50         // 更多可参考:https://blog.csdn.net/elephantboy/article/details/52795309
51
52         Config config = new Config(properties);
53         defaultKaptcha.setConfig(config);
54
55         return defaultKaptcha;
56     }
57 }

html使用

<img alt="验证码" onclick = "this.src=‘/defaultKaptcha?d=‘+new Date().getTime()" src="/defaultKaptcha" />

验证码请求

/**
 * 验证码请求
 * @param response
 * @param session
 * @throws Exception
 */
@RequestMapping("/defaultKaptcha")
public void defaultKaptcha(HttpServletResponse response,HttpSession session) {
    response.setDateHeader("Expires", 0);
    response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
    response.addHeader("Cache-Control", "post-check=0, pre-check=0");
    response.setHeader("Pragma", "no-cache");
    response.setContentType("image/jpeg");
    String capText = captchaProducer.createText();
    //将验证码存到session
    session.setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);
    BufferedImage bi = captchaProducer.createImage(capText);
    try {
        ServletOutputStream out = response.getOutputStream();
        ImageIO.write(bi, "jpg", out);
        out.flush();
        out.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

登录认证验证码

// 从session中拿到正确的验证码
String captchaId = (String) request.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY);
// 用户输入的验证码
String parameter = request.getParameter("vrifyCode");
// 下面就是匹配这两个是否相同

原文地址:https://www.cnblogs.com/xiaostudy/p/11225187.html

时间: 2024-07-30 00:15:38

springboot集成kaptcha验证码的相关文章

Spring-Boot集成kaptcha实现表单图片验证

Kaptcha是一个基于SimpleCaptcha的验证码开源项目,Kaptcha的使用比较方便,只需添加jar包依赖之后简单地配置就可以使用了. 添加依赖 如果你使用maven来统一管理jar包,则在工程的pom.xml中添加dependency <dependency> <groupId>com.google.code.kaptcha</groupId> <artifactId>kaptcha</artifactId> <version

SpringBoot集成Spring Security(4)——自定义表单登录

通过前面三篇文章,你应该大致了解了 Spring Security 的流程.你应该发现了,真正的 login 请求是由 Spring Security 帮我们处理的,那么我们如何实现自定义表单登录呢,比如添加一个验证码- 源码地址:https://github.com/jitwxs/blog_sample 文章目录 一.添加验证码 1.1 验证码 Servlet 1.2 修改 login.html 1.3 添加匿名访问 Url二.AJAX 验证三.过滤器验证 3.1 编写验证码过滤器 3.2 注

SpringMVC中使用Kaptcha验证码组件生成比较安全的验证码

一 简介 Kaptcha是一个基于SimpleCaptcha的验证码开源项目,在我们的项目中使用Kaptcha组件可以快速生成比较安全的验证码.同时Kaptcha还提供了许多的参数可以让我们自定义生成的验证码样式 jar包的官网下载地址:https://code.google.com/archive/p/kaptcha/downloads 当然,为了照顾一些翻不了墙的同学,我也在51cto上上传了一份Kaptcha最新的的jar包(kaptcha-2.3.2),传送门:http://down.5

SpringBoot集成MyBatis的分页插件PageHelper

俗话说:好??不吃回头草,但是在这里我建议不管你是好马还是不好马,都来吃吃,带你复习一下分页插件PageHelper. 昨天给各位总结了本人学习springboot整合mybatis第一阶段的一些学习心得和源码,主要就算是敲了一下SpringBoot的门儿,希望能给各位的入门带给一点儿捷径,今天给各位温习一下MyBatis的分页插件PageHelper和SpringBoot的集成,它的使用也非常简单,开发更为高效.因为PageHelper插件是属于MyBatis框架的,所以相信很多哥们儿都已经用

Kaptcha 验证码在springMVC中的使用

项目中配置 Kaptcha 验证码分一下几步: 1,添加Maven依赖 <dependency>            <groupId>com.github.axet</groupId>            <artifactId>kaptcha</artifactId>            <version>0.0.9</version>        </dependency> 2,spring容器中

项目记录:登陆( 保存用户名密码 kaptcha验证码 shiro权限管理 RSA加密 非明文保存)

1.登陆页代码 1)引入js <script type="text/javascript" src="${base}/resources/admin/js/jquery.js"></script> <script type="text/javascript" src="${base}/resources/admin/js/jquery.validate.js"></script>

springboot集成swagger2构建RESTful API文档

在开发过程中,有时候我们需要不停的测试接口,自测,或者交由测试测试接口,我们需要构建一个文档,都是单独写,太麻烦了,现在使用springboot集成swagger2来构建RESTful API文档,可以在访问接口上,直接添加注释 先介绍一下开发环境: jdk版本是1.8 springboot的版本是1.4.1 开发工具为 intellij idea 我们先引入swagger2的jar包,pom文件引入依赖如下: <dependency> <groupId>io.springfox&

spring-boot集成Springfox-Swagger2

import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documenta

【spring-boot】spring-boot集成ehcache实现缓存机制

EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. ehcache提供了多种缓存策略,主要分为内存和磁盘两级,所以无需担心容量问题. spring-boot是一个快速的集成框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置. 由于spring-boot无需任何样板化的配置文件,所以spring-boot集成一些其他框架时会有略微的