From ada0b243f16f12b5025253663eacfe53055f8310 Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期三, 10 八月 2022 17:03:50 +0800
Subject: [PATCH] changes
---
ximon-admin/src/main/java/com/sandu/ximon/admin/security/authcode/VerifyCodeController.java | 63 +++++++++++++++++++++++--------
1 files changed, 47 insertions(+), 16 deletions(-)
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/security/authcode/VerifyCodeController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/security/authcode/VerifyCodeController.java
index 190b624..61b53d8 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/security/authcode/VerifyCodeController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/security/authcode/VerifyCodeController.java
@@ -1,17 +1,24 @@
package com.sandu.ximon.admin.security.authcode;
-import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.lang.Snowflake;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.sandu.common.security.annotation.AnonymousAccess;
+import com.sandu.ximon.admin.utils.RedisUtils;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
+import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.util.Base64;
+import java.util.HashMap;
import java.util.Map;
/**
@@ -24,34 +31,58 @@
@RequestMapping("/v1/authcode")
public class VerifyCodeController {
+ private final Snowflake snowflake;
+// private final RedisUtils redisUtils;
+
+ @AnonymousAccess
@RequestMapping("/getImg")
@ResponseBody
- public void getVerifiCode(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ public Map getVerifiCode(HttpServletRequest request, HttpServletResponse response) throws IOException {
/*
1.鐢熸垚楠岃瘉鐮�
2.鎶婇獙璇佺爜涓婄殑鏂囨湰瀛樺湪session涓�
3.鎶婇獙璇佺爜鍥剧墖鍙戦�佺粰瀹㈡埛绔�
*/
- ImageVerificationCode ivc = new ImageVerificationCode(); //鐢ㄦ垜浠殑楠岃瘉鐮佺被锛岀敓鎴愰獙璇佺爜绫诲璞�
+ long key = snowflake.nextId();
+ ImageVerificationCode ivc = new ImageVerificationCode(); //鐢熸垚楠岃瘉鐮佺被瀵硅薄
BufferedImage image = ivc.getImage(); //鑾峰彇楠岃瘉鐮�
- request.getSession().setAttribute("text", ivc.getText()); //灏嗛獙璇佺爜鐨勬枃鏈瓨鍦╯ession涓�
- ImageVerificationCode.output(image, response.getOutputStream());//灏嗛獙璇佺爜鍥剧墖鍝嶅簲缁欏鎴风
+ System.out.println(ivc.getText() + "----鍔犲瘑鍓嶇殑楠岃瘉鐮�");
+ RedisUtils.getBean().set(key + "", MD5Util.md5(ivc.getText().toUpperCase()), 60);
+ String img = getBufferedImageToBase64(image, "JPEG");
+
+ Map map = new HashMap();
+ map.put("img", img);
+ map.put("key", key);
+ return map;
+// return image;
}
- @RequestMapping("/Login_authentication")
+ @AnonymousAccess
+ @RequestMapping("/Login_authentication/{key}")
@ResponseBody
- public String Login_authentication(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
+ public String Login_authentication(HttpServletRequest request, HttpServletResponse response, @PathVariable String key) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
-// String vcode = (String)map.get("session_vcode");
-// if(vcode.isEmpty()||vcode==null){
-// return "楠岃瘉鐮佷笉鑳戒负绌�";
-// }
- String session_vcode = (String) request.getSession().getAttribute("text"); //浠巗ession涓幏鍙栫湡姝g殑楠岃瘉鐮�
- //姣旇緝杈撳叆鐨勯獙璇佺爜鍜岀湡姝g殑楠岃瘉鐮�
-// if(StrUtil.equalsIgnoreCase(session_vcode, vcode)){
-// return "true";
-// }
+
+ String session_vcode = (String) request.getSession().getAttribute(key); //浠巗ession涓幏鍙栫湡姝g殑楠岃瘉鐮�
return session_vcode;
}
+
+ /**
+ * BufferedImage杞垚 base64
+ *
+ * @param bufferedImage
+ * @param imageFormatName
+ * @return
+ * @throws IOException
+ */
+ public static String getBufferedImageToBase64(BufferedImage bufferedImage, String imageFormatName) throws IOException {
+ if (StringUtils.isBlank(imageFormatName)) {
+ imageFormatName = "JPEG";
+ }
+ ByteArrayOutputStream stream = new ByteArrayOutputStream();
+ ImageIO.write(bufferedImage, imageFormatName, stream);
+ String s = Base64.getEncoder().encodeToString(stream.toByteArray());
+ return s;
+ }
}
--
Gitblit v1.9.3