最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring boot如何集成kaptcha并生成驗(yàn)證碼

 更新時間:2020年07月20日 16:11:38   作者:慕塵  
這篇文章主要介紹了Spring boot如何集成kaptcha并生成驗(yàn)證碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

kaptcha是一個開源的驗(yàn)證碼實(shí)現(xiàn)庫

1.添加依賴

<dependency>
  <groupId>com.github.axet</groupId>
  <artifactId>kaptcha</artifactId>
  <version>0.0.9</version>
</dependency>

2.添加配置類

配置驗(yàn)證碼的生成屬性

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();
    // 設(shè)置邊框
    properties.put("kaptcha.border", "yes");
    // 設(shè)置邊框顏色
    properties.put("kaptcha.border.color", "105,179,90");
    // 設(shè)置字體顏色
    properties.put("kaptcha.textproducer.font.color", "black");
    // 設(shè)置圖片寬度
    properties.put("kaptcha.image.width", "160");
    // 設(shè)置圖片高度
    properties.put("kaptcha.image.height", "50");
    //設(shè)置字體尺寸
    properties.put("kaptcha.textproducer.font.size", "30");
    // 設(shè)置驗(yàn)證碼長度
    properties.put("kaptcha.textproducer.char.length", "5");
    // 設(shè)置字體
    properties.put("kaptcha.textproducer.font.names", "宋體,楷體,黑體");

    Config config = new Config(properties);
    DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
    defaultKaptcha.setConfig(config);
    return defaultKaptcha;
  }
}

復(fù)制代碼

參數(shù):

  •   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:驗(yàn)證碼長度
  •   kaptcha.textproducer.font.names:字體
  •   kaptcha.textproducer.font.size:字體大小
  •   kaptcha.textproducer.font.color:字體顏色
  •   kaptcha.textproducer.char.space:文字間隔
  •   kaptcha.background.clear.from:背景顏色漸變,開始顏色
  •   kaptcha.background.clear.to:背景顏色漸變,結(jié)束顏色

3.生成驗(yàn)證碼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");

    // 生成文字驗(yàn)證碼
    String text = producer.createText();
    // 生成圖片驗(yàn)證碼
    BufferedImage image = producer.createImage(text);
    // 保存到驗(yàn)證碼到 session
    request.getSession().setAttribute(Constants.KAPTCHA_SESSION_KEY, text);

    ServletOutputStream out = response.getOutputStream();
    ImageIO.write(image, "jpg", out);
    IOUtils.closeQuietly(out);
  }

}

4.測試

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • spring?boot前后端交互之?dāng)?shù)據(jù)格式轉(zhuǎn)換問題

    spring?boot前后端交互之?dāng)?shù)據(jù)格式轉(zhuǎn)換問題

    這篇文章主要介紹了spring?boot前后端交互之?dāng)?shù)據(jù)格式轉(zhuǎn)換,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-01-01
  • 解決springboot項(xiàng)目啟動報(bào)錯Error creating bean with name dataSourceScriptDatabaseInitializer問題

    解決springboot項(xiàng)目啟動報(bào)錯Error creating bean with&nb

    這篇文章主要介紹了解決springboot項(xiàng)目啟動報(bào)錯Error creating bean with name dataSourceScriptDatabaseInitializer問題,具有很好的參考價(jià)值,希望對大家有所幫助
    2024-03-03
  • Java中的"找不到符號"錯誤解決辦法

    Java中的"找不到符號"錯誤解決辦法

    開發(fā)中遇到一個問題,當(dāng)我用idea開發(fā)工具將新的項(xiàng)目代碼從GitLab上面拉取下來,所有的Maven依賴也導(dǎo)入成功,然后啟動項(xiàng)目,結(jié)果報(bào)錯:java:找不到符號,這篇文章主要給大家介紹了關(guān)于Java中"找不到符號"錯誤的解決辦法,需要的朋友可以參考下
    2023-10-10
  • IDEA中設(shè)置Run Dashboard方式

    IDEA中設(shè)置Run Dashboard方式

    這篇文章主要介紹了IDEA中設(shè)置Run Dashboard方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • 使用spring連接及操作mongodb3.0實(shí)例

    使用spring連接及操作mongodb3.0實(shí)例

    這篇文章主要介紹了使用spring連接及操作mongodb3.0實(shí)例,詳細(xì)的介紹了使用spring的情況下,在java中簡單操作mongodb。有興趣的可以了解一下。
    2016-12-12
  • shiro與spring?security用自定義異常處理401錯誤

    shiro與spring?security用自定義異常處理401錯誤

    這篇文章主要介紹了shiro與spring?security用自定義異常處理401錯誤,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java獲取IP地址以及MAC地址的示例代碼

    Java獲取IP地址以及MAC地址的示例代碼

    IP地址是用于在網(wǎng)絡(luò)上識別設(shè)備的唯一地址,而MAC地址是設(shè)備的物理地址,本文主要介紹了Java獲取IP地址以及MAC地址的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-04-04
  • Easyui的combobox實(shí)現(xiàn)動態(tài)數(shù)據(jù)級聯(lián)效果

    Easyui的combobox實(shí)現(xiàn)動態(tài)數(shù)據(jù)級聯(lián)效果

    這篇文章主要介紹了Easyui的combobox實(shí)現(xiàn)動態(tài)數(shù)據(jù)級聯(lián)效果的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-06-06
  • spring.factories文件的解析源碼API機(jī)制詳解

    spring.factories文件的解析源碼API機(jī)制詳解

    通過本文深入探討Spring?Boot的背景歷史、業(yè)務(wù)場景、功能點(diǎn)以及底層原理,使讀者對Spring?Boot有了更深入的了解,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • maven安裝、使用、配置本地倉庫、idea配置maven以及解決plugins報(bào)錯問題

    maven安裝、使用、配置本地倉庫、idea配置maven以及解決plugins報(bào)錯問題

    本地倉庫是遠(yuǎn)程倉庫的一個緩沖和子集,當(dāng)你構(gòu)建Maven項(xiàng)目時首先會從本地倉庫查找資源,如果沒有那么Maven會從遠(yuǎn)程倉庫下載到你本地倉庫,這篇文章主要給大家介紹了關(guān)于maven安裝、使用、配置本地倉庫、idea配置maven以及解決plugins報(bào)錯問題的相關(guān)資料,需要的朋友可以參考下
    2024-01-01

最新評論

泽普县| 临江市| 台安县| 安丘市| 宝清县| 遂溪县| 屏南县| 江都市| 林西县| 皋兰县| 汉中市| 宣城市| 天镇县| 永福县| 文成县| 大埔区| 阿拉善右旗| 页游| 遂宁市| 定安县| 藁城市| 即墨市| 五大连池市| 柳州市| 河北省| 曲阳县| 民乐县| 阜平县| 新泰市| 普兰店市| 山阳县| 渝北区| 白城市| 神木县| 阳新县| 舞阳县| 嘉定区| 平顶山市| 开阳县| 波密县| 邯郸市|