1
0
Quellcode durchsuchen

小程序登陆验证码逻辑修改

hyq vor 6 Jahren
Ursprung
Commit
4dc9b2320a

+ 10 - 4
kmall-common/src/main/java/com/kmall/common/controller/SysLoginController.java

@@ -5,6 +5,7 @@ import com.google.code.kaptcha.Producer;
 import com.kmall.common.annotation.SysLog;
 import com.kmall.common.utils.R;
 import com.kmall.common.utils.ShiroUtils;
+import com.kmall.common.utils.redis.JedisUtil;
 import org.apache.shiro.authc.*;
 import org.apache.shiro.crypto.hash.Sha256Hash;
 import org.apache.shiro.subject.Subject;
@@ -17,7 +18,9 @@ import org.springframework.web.bind.annotation.ResponseBody;
 import javax.imageio.ImageIO;
 import javax.servlet.ServletException;
 import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
 import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.util.HashSet;
@@ -34,9 +37,10 @@ import java.util.Set;
 public class SysLoginController {
     @Autowired
     private Producer producer;
+    public static int wsTokenExpireTime = 3600 * 24 * 30;
 
     @RequestMapping("captcha.jpg")
-    public void captcha(HttpServletResponse response) throws ServletException, IOException {
+    public void captcha(HttpServletResponse response, HttpSession session) throws ServletException, IOException {
         response.setHeader("Cache-Control", "no-store, no-cache");
         response.setContentType("image/jpeg");
 
@@ -45,7 +49,7 @@ public class SysLoginController {
         //生成图片验证码
         BufferedImage image = producer.createImage(text);
         //保存到shiro session
-        ShiroUtils.setSessionAttribute(Constants.KAPTCHA_SESSION_KEY, text);
+        JedisUtil.set(Constants.KAPTCHA_SESSION_KEY, text, wsTokenExpireTime);
 
         ServletOutputStream out = response.getOutputStream();
         ImageIO.write(image, "jpg", out);
@@ -57,8 +61,10 @@ public class SysLoginController {
     @SysLog("登录")
     @ResponseBody
     @RequestMapping(value = "/sys/login", method = RequestMethod.POST)
-    public R login(String username, String password, String captcha) throws IOException {
-        String kaptcha = ShiroUtils.getKaptcha(Constants.KAPTCHA_SESSION_KEY);
+    public R login(String username, String password, String captcha,HttpSession session) throws IOException {
+        String kaptcha = (String) JedisUtil.get(Constants.KAPTCHA_SESSION_KEY);
+        System.out.println(kaptcha);
+        JedisUtil.del(Constants.KAPTCHA_SESSION_KEY);
         if (!captcha.equalsIgnoreCase(kaptcha)) {
             return R.error("验证码不正确");
         }