From a6afa4b5e1a919f752660911866b25a9cb8312f6 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期五, 20 五月 2022 14:11:38 +0800
Subject: [PATCH] fix
---
ximon-admin/src/main/java/com/sandu/ximon/admin/security/authcode/VerifyCodeController.java | 52 +++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 45 insertions(+), 7 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..c1e99e9 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,26 @@
package com.sandu.ximon.admin.security.authcode;
+import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.StrUtil;
+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 sun.misc.BASE64Encoder;
+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 +33,63 @@
@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.鎶婇獙璇佺爜鍥剧墖鍙戦�佺粰瀹㈡埛绔�
*/
+ 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;
}
- @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");
+// String vcode = (String)map.get("session_vcode"); r6mt
// if(vcode.isEmpty()||vcode==null){
// return "楠岃瘉鐮佷笉鑳戒负绌�";
// }
- String session_vcode = (String) request.getSession().getAttribute("text"); //浠巗ession涓幏鍙栫湡姝g殑楠岃瘉鐮�
+ String session_vcode = (String) request.getSession().getAttribute(key); //浠巗ession涓幏鍙栫湡姝g殑楠岃瘉鐮�
//姣旇緝杈撳叆鐨勯獙璇佺爜鍜岀湡姝g殑楠岃瘉鐮�
// if(StrUtil.equalsIgnoreCase(session_vcode, vcode)){
// return "true";
// }
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