当前位置: 首页 > news >正文

快速学会SpringBoot图形验证码生成:一步步教你打造安全验证

1.效果图

2.pom.xml

 <!-- 验证码配置--><dependency><groupId>com.github.axet</groupId><artifactId>kaptcha</artifactId><version>0.0.9</version></dependency>

3.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 org.springframework.web.servlet.config.annotation.WebMvcConfigurer;import java.util.Properties;/*** 图形验证码配置类*/
@Configuration
public class KaptchaConfig implements WebMvcConfigurer {@Beanpublic DefaultKaptcha producer(){Properties properties =new Properties();properties.put("kaptcha.border","no");properties.put("kaptcha.textproducer.font.color","black");properties.put("kaptcha.textproducer.char.space","5");Config config=new Config(properties);DefaultKaptcha defaultKaptcha =new DefaultKaptcha();defaultKaptcha.setConfig(config);return defaultKaptcha;}
}

4.SmsService接口类

public interface SmsService {Result sendAliSms(String number) throws ClientException, com.aliyuncs.exceptions.ClientException;ServletOutputStream patternCode(HttpServletResponse response) throws IOException;}

5.SmsServiceImpl业务类


import com.google.code.kaptcha.Producer;
@Service
public class SmsServiceImpl implements SmsService {@Resourceprivate Producer producer;/*** 获取图型验证码*/@Overridepublic ServletOutputStream patternCode(HttpServletResponse response) throws IOException {String text= producer.createText();//验证码内容BufferedImage image=producer.createImage(text);//验证码图片流ServletOutputStream out =response.getOutputStream();ImageIO.write(image,"jpg",out);IOUtils.closeQuietly(out);存缓存//redisDao.vSet(text,text,300);return out;}}

6.SmsController控制方法

/*** 短信* 验证码* 工具类*/
@RestController
@RequestMapping("/sms")
public class SmsController {@Resourceprivate SmsService smsService;/*** 发送图像验证码*/@GetMapping("/patternCode")public ServletOutputStream patternCode(HttpServletResponse response) throws IOException {return smsService.patternCode(response);}}

7.推荐程序员必备网站

天梦星服务平台 (tmxkj.top)icon-default.png?t=N7T8https://tmxkj.top/#/

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 参会记录|2024 中国多媒体大会
  • leetcode-vector
  • django如何更新数据库字段并与数据库保持同步?
  • Redis 单机和集群环境部署教程
  • React前端面试基础(一)
  • LeetCode:2110. 股票平滑下跌阶段的数目(数学 Java)
  • 【Rust光年纪】构建高效终端用户界面:Rust库全面解析
  • 【ARM】应用ArmDS移植最小FreeRTOS系统
  • Visual Studio 调试时加载符号慢
  • Web-server日志分析命令
  • Qt自定义TreeWidget,实现展开折叠按钮在右侧,且一条竖直线上对齐
  • 通过指令深入了解Linux 3
  • 基于深度学习的工业系统仿真
  • 网络安全测试工具Burp Suite基本使用
  • AWS Lambda 十年回顾:功能总览、更新记录与入门指南
  • [译]CSS 居中(Center)方法大合集
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【React系列】如何构建React应用程序
  • IP路由与转发
  • JavaScript 基础知识 - 入门篇(一)
  • jdbc就是这么简单
  • underscore源码剖析之整体架构
  • 成为一名优秀的Developer的书单
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 开源地图数据可视化库——mapnik
  • hi-nginx-1.3.4编译安装
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • #pragma once
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (12)目标检测_SSD基于pytorch搭建代码
  • (2)STL算法之元素计数
  • (C#)一个最简单的链表类
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (转)EOS中账户、钱包和密钥的关系
  • (转载)PyTorch代码规范最佳实践和样式指南
  • ****Linux下Mysql的安装和配置
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .gitignore文件—git忽略文件
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET Core 中的路径问题
  • .net 获取url的方法
  • .net 获取某一天 在当月是 第几周 函数
  • .NET 中让 Task 支持带超时的异步等待
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • ::
  • ::前边啥也没有
  • @RunWith注解作用
  • @开发者,一文搞懂什么是 C# 计时器!
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [000-01-011].第2节:持久层方案的对比
  • [2023年]-hadoop面试真题(一)