From d1553dc43f9bbdb95db7cbe8760b40e2986d1d4d Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期四, 29 九月 2022 17:47:08 +0800
Subject: [PATCH] 1

---
 src/main/java/com/lf/server/controller/sys/SignController.java |  157 ++++++++++++++++++++--------------------------------
 1 files changed, 60 insertions(+), 97 deletions(-)

diff --git a/src/main/java/com/lf/server/controller/sys/SignController.java b/src/main/java/com/lf/server/controller/sys/SignController.java
index 9a23ce9..25efeb4 100644
--- a/src/main/java/com/lf/server/controller/sys/SignController.java
+++ b/src/main/java/com/lf/server/controller/sys/SignController.java
@@ -1,15 +1,24 @@
 package com.lf.server.controller.sys;
 
+import com.lf.server.controller.BaseController;
+import com.lf.server.entity.all.ResponseMsg;
+import com.lf.server.entity.data.LoginEntity;
+import com.lf.server.entity.data.TokenEntity;
+import com.lf.server.entity.data.UsersEntity;
 import com.lf.server.entity.sys.LoginInfo;
 import com.lf.server.entity.sys.Result;
 import com.lf.server.entity.sys.User;
-import com.lf.server.service.sys.UserService;
-import org.apache.shiro.SecurityUtils;
-import org.apache.shiro.authc.*;
-import org.apache.shiro.subject.Subject;
+import com.lf.server.helper.StringHelper;
+import com.lf.server.helper.WebHelper;
+import com.lf.server.service.data.LoginService;
+import com.lf.server.service.data.TokenService;
+import com.lf.server.service.data.UsersService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
 /**
  * 绛惧悕鎺у埗鍣�
@@ -18,14 +27,15 @@
  */
 @RestController
 @RequestMapping("/sign")
-public class SignController {
+public class SignController extends BaseController {
     @Autowired
-    UserService userService;
+    UsersService userService;
 
-    @GetMapping("/getName")
-    public User getName(String loginName) {
-        return userService.queryUserByName(loginName);
-    }
+    @Autowired
+    LoginService loginService;
+
+    @Autowired
+    TokenService tokenService;
 
     /**
      * 璺冲埌棣栭〉
@@ -36,7 +46,7 @@
     public ModelAndView toIndex(ModelAndView mv) {
         mv.setViewName("index");
 
-        User user = (User) SecurityUtils.getSubject().getPrincipal();
+        User user = null;
         if (user != null) {
             mv.addObject("msg", "Hello " + user.getLoginName() + " !");
         }
@@ -57,69 +67,54 @@
     }
 
     /**
-     * 璺冲埌鏈巿鏉冮〉闈�
-     *
-     * @return String
-     */
-    @GetMapping("/noauth")
-    public ModelAndView toNoAuth(ModelAndView mv) {
-        mv.setViewName("noauth");
-
-        return mv;
-    }
-
-    /**
-     * 鐢ㄤ簬娴嬭瘯璁颁綇鎴戝拰璁よ瘉鐨勫尯鍒�
-     *
-     * @return String
-     */
-    @GetMapping("/buy")
-    public String buy() {
-        Subject subject = SecurityUtils.getSubject();
-
-        // 鍙湁璁よ瘉鍚庢墠鑳借闂紝濡傛灉鍙槸璁颁綇鎴戝垯闇�瑕佸厛鐧诲綍
-        if (!subject.isAuthenticated()) {
-            return "redirect:/toLogin";
-        }
-
-        return "add";
-    }
-
-    /**
      * 鐧诲綍璁よ瘉
      *
      * @return String
      */
-    @GetMapping("/login")
-    public ModelAndView login(String username, String password, String service, Integer rememberMe) {
-        ModelAndView mv = new ModelAndView();
+    @PostMapping(value = "/login", produces = "application/json; charset=UTF-8")
+    public ResponseMsg<TokenEntity> login(@RequestBody UsersEntity user, HttpServletRequest req, HttpServletResponse res) {
         try {
-            Subject subject = SecurityUtils.getSubject();
-
-            // 鑾峰彇浠ょ墝
-            UsernamePasswordToken token = new UsernamePasswordToken(username, password);
-            if (rememberMe != null && rememberMe == 1) {
-                token.setRememberMe(true);
+            if (user == null) {
+                return fail("璇疯緭鍏ョ敤鎴峰悕鍜屽瘑鐮侊紒", null);
+            }
+            if (StringHelper.isEmpty(user.getUid())) {
+                return fail("鐢ㄦ埛鍚嶄笉鑳戒负绌猴紒", null);
+            }
+            if (StringHelper.isEmpty(user.getPwd())) {
+                return fail("瀵嗙爜涓嶈兘涓虹┖锛�", null);
             }
 
-            // 鐧诲綍璁よ瘉
-            subject.login(token);
-
-            mv.setViewName("index");
-            if (service != null && service.length() > 0) {
-                mv.addObject("url", service);
-            } else {
-                mv.addObject("msg", username);
+            UsersEntity ue = userService.selectByUid(user.getUid());
+            if (ue == null) {
+                return fail("鐢ㄦ埛鍚嶄笉瀛樺湪锛�", null);
             }
-        } catch (UnknownAccountException e) { // 杩斿洖null灏变細杩涘叆杩欓噷
-            mv.setViewName("login");
-            mv.addObject("msg", "鐢ㄦ埛鍚嶄笉瀛樺湪锛�");
-        } catch (IncorrectCredentialsException e) { // 瀵嗙爜閿欒灏变細杩涘叆杩欓噷
-            mv.setViewName("login");
-            mv.addObject("msg", "瀵嗙爜閿欒锛�");
+
+            LoginEntity le = loginService.getNewLogin(ue.getId(), req);
+            if (!user.getPwd().equals(ue.getPwd())) {
+                le.setStatus(0);
+                le.setDescr("瀵嗙爜閿欒");
+                loginService.insertLogin(le);
+                return fail("瀵嗙爜涓嶆纭紒", null);
+            }
+            le.setStatus(1);
+
+            Integer rows = loginService.insertLogin(le);
+            if (rows == 0) {
+                return fail("鍒涘缓鐧诲綍鏃ュ織澶辫触锛�", null);
+            }
+
+            TokenEntity te = tokenService.getNewToken(ue.getId(), req);
+            rows = tokenService.insertToken(te);
+            if (rows == 0) {
+                return fail("鍒涘缓浠ょ墝淇℃伅澶辫触锛�", null);
+            }
+
+            WebHelper.saveToken2Cookie(te.getToken(), req, res);
+
+            return success(te);
+        } catch (Exception ex) {
+            return fail(ex.getMessage(), null);
         }
-
-        return mv;
     }
 
     /**
@@ -129,41 +124,9 @@
      */
     @GetMapping("/logout")
     public ModelAndView logout() {
-        Subject subject = SecurityUtils.getSubject();
-        subject.logout();
-
         ModelAndView mv = new ModelAndView();
         mv.setViewName("login");
 
         return mv;
-    }
-
-    /**
-     * Ajax鐧诲綍
-     *
-     * @param userInfo
-     * @return
-     */
-    @PostMapping(value = "/ajaxLogin", produces = "application/json; charset=UTF-8")
-    public Result ajaxLogin(@RequestBody User userInfo) {
-        try {
-            Subject subject = SecurityUtils.getSubject();
-
-            UsernamePasswordToken token = new UsernamePasswordToken(userInfo.getLoginName(), userInfo.getPassword());
-            subject.login(token);
-
-            LoginInfo loginInfo = userService.getLoginInfo(userInfo.getLoginName());
-
-            return new Result(200, loginInfo != null ? "鐧诲綍鎴愬姛" : "鐧诲綍澶辫触", loginInfo);
-        } catch (IncorrectCredentialsException e) {
-            return new Result(500, "瀵嗙爜閿欒");
-        } catch (LockedAccountException e) {
-            return new Result(500, "鐧诲綍澶辫触锛岃鐢ㄦ埛宸茶鍐荤粨");
-        } catch (AuthenticationException e) {
-            return new Result(500, "璇ョ敤鎴蜂笉瀛樺湪");
-        } catch (Exception e) {
-            e.printStackTrace();
-            return new Result(500, e.getMessage());
-        }
     }
 }

--
Gitblit v1.9.3