欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot整合Kaptcha實(shí)現(xiàn)圖形驗(yàn)證碼功能

 更新時(shí)間:2023年09月28日 10:36:22   作者:DaenCode  
這篇文章主要介紹了SpringBoot整合Kaptcha實(shí)現(xiàn)圖形驗(yàn)證碼功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

引入依賴

首先引入Kaptcha的starter依賴

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

驗(yàn)證碼配置類

/**
 * 圖形驗(yàn)證碼配置類
 */
@Configuration
@Slf4j
public class CaptchaConfig {
    /**
     * 驗(yàn)證碼配置
     * @return
     */
    @Bean
    @Qualifier("captchaProducer")
    public DefaultKaptcha kaptcha() {
        DefaultKaptcha kaptcha = new DefaultKaptcha();
        Properties properties = new Properties();
        //驗(yàn)證碼個(gè)數(shù)
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH, "4");
        //字體間隔
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_SPACE,"8");
        //干擾實(shí)現(xiàn)類
        properties.setProperty(Constants.KAPTCHA_NOISE_IMPL, "com.google.code.kaptcha.impl.NoNoise");
        //圖片樣式
        properties.setProperty(Constants.KAPTCHA_OBSCURIFICATOR_IMPL, "com.google.code.kaptcha.impl.WaterRipple");
        //文字來源
        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_STRING, "0123456789");
        Config config = new Config(properties);
        kaptcha.setConfig(config);
        return kaptcha;
    }
}

controller

主要步驟如下:

  • 1.生成驗(yàn)證碼字符串
  • 2.生成圖形形式驗(yàn)證碼
  • 3.輸出到客戶端
  • 4.關(guān)閉流
@RestController
@RequestMapping("/user")
@Slf4j
public class UserController {
    @Autowired
    private Producer producer;
    /**
     * 生成圖形驗(yàn)證碼
     * 1.生成驗(yàn)證碼字符串
     * 2.生成圖形形式驗(yàn)證碼
     * 3.輸出到客戶端
     * 4.關(guān)閉流
     * @param request
     * @param response
     */
    @GetMapping("captcha")
    public void getCaptcha(HttpServletRequest request, HttpServletResponse response){
        //生成字符串驗(yàn)證碼
        String code= producer.createText();
        //創(chuàng)建圖形驗(yàn)證碼
        BufferedImage image=producer.createImage(code);
        try {
            //寫到瀏覽器,向客戶端發(fā)送數(shù)據(jù)
            ServletOutputStream outputStream=null;
            //獲取輸出流
            outputStream=response.getOutputStream();
            ImageIO.write(image,"jpg",outputStream);
            outputStream.flush();
            outputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

ServletOutputStream

作用:用戶向客戶端發(fā)送二進(jìn)制數(shù)據(jù)。提供了字節(jié)數(shù)據(jù)寫入響應(yīng)輸出流的方式,用于生成和發(fā)送動(dòng)態(tài)內(nèi)容或者文件的響應(yīng)。

應(yīng)用場(chǎng)景

  • 向客戶端發(fā)送圖像、音頻或者視頻媒體文件。
  • 生成發(fā)送PDF、EXCEL等等二進(jìn)制文件。
  • 將二進(jìn)制數(shù)據(jù)流式傳遞給客戶端。

使用步驟

  • 通過HttpservletRespon獲取輸出流getOutputStream。
  • 通過ImageIO.write將圖像寫入到輸出流中。
  • 緩沖輸出流。
  • 關(guān)閉輸出流。

效果

寫在最后

以上就是SpringBoot整合Kaptcha實(shí)現(xiàn)圖形驗(yàn)證碼功能的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot整合Kaptcha驗(yàn)證碼的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論