From 636c7bbbd8b4d503b9f0e84fe80ceb8868c5c2bc Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期五, 15 七月 2022 16:16:40 +0800
Subject: [PATCH] 用户登录

---
 src/main/java/com/whyc/service/DocUserService.java |   32 ++++++++++++++++++++++++++++++++
 1 files changed, 32 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/whyc/service/DocUserService.java b/src/main/java/com/whyc/service/DocUserService.java
index 1b710bf..bfa39c1 100644
--- a/src/main/java/com/whyc/service/DocUserService.java
+++ b/src/main/java/com/whyc/service/DocUserService.java
@@ -9,11 +9,18 @@
 import com.whyc.dto.Response;
 import com.whyc.mapper.DocUserMapper;
 import com.whyc.pojo.DocUser;
+import com.whyc.util.ActionUtil;
+import com.whyc.util.RSAUtil;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.authc.UnknownAccountException;
+import org.apache.shiro.authc.UsernamePasswordToken;
+import org.apache.shiro.subject.Subject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.system.ApplicationHome;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletRequest;
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
@@ -94,4 +101,29 @@
         int bl=mapper.delete(wrapper);
         return new Response().setII(1,bl>0?true:false,bl,"鍒犻櫎杩斿洖");
     }
+
+    public Response login(String name, String snId, HttpServletRequest request) {
+        Response response = new Response();
+        String[] dataArr = RSAUtil.decryptFrontP(snId, RSAUtil.fontSeparator);
+        //楠岀md5
+        if (!dataArr[1].equals(ActionUtil.EncryptionMD5(org.apache.commons.lang3.StringUtils.trim(dataArr[0])).toString())) {
+            return response.set(1, false, "瀵嗙爜楠岀澶辫触");
+        }
+        UsernamePasswordToken userToken = new UsernamePasswordToken(name, dataArr[0]);
+        Subject subject = SecurityUtils.getSubject();
+        try {
+            subject.login(userToken);
+        } catch (Exception e) {
+            if(e instanceof UnknownAccountException){
+                return response.set(1,false,"璐﹀彿涓嶅瓨鍦�");
+            }
+            return response.set(1,false,"瀵嗙爜閿欒");
+        }
+        //鐧诲綍鎴愬姛
+        //Session瀛樺偍褰撳墠鐢ㄦ埛鍙婃潈闄愮粍鍒楄〃
+        DocUser userDB = (DocUser) subject.getPrincipal();
+        userDB.setSnId(null);
+        request.getSession().setAttribute("user", userDB);
+        return response.setII(1,true, userDB,"鐧诲綍鎴愬姛");
+    }
 }

--
Gitblit v1.9.1