From 3fd1c135a7817010f17237263f4cc7793e783006 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期日, 08 十月 2023 11:22:18 +0800 Subject: [PATCH] 修改令牌管理接口:添加根据id或token设置令牌失效,根据id或token查询有效的令牌 --- src/main/java/com/moon/server/mapper/sys/TokenMapper.java | 10 +++ src/main/java/com/moon/server/service/sys/LoginService.java | 3 src/main/java/com/moon/server/controller/sys/TokenController.java | 114 ++++++++++++++++++++++++++++++------- src/main/java/com/moon/server/controller/all/SignController.java | 2 src/main/java/com/moon/server/service/sys/TokenService.java | 22 +++++-- src/main/resources/mapper/sys/TokenMapper.xml | 6 ++ 6 files changed, 125 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/moon/server/controller/all/SignController.java b/src/main/java/com/moon/server/controller/all/SignController.java index 9f4e9b5..08ec53b 100644 --- a/src/main/java/com/moon/server/controller/all/SignController.java +++ b/src/main/java/com/moon/server/controller/all/SignController.java @@ -177,7 +177,7 @@ try { String token = WebHelper.getToken(req); if (StringHelper.isEmpty(token)) { - return fail("娌℃湁妫�娴嬪埌浠ょ墝", false); + return fail("娌℃湁妫�娴嬪埌浠ょ墝鎴栨棤鏁�", false); } Boolean flag = tokenService.logout(token, req, res); diff --git a/src/main/java/com/moon/server/controller/sys/TokenController.java b/src/main/java/com/moon/server/controller/sys/TokenController.java index f92b3de..6aa8bec 100644 --- a/src/main/java/com/moon/server/controller/sys/TokenController.java +++ b/src/main/java/com/moon/server/controller/sys/TokenController.java @@ -5,6 +5,7 @@ import com.moon.server.entity.all.ResponseMsg; import com.moon.server.entity.sys.TokenEntity; import com.moon.server.entity.sys.UserEntity; +import com.moon.server.helper.StringHelper; import com.moon.server.service.sys.TokenService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -76,29 +77,6 @@ } @SysLog() - @ApiOperation(value = "鎻掑叆澶氭潯") - @ApiImplicitParams({ - @ApiImplicitParam(name = "list", value = "瀹炰綋绫婚泦鍚�", dataType = "List<TokenEntity>", paramType = "body", example = "") - }) - @PostMapping(value = "/insertTokens", produces = "application/json; charset=UTF-8") - public ResponseMsg<Integer> insertTokens(@RequestBody List<TokenEntity> list, HttpServletRequest req) { - try { - UserEntity ue = tokenService.getCurrentUser(req); - if (ue != null) { - for (TokenEntity entity : list) { - entity.setCreateUser(ue.getId()); - } - } - - int count = tokenService.insertTokens(list); - - return success(count); - } catch (Exception ex) { - return fail(ex, -1); - } - } - - @SysLog() @ApiOperation(value = "鍒犻櫎涓�鏉�") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "ID", dataType = "Integer", paramType = "query", example = "1") @@ -155,6 +133,58 @@ } @SysLog() + @ApiOperation(value = "鏍规嵁ID鏇存柊浠ょ墝涓哄け鏁�") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "浠ょ墝ID", dataType = "Integer", paramType = "query", example = "6563") + }) + @GetMapping(value = "/updateExpireById") + public ResponseMsg<Integer> updateExpireById(Integer id, HttpServletRequest req) { + try { + if (null == id || id < 0) { + return fail("id鍙傛暟鏃犳晥", 0); + } + TokenEntity entity = tokenService.selectOneById(id); + if (null == entity) { + return fail("璇d涓嶅瓨鍦�", 0); + } + + UserEntity ue = tokenService.getCurrentUser(req); + entity.setUpdateUser(ue.getId()); + int count = tokenService.updateTokenExpire(entity); + + return success(count); + } catch (Exception ex) { + return fail(ex, -1); + } + } + + @SysLog() + @ApiOperation(value = "鏍规嵁Token鏇存柊浠ょ墝涓哄け鏁�") + @ApiImplicitParams({ + @ApiImplicitParam(name = "tk", value = "浠ょ墝", dataType = "String", paramType = "query", example = "2edea2a2-e307-4baa-992c-b477ce0566dd") + }) + @GetMapping(value = "/updateExpireByToken") + public ResponseMsg<Integer> updateExpireByToken(String tk, HttpServletRequest req) { + try { + if (StringHelper.isEmpty(tk)) { + return fail("token鍙傛暟鏃犳晥", 0); + } + TokenEntity entity = tokenService.selectOneByToken(tk); + if (null == entity) { + return fail("璇oken涓嶅瓨鍦ㄦ垨宸插け鏁�", 0); + } + + UserEntity ue = tokenService.getCurrentUser(req); + entity.setUpdateUser(ue.getId()); + int count = tokenService.updateTokenExpire(entity); + + return success(count); + } catch (Exception ex) { + return fail(ex, -1); + } + } + + @SysLog() @ApiOperation(value = "鏍规嵁ID鏌ヨ") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "ID", dataType = "Integer", paramType = "query", example = "1658") @@ -169,4 +199,42 @@ return fail(ex, null); } } + + @SysLog() + @ApiOperation(value = "鏍规嵁ID鏌ヨ(鏈夋晥鏈熷唴鐨�)") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "ID", dataType = "Integer", paramType = "query", example = "6563") + }) + @GetMapping(value = "/selectOneById") + public ResponseMsg<TokenEntity> selectOneById(Integer id) { + try { + if (null == id || id < 0) { + return fail("id鍙傛暟鏃犳晥", null); + } + TokenEntity tokenEntity = tokenService.selectOneById(id); + + return success(tokenEntity); + } catch (Exception ex) { + return fail(ex, null); + } + } + + @SysLog() + @ApiOperation(value = "鏍规嵁token鏌ヨ(鏈夋晥鏈熷唴鐨�)") + @ApiImplicitParams({ + @ApiImplicitParam(name = "tk", value = "浠ょ墝", dataType = "String", paramType = "query", example = "2edea2a2-e307-4baa-992c-b477ce0566dd") + }) + @GetMapping(value = "/selectOneByToken") + public ResponseMsg<TokenEntity> selectOneByToken(String tk) { + try { + if (StringHelper.isEmpty(tk)) { + return fail("token鍙傛暟鏃犳晥", null); + } + TokenEntity tokenEntity = tokenService.selectOneByToken(tk); + + return success(tokenEntity); + } catch (Exception ex) { + return fail(ex, null); + } + } } diff --git a/src/main/java/com/moon/server/mapper/sys/TokenMapper.java b/src/main/java/com/moon/server/mapper/sys/TokenMapper.java index 69bc776..74657da 100644 --- a/src/main/java/com/moon/server/mapper/sys/TokenMapper.java +++ b/src/main/java/com/moon/server/mapper/sys/TokenMapper.java @@ -44,7 +44,15 @@ public TokenEntity selectToken(int id); /** - * 鏍规嵁token鍊兼煡璇竴鏉¤褰� + * 鏍规嵁id鏌ヨ涓�鏉¤褰� + * + * @param id + * @return + */ + public TokenEntity selectOneById(Integer id); + + /** + * 鏍规嵁token鏌ヨ涓�鏉¤褰� * * @param token * @return diff --git a/src/main/java/com/moon/server/service/sys/LoginService.java b/src/main/java/com/moon/server/service/sys/LoginService.java index 176b98d..c0cfe73 100644 --- a/src/main/java/com/moon/server/service/sys/LoginService.java +++ b/src/main/java/com/moon/server/service/sys/LoginService.java @@ -87,10 +87,11 @@ /** * 鐢ㄦ埛鐧诲綍鐘舵�� + * * @return */ @Override - public List<LoginEntity> selectLoginCounts(){ + public List<LoginEntity> selectLoginCounts() { return loginMapper.selectLoginCounts(); } } diff --git a/src/main/java/com/moon/server/service/sys/TokenService.java b/src/main/java/com/moon/server/service/sys/TokenService.java index 44cdf3d..99d6378 100644 --- a/src/main/java/com/moon/server/service/sys/TokenService.java +++ b/src/main/java/com/moon/server/service/sys/TokenService.java @@ -58,6 +58,11 @@ } @Override + public TokenEntity selectOneById(Integer id) { + return tokenMapper.selectOneById(id); + } + + @Override public TokenEntity selectOneByToken(String token) { return tokenMapper.selectOneByToken(token); } @@ -94,6 +99,7 @@ @Override public Integer updateTokenExpire(TokenEntity tokenEntity) { + clearCache(tokenEntity.getToken()); return tokenMapper.updateTokenExpire(tokenEntity); } @@ -156,12 +162,6 @@ return false; } - // 娓呴櫎缂撳瓨 - String tokenKey = RedisCacheKey.signTokenKey(token); - redisService.delete(tokenKey); - String userKey = RedisCacheKey.signUserKey(te.getToken()); - redisService.delete(userKey); - // db锛岃缃护鐗岃繃鏈� te.setUpdateUser(ue.getId()); Integer rows = updateTokenExpire(te); @@ -177,6 +177,16 @@ } /** + * 娓呴櫎缂撳瓨 + */ + public void clearCache(String token) { + String tokenKey = RedisCacheKey.signTokenKey(token); + redisService.delete(tokenKey); + String userKey = RedisCacheKey.signUserKey(token); + redisService.delete(userKey); + } + + /** * 鏍规嵁浠ょ墝鑾峰彇瀹炰綋 */ public TokenEntity getEntityByToken(String token) { diff --git a/src/main/resources/mapper/sys/TokenMapper.xml b/src/main/resources/mapper/sys/TokenMapper.xml index 2a89c58..8de9510 100644 --- a/src/main/resources/mapper/sys/TokenMapper.xml +++ b/src/main/resources/mapper/sys/TokenMapper.xml @@ -47,6 +47,12 @@ where id = #{id} </select> + <select id="selectOneById" resultType="com.moon.server.entity.sys.TokenEntity"> + select a.*, fn_uname(create_user) createName, fn_uname(update_user) updateName + from lf.sys_token a + where id = #{id} and expire > now() limit 1 + </select> + <select id="selectOneByToken" resultType="com.moon.server.entity.sys.TokenEntity"> select a.*, fn_uname(create_user) createName, fn_uname(update_user) updateName from lf.sys_token a -- Gitblit v1.9.3