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