From 9619e60e3075a432d692f3cd8b76787568c53aad Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 07 五月 2025 15:56:58 +0800
Subject: [PATCH] 1、完善代码;2、禁止输出SpringBoot启动时Banner。
---
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/captcha/CaptchaSV.java | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 104 insertions(+), 0 deletions(-)
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/captcha/CaptchaSV.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/captcha/CaptchaSV.java
new file mode 100644
index 0000000..b8b819b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/captcha/CaptchaSV.java
@@ -0,0 +1,104 @@
+package com.dy.pipIrrApp.captcha;
+
+import com.dy.pipIrrApp.captcha.dto.CaptchaDomain;
+import com.dy.pipIrrGlobal.daoBa.BaCaptchaMapper;
+import com.dy.pipIrrGlobal.pojoBa.BaCaptcha;
+import com.google.code.kaptcha.Producer;
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.imageio.ImageIO;
+import java.io.ByteArrayOutputStream;
+import java.util.Base64;
+import java.util.UUID;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-09-11 13:46
+ * @LastEditTime 2024-09-11 13:46
+ * @Description
+ */
+
+@Slf4j
+@Service
+public class CaptchaSV {
+ @Autowired
+ private BaCaptchaMapper baCaptchaMapper;
+
+ @Resource(name = "captchaProducer")
+ private Producer captchaProducer;
+
+ @Resource(name = "captchaProducerMathOne")
+ private Producer captchaProducerMathOne;
+
+ @Resource(name = "captchaProducerMathTwo")
+ private Producer captchaProducerMathTwo;
+
+ private static final String TYPE_CHAR = "char";
+ private static final String TYPE_MATH_ONE = "math";
+ private static final String TYPE_MATH_TWO = "math2";
+
+ /**
+ * Kaptcha鐢熸垚楠岃瘉鐮佸疄浣�
+ * @param type锛宑har - 瀛楃(缂虹渷) | math - 涓�浣嶆暟绠楀紡 | math2 - 涓や綅鏁扮畻寮�
+ * @return
+ */
+ public CaptchaDomain createGoogleCaptcha(String type) {
+ // 瀹氫箟楠岃瘉鐮佸疄浣�
+ CaptchaDomain captchaDomain = new CaptchaDomain();
+ // 涓�浣嶆暟鍔犲噺涔橀櫎
+ if (TYPE_MATH_ONE.equals(type)) {
+ // 鐢熸垚鏂囨湰
+ String producerText = captchaProducerMathOne.createText();
+ // 璁剧疆楠岃瘉鐮佸瓧绗�
+ captchaDomain.setText(producerText.substring(0, producerText.indexOf("@")));
+ // 璁剧疆楠岃瘉鐮佺瓟妗堢爜
+ captchaDomain.setCode(producerText.substring(producerText.indexOf("@") + 1));
+ // 璁剧疆楠岃瘉鐮佸浘鐗�
+ captchaDomain.setImage(captchaProducerMathOne.createImage(captchaDomain.getText()));
+ }
+ // 涓や綅鏁板姞鍑忎箻闄�
+ else if (TYPE_MATH_TWO.equals(type)) {
+ String producerText = captchaProducerMathTwo.createText();
+ captchaDomain.setText(producerText.substring(0, producerText.indexOf("@")));
+ captchaDomain.setCode(producerText.substring(producerText.indexOf("@") + 1));
+ captchaDomain.setImage(captchaProducerMathTwo.createImage(captchaDomain.getText()));
+ }
+ // 缂虹渷鎯呭喌锛氬瓧绗�
+ else {
+ captchaDomain.setText(captchaProducer.createText());
+ captchaDomain.setCode(captchaDomain.getText());
+ captchaDomain.setImage(captchaProducer.createImage(captchaDomain.getText()));
+ }
+ // 鐢熸垚base64
+ try {
+ // 瀹氫箟瀛楄妭鏁扮粍杈撳嚭娴�
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+ // 灏嗗浘鍍忎互 jpg 鐨勫舰寮忥紝鍐欏埌瀛楄妭鏁扮粍杈撳嚭娴佷腑
+ ImageIO.write(captchaDomain.getImage(), "jpg", outputStream);
+
+ // 鍐欏叆base64鏍煎紡
+ captchaDomain.setBase64("data:image/jpg;base64," + Base64.getEncoder().encodeToString(outputStream.toByteArray()));
+ // 鍐欏叆鍞竴Token
+ captchaDomain.setToken(UUID.randomUUID().toString());
+ // 杩斿洖缁撴灉
+ return captchaDomain;
+ } catch (Exception e) {
+ System.out.println(e.getMessage());
+ return null;
+ }
+ }
+
+ /**
+ * 娣诲姞鍥剧墖楠岃瘉璁板綍
+ * @param po
+ * @return
+ */
+ public Long addCaptcha(BaCaptcha po) {
+ baCaptchaMapper.insert(po);
+ return po.getId();
+ }
+
+}
--
Gitblit v1.8.0