src/main/java/com/lf/server/controller/sys/SignController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/entity/sys/RedisCacheKey.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/service/data/TokenService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/sys/UserMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/lf/server/controller/sys/SignController.java
@@ -40,9 +40,13 @@ * @return String */ @GetMapping({"/", "/toIndex"}) public ModelAndView toIndex(ModelAndView mv) { public ModelAndView toIndex(ModelAndView mv, HttpServletRequest req) { mv.setViewName("index"); mv.addObject("msg", "Hello " + " !"); UsersEntity ue = tokenService.getCurrentUser(req); if (ue != null) { mv.addObject("msg", "Hello " + ue.getUname() + " !"); } return mv; } @@ -102,9 +106,57 @@ return fail("å建令çä¿¡æ¯å¤±è´¥ï¼", null); } WebHelper.saveToken2Cookie(te.getToken(), req, res); tokenService.saveToken(ue, te, req, res); return success(te); } catch (Exception ex) { return fail(ex.getMessage(), null); } } /** * ç»åº * * @param req * @param res * @return */ @GetMapping(value = "/logout") public ResponseMsg<Object> logout(HttpServletRequest req, HttpServletResponse res) { try { String token = WebHelper.getToken(req); if (StringHelper.isEmpty(token)) { return fail("æ²¡ææ£æµå°ä»¤ç", null); } //... Boolean flag = tokenService.isLogin(req, res); return success(flag ? "ç¨æ·å·²ç»å½" : "ç¨æ·æªç»å½", flag); } catch (Exception ex) { return fail(ex.getMessage(), null); } } /** * æ£æ¥ä»¤ç * * @param req * @param res * @return */ @GetMapping(value = "/check") public ResponseMsg<Object> check(HttpServletRequest req, HttpServletResponse res) { try { String token = WebHelper.getToken(req); if (StringHelper.isEmpty(token)) { return fail("æ²¡ææ£æµå°ä»¤ç", null); } //... Boolean flag = tokenService.isLogin(req, res); return success(flag ? "ç¨æ·å·²ç»å½" : "ç¨æ·æªç»å½", flag); } catch (Exception ex) { return fail(ex.getMessage(), null); } @@ -115,7 +167,7 @@ * * @return ResponseMsg<String> */ @GetMapping("/islogin") @GetMapping("/isLogin") public ResponseMsg<Boolean> isLogin(HttpServletRequest req, HttpServletResponse res) { try { Boolean flag = tokenService.isLogin(req, res); src/main/java/com/lf/server/entity/sys/RedisCacheKey.java
@@ -11,7 +11,11 @@ * @param key * @return */ public static String ssoKey(String key) { public static String signTokenKey(String key) { return "sign:token:" + key; } public static String signUserKey(String key) { return "sign:user:" + key; } } src/main/java/com/lf/server/service/data/TokenService.java
@@ -1,7 +1,7 @@ package com.lf.server.service.data; 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.RedisCacheKey; import com.lf.server.helper.StringHelper; import com.lf.server.helper.WebHelper; @@ -13,6 +13,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.concurrent.TimeUnit; /** * 令ç表 @@ -73,6 +74,13 @@ return tokenMapper.selectTokenAll(); } /** * è·åæ°ç令çå®ä½ç±» * * @param userid * @param req * @return */ public TokenEntity getNewToken(int userid, HttpServletRequest req) { int duration = 240; @@ -88,6 +96,13 @@ return te; } /** * æ¯å¦ç»å½ * * @param req * @param res * @return */ public Boolean isLogin(HttpServletRequest req, HttpServletResponse res) { String token = WebHelper.getToken(req); if (StringHelper.isNull(token)) { @@ -95,10 +110,69 @@ } // redis if (redisService.hasKey(RedisCacheKey.ssoKey(token))) { if (redisService.hasKey(RedisCacheKey.signTokenKey(token))) { return true; } return false; } /** * æ ¹æ®ä»¤çè·åå®ä½ * * @param token * @return */ public TokenEntity getEntityByToken(String token) { if (StringHelper.isNull(token)) { return null; } String key = RedisCacheKey.signTokenKey(token); Object obj = redisService.get(key); if (obj != null && obj instanceof TokenEntity) { return (TokenEntity) obj; } return null; } /** * ä¿åtoken * * @param te * @param req * @param res */ public void saveToken(UsersEntity ue, TokenEntity te, HttpServletRequest req, HttpServletResponse res) { // ä¿åè³Cookie WebHelper.saveToken2Cookie(te.getToken(), req, res); // 令çä¿åè³Redis String tokenKey = RedisCacheKey.signTokenKey(te.getToken()); redisService.put(tokenKey, te, te.getDuration(), TimeUnit.MINUTES); String userKey = RedisCacheKey.signUserKey(te.getToken()); redisService.put(userKey, ue, te.getDuration(), TimeUnit.MINUTES); } /** * è·åå½åç¨æ· * @param req * @return */ public UsersEntity getCurrentUser(HttpServletRequest req) { String token = WebHelper.getToken(req); if (StringHelper.isEmpty(token)) { return null; } String userKey = RedisCacheKey.signUserKey(token); Object obj = redisService.get(userKey); if (obj != null && obj instanceof UsersEntity) { return (UsersEntity) obj; } return null; } } src/main/resources/mapper/sys/UserMapper.xml
ÎļþÒÑɾ³ý