From e3ebf5df5f34d6bf1a5a6adeb5d9365242cf0764 Mon Sep 17 00:00:00 2001 From: root <13910913995@163.com> Date: Mon, 26 May 2025 16:42:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86token=E7=9A=84refres?= =?UTF-8?q?h=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../login/SubstituleLoginServer.java | 19 ++++++++++++++++--- .../io/gisbi/auth/filter/TokenFilter.java | 6 +++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/core/core-backend/src/main/java/io/gisbi/substitute/permissions/login/SubstituleLoginServer.java b/core/core-backend/src/main/java/io/gisbi/substitute/permissions/login/SubstituleLoginServer.java index 25c5b6c..93e8871 100644 --- a/core/core-backend/src/main/java/io/gisbi/substitute/permissions/login/SubstituleLoginServer.java +++ b/core/core-backend/src/main/java/io/gisbi/substitute/permissions/login/SubstituleLoginServer.java @@ -9,9 +9,7 @@ import io.gisbi.auth.config.SubstituleLoginConfig; import io.gisbi.auth.vo.TokenVO; import io.gisbi.exception.DEException; import io.gisbi.i18n.Translator; -import io.gisbi.utils.LogUtil; -import io.gisbi.utils.Md5Utils; -import io.gisbi.utils.RsaUtils; +import io.gisbi.utils.*; import org.apache.commons.lang3.StringUtils; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.stereotype.Component; @@ -47,6 +45,21 @@ public class SubstituleLoginServer { return generate(tokenUserBO, md5Pwd); } + @GetMapping("/login/refresh") + public TokenVO refresh() { + // 从请求头中获取现有的 token + String oldToken = ServletUtils.getToken(); + + if (StringUtils.isBlank(oldToken)) { + DEException.throwException("token为空!"); + } + // 解析旧 token 获取用户信息 + TokenUserBO userBO = TokenUtils.validate(oldToken); + + // 生成新的 token + String secret = SubstituleLoginConfig.getPwd(); // 获取密钥 + return generate(userBO, secret); + } @GetMapping("/logout") public void logout() { diff --git a/sdk/common/src/main/java/io/gisbi/auth/filter/TokenFilter.java b/sdk/common/src/main/java/io/gisbi/auth/filter/TokenFilter.java index df9c254..f354926 100644 --- a/sdk/common/src/main/java/io/gisbi/auth/filter/TokenFilter.java +++ b/sdk/common/src/main/java/io/gisbi/auth/filter/TokenFilter.java @@ -80,9 +80,9 @@ public class TokenFilter implements Filter { filterChain.doFilter(servletRequest, servletResponse); return; } -// String token = ServletUtils.getToken(); -// TokenUserBO userBO = TokenUtils.validate(token); -// UserUtils.setUserInfo(userBO); + String token = ServletUtils.getToken(); + TokenUserBO userBO = TokenUtils.validate(token); + UserUtils.setUserInfo(userBO); filterChain.doFilter(servletRequest, servletResponse); } catch (Exception e) { throw e;