【转发】Spring Boot 配置Kaptcha(谷歌验证码工具)(生成验证码、验证验证码)

来自https://blog.csdn.net/qq_38974638/article/details/120417679 

Spring Boot
55 篇文章 5 订阅
订阅专栏
1 Kaptcha
1.1 Kaptcha简介

        Kaptcha 是一个扩展自simplecaptcha的验证码库,默认情况下,Kaptcha非常易于设置和使用,并且默认输出会产生一个很难验证的验证码。默认情况下,它生成的验证码看起来与上面的非常相似。如果您想更改输出的外观,则有几个配置选项,并且该框架是模块化的,因此您可以编写自己的变形代码。
1.2 Kaptcha详细配置表
Kaptcha常用属性
序号    属性名    描述    示例
1    kaptcha.width    验证码宽度    200
2    kaptcha.height    验证码高度    50
Kaptcha border(边框)属性
序号    属性名    描述    示例
1    kaptcha.border.enabled    是否显示边框    true
2    kaptcha.border.color    边框颜色    black
3    kaptcha.border.thickness    边框厚度    2
Kaptcha content(文本)属性
序号    属性名    描述    示例
1    kaptcha.content.length    验证码文本长度    5
2    kaptcha.content.source    文本源    abcde2345678gfynmnpwx
3    kaptcha.content.space    文本间隔    2
Kaptcha font(字体)属性
序号    属性名    描述    示例
1    kaptcha.font.name    字体名称    Arial
2    kaptcha.font.size    字体大小    40
3    kaptcha.font.color    字体颜色    black
Kaptcha background-color(背景颜色)属性
序号    属性名    描述    示例
1    kaptcha.background-color.from    背景颜色(开始渐变色)    lightGray
2    kaptcha.background-color.to    背景颜色(结束渐变色)    white
2 Maven依赖

            <!-- 验证码 -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>kaptcha-spring-boot-starter</artifactId>
                <version>1.1.0</version>
            </dependency>

3 Spring Boot配置

    #验证码宽度
    kaptcha.width=200
    #验证码高度
    kaptcha.height=50
    #验证码内容长度
    kaptcha.content.length=4
    #验证码内容源
    kaptcha.content.source=ABCDEFGHIJKLMNOPQRSTUVWXYZ2345678923456789
    #验证码内容间隔
    kaptcha.content.space=2
    #验证码字体名称
    kaptcha.font.name=Arial
    #验证码字体大小
    kaptcha.font.size=40
    #验证码字体颜色
    kaptcha.font.color=black
    #验证码背景颜色(开始颜色)
    kaptcha.background-color.from=lightGray
    #验证码背景颜色(结束颜色)
    kaptcha.background-color.to=white
    #验证码是否显示边框
    kaptcha.border.enabled=true
    #验证码边框颜色
    kaptcha.border.color=black
    #验证码边框厚度
    kaptcha.border.thickness=1

4 调试代码

    package com.controller;
     
    import com.baomidou.kaptcha.Kaptcha;
    import com.baomidou.kaptcha.exception.KaptchaIncorrectException;
    import com.baomidou.kaptcha.exception.KaptchaNotFoundException;
    import com.baomidou.kaptcha.exception.KaptchaTimeoutException;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
     
    @RestController
    public class KaptchaController {
        @Autowired
        private Kaptcha kaptcha;
     
        /**
         * 获取Kaptcha验证码
         */
        @GetMapping("/getKaptchaImg")
        public void getKaptchaImg() {
            //默认900秒
            kaptcha.render();
        }
     
        /**
         * 验证验证码
         *
         * @param code 验证码
         * @return
         */
        @GetMapping("/validCode")
        public String validCode(@RequestParam String code) {
            try {
                kaptcha.validate(code);
            } catch (Exception e) {
                if (e instanceof KaptchaIncorrectException) {
                    return "验证码不正确";
                } else if (e instanceof KaptchaNotFoundException) {
                    return "验证码未找到";
                } else if (e instanceof KaptchaTimeoutException) {
                    return "验证码过期";
                } else {
                    return "验证码渲染失败";
                }
            }
            return "验证通过";
        }
    }

5 调试结果
5.1 生成验证码

 

 


5.2 验证验证码
5.2.1 验证通过

 

 


 
5.2.2 验证码不存在

 

 

 


————————————————
版权声明:本文为CSDN博主「旭东怪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38974638/article/details/120417679

posted @   疯子110  阅读(1490)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
历史上的今天:
2019-06-20 百度地图API--百度地图底色选择
2019-06-20 如何在网中使用百度地图API自定义个性化地图
2019-06-20 百度地图个性化模板列表
2019-06-20 echart纵坐标标签特别长换行显示
2019-06-20 ECharts3D地图(详细示例——附有具体注释)
2019-06-20 Echarts4+EchartsGL 3D迁徙图(附源码)
2019-06-20 postgresql数据库的 to_date 和 to_timestamp 将 字符串转换为时间格式
点击右上角即可分享
微信分享提示