diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SecurityUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SecurityUtils.java index 3c5bf20..36eb90c 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SecurityUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/SecurityUtils.java @@ -1,10 +1,15 @@ package com.ruoyi.common.core.utils; import javax.servlet.http.HttpServletRequest; + +import com.ruoyi.common.core.exception.BaseException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.text.Convert; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; + /** * 权限获取工具类 * @@ -17,7 +22,13 @@ public class SecurityUtils */ public static String getUsername() { - return ServletUtils.getRequest().getHeader(CacheConstants.DETAILS_USERNAME); + String username = ""; + try { + username = URLDecoder.decode(ServletUtils.getRequest().getHeader(CacheConstants.DETAILS_USERNAME), "UTF-8"); + } catch (UnsupportedEncodingException e) { + throw new BaseException("获取username失败"); + } + return username; } /** diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java index 36c72d6..fa5519a 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java @@ -24,6 +24,8 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.gateway.config.properties.IgnoreWhiteProperties; import reactor.core.publisher.Mono; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; /** * 网关鉴权 @@ -68,7 +70,7 @@ public class AuthFilter implements GlobalFilter, Ordered } JSONObject obj = JSONObject.parseObject(userStr); String userid = obj.getString("userid"); - String username = obj.getString("username"); + String username = urlEncode(obj.getString("username")); if (StringUtils.isBlank(userid) || StringUtils.isBlank(username)) { return setUnauthorizedResponse(exchange, "令牌验证失败"); @@ -104,6 +106,18 @@ public class AuthFilter implements GlobalFilter, Ordered } /** + * 编码 + */ + private String urlEncode(String value) { + try { + value = URLEncoder.encode(value, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return value; + } + + /** * 获取请求token */ private String getToken(ServerHttpRequest request)