SpringBoot 整合 kaptcha + redis 实现 图形验证码登录

一、新建一个SpringBoot 项目,springboot项目创建过程详见 

mac idea 创建 springboot 项目_JAVA·D·WangJing的博客-CSDN博客_mac idea创建springboot项目

二、SpringBoot 整合使用 Rdis

SpringBoot 项目 添加 redis配置_JAVA·D·WangJing的博客-CSDN博客_springboot添加redis

三、SpringBoot 整合 kaptcha

3.1、pom.xml依赖配置

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

3.2、Kaptcha 配置类

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;/*** @author: wangjing* @createTime: 2022-10-19 14:01* @version: 1.0.0* @Description: Kaptcha 配置类*/
@Configuration
public class KaptchaConfig {@Beanpublic DefaultKaptcha kaptchaProducer() {Properties properties = new Properties();// 框的长度properties.setProperty("kaptcha.image.width", "100");// 框的高度properties.setProperty("kaptcha.image.height", "40");// 字体大小properties.setProperty("kaptcha.textproducer.font.size", "32");// 字体颜色properties.setProperty("kaptcha.textproducer.font.color", "0,0,0");// 生成验证码的样本集合properties.setProperty("kaptcha.textproducer.char.string", "0123456789QWERTYUIOPASDFGHJKLZXCVBNM");// 生成的随机字符数properties.setProperty("kaptcha.textproducer.char.length", "4");// 干扰类,噪声、阴影  默认防破解properties.setProperty("kaptcha.noise.impl", "com.google.code.kaptcha.impl.NoNoise");DefaultKaptcha kaptcha = new DefaultKaptcha();Config config = new Config(properties);kaptcha.setConfig(config);return kaptcha;}
}

3.3、Controller 层增加获取验证码接口

@ApiOperation("获取验证码")
@GetMapping("/getVerificationCode/{uuid}")
public void getVerificationCode(HttpServletResponse response,@PathVariable("uuid") String uuid) throws IOException {//设置响应头response.setHeader("Cache-Control", "no-cache");response.setHeader("Pragma", "no-cache");response.setContentType("image/jpeg");String text = defaultKaptcha.createText();// 将验证码存redisredisUtil.set(uuid, text, 900);//创建验证码图片BufferedImage image = defaultKaptcha.createImage(text);ServletOutputStream os = response.getOutputStream();ImageIO.write(image, "jpg", os);IOUtils.closeQuietly(os);
}

3.4、通过访问接口,进行验证

注:以上内容仅提供参考和交流,请勿用于商业用途,如有侵权联系本人删除!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/252252.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

10.20扫雷

扫雷 1.构建主函数,方法与三子棋雷同,但是有很多不一样的地方,就是需要构建两个二维数组,一个存放雷的数据,一个存放展现给玩家的数据棋盘 2.在对棋盘分别初始化 时候,考虑到两个二维数组存放内容不同,直接对初始化函数进行添加字符参数 3.构建参数 因为考虑到后期排查雷的时…

扫雷游戏

游戏设计 1.设计两个二维数组的面板&#xff0c;一个是展示给用户使用的&#xff0c;另一个是雷区的面板 2.初始化两个面板&#xff0c;用户使用的面板初始化为‘’&#xff0c;雷区的面板全部初始化为‘0’ 3.设置你所需要的雷区 4.用户输入坐标&#xff0c;进行判断。越界重新…

【180720】微软Windows扫雷游戏代码

源码简介 本源码是一个微软Windows扫雷游戏代码&#xff0c;可选择难度级别&#xff1a;初级、中级、高级。 注意事项: 1、开发环境为Visual Studio 2010&#xff0c;使用.net 2.0开发。 源码下载地址&#xff1a;点击下载 备用下载地址&#xff1a;点击下载

扫雷win10_windows扫雷游戏原来是一道数学难题!

各位同学大家好&#xff0c;这里是质心数学游戏科普频道。 今天和大家聊的是一款有点复古的windows系统自带小游戏——MineSweeper&#xff08;扫雷&#xff09;。 我刚接触这款游戏是高中的上机课&#xff0c;当时的电脑系统还是win95&#xff0c;在大家还不会局域网互联打Sta…

【扫雷】游戏

一、目的 实现一个扫雷游戏 二、过程 1、游戏框架 首先&#xff0c;游戏开始之前&#xff0c;显示游戏菜单Menu() static void Menu() {printf("#############################\n");printf("########欢迎来到扫雷游戏#######\n");printf("######…

扫雷1.0

目录 一.规则介绍 二.基本思路 三.代码实现 一.规则介绍 扫雷是一个经典的游戏&#xff0c;一张棋盘中有许多不确定是雷还是安全区域的格子&#xff0c;当点击之后若没雷则会在该区域显示周围八个格子雷瑟数目&#xff0c;若踩雷则游戏结束。 二.基本思路 1.创建菜单 2.…

扫雷win10_厉害了,一个自动扫雷游戏项目!

转载自公众号【视学算法】 原文&#xff1a;https://www.cnblogs.com/chestnut-egg/p/9302238.html 自动扫雷一般分为两种&#xff0c;一种是读取内存数据&#xff0c;而另一种是通过分析图片获得数据&#xff0c;并通过模拟鼠标操作&#xff0c;这里我用的是第二种方式。 一、…

RK3566 ALC5616录音调试

1.硬件原理图 MIC_P&#xff0c;MIC_N&#xff1a;mic输入。 I2S&#xff1a;总共有5根线&#xff08;这里不是指 i2s 标准接口&#xff09;&#xff1a;两根音频数据线&#xff08;输入/输出&#xff09;、三根时钟线 其中&#xff1a; I2S_LRCK 是指示当前数据线传输的是左声…

comsol with matlab联合仿真

目前网上的教程基本上只有如何找到comsol with Matlab以及如何打开&#xff0c;和部分代码的讲解&#xff0c;但是要真正的跑起来还有一些步骤&#xff0c;小白在这里跟大家分享一下&#xff0c;不对轻喷&#x1f97a; 1.comsol文件需要连接到服务器comsol multiphysics serve…

COMSOL6.0软件安装说明+视频教程

链接&#xff1a;https://pan.baidu.com/s/1a_BaY6K-fP0PiMhcw5eLcg?pwd6iis 提取码&#xff1a;6iis 首先用虚拟光驱加载或者用winrar直接解压镜像文件&#xff0c;再双击setup.exe程序&#xff0c;选择简体中文语言&#xff1b; 2.选择新安装&#xff1b; 3.选择你要安装…

COMSOL 5.2安装教程(自用)

3、允许用户协议&#xff0c;将许可证格式修改为“许可证文件”&#xff0c;然后点击浏览载入安装包中“_SolidSQUAD_”目录下的“Comsol52_SSQ.lic” 电磁 AC/DC 模块RF 模块波动光学模块射线光学模块等离子体模块半导体模块 结构力学 & 声学 结构力学模块非线性结构材料模…

COMSOL在云平台的使用教程,超高效的方法来了

在北鲲云超算平台上有多种COMSOL作业提交方式&#xff0c;这里给大家演示的是图形界面提交 在平台上使用图形界面提交超级简单&#xff0c;平台已内置模板&#xff0c;只需按照提示上传文件及选择选项即可&#xff0c;对于没有代码基础的同学来说&#xff0c;这是最推荐的方式…

EDA安装------Centos7 安装Comsol5.5

目录 1.引言2.资源3.安装4.结语 1.引言 由于项目需求&#xff0c;博主最近要做微流控通道的流体仿真&#xff0c;对于一个小白来说&#xff0c;首先就是安装仿真软件了。据目前所知&#xff0c;流体仿真大多数使用Ansys的Fluent或CFX、Comsol两个软件。经过网上查询&#xff0…

页眉如何设置成一页左一页右?页码如何设置成一页左一页右?

WPS页眉如何设置成一页左一页右&#xff1f;页码如何设置成一页左一页右&#xff1f;

WPS页眉不同页之间的修改

1-打开WPS 2-建立第一页的页眉 3-点击第二页的页眉 4-点击一下&#xff0c;取消“同前节” 5-编辑第二页的页眉 6-如果后续不修改&#xff0c;那么后面的页眉应是第二页的页眉

WPS的页眉设置

设置步骤如下 首先点开显示段落标记&#xff0c;这样更方便看到分节符&#xff1a; 在每页文字的最后插入分节符&#xff0c;操作步骤如下&#xff1a; 可以在页面上看到分节符&#xff0c;分节符的作用就是将多个页面分节&#xff0c;分节符前是一节&#xff0c;之后是另外一…

word操作——论文中——设置WPS奇偶页页眉内容不同和公式居中,公式的标号靠右、......

一、设置WPS奇偶页页眉内容不同&#xff1a; 一、先设置“奇偶页不同”&#xff1a; 首先双击页眉&#xff0c;在工具栏点击页眉页脚选项&#xff0c;勾选奇偶页不同、奇数页页眉同前节&#xff08;可选&#xff09;&#xff0c;后确定。 二、然后&#xff0c;在分各章节的页…

MySQL中BETWEEN AND(范围查询)

0 写在前面 MySQL 提供了 BETWEEN AND 关键字&#xff0c;用来判断字段的数值是否在指定范围内。 BETWEEN AND 需要两个参数&#xff0c;即范围的起始值和终止值。如果字段值在指定的范围内&#xff0c;则这些记录被返回。如果不在指定范围内&#xff0c;则不会被返回。 最近…

利用短信猫发送短信教程解决windows上发送成功而linux上失败问题

前言 目前用过的开源短信猫工具有jSMSEngine和SMSLib&#xff0c;下载地址及使用网上有很多&#xff0c;本文只是简要介绍短信猫的安装使用及在项目中遇到的坑。 说明&#xff1a;本文主要解决windows上通过短信猫发送成功而Linux上发送失败的问题。 通过短信猫发送短信案例…