From feb2aa8ffcc3b6d6f7b5acfa7d3c21a8df4d6986 Mon Sep 17 00:00:00 2001 From: twelvet <2471835953@qq.com> Date: Mon, 7 Nov 2022 09:36:43 +0000 Subject: [PATCH] =?UTF-8?q?=E5=85=BC=E5=AE=B9SpringQueryMap=EF=BC=8C?= =?UTF-8?q?=E7=A7=BB=E9=99=A4params?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: twelvet <2471835953@qq.com> --- .../feign/FeignRequestInterceptor.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/FeignRequestInterceptor.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/FeignRequestInterceptor.java index e8b6c73a..ccb57ae0 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/FeignRequestInterceptor.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/feign/FeignRequestInterceptor.java @@ -1,7 +1,12 @@ package com.ruoyi.common.security.feign; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import java.util.Collection; import java.util.Map; import javax.servlet.http.HttpServletRequest; + +import com.ruoyi.common.core.exception.base.BaseException; import org.springframework.stereotype.Component; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.utils.ServletUtils; @@ -22,6 +27,23 @@ public class FeignRequestInterceptor implements RequestInterceptor public void apply(RequestTemplate requestTemplate) { HttpServletRequest httpServletRequest = ServletUtils.getRequest(); + + // 兼容SpringQueryMap,移除params + Map> queries = requestTemplate.queries(); + Collection params = queries.get("params"); + if (params != null) { + for (String param : params) { + try { + String encode = URLDecoder.decode(param, "UTF-8"); + if (encode.equals("{}")) { + requestTemplate.query("params"); + } + } catch (UnsupportedEncodingException e) { + throw new BaseException("feign过滤字符失败"); + } + } + } + if (StringUtils.isNotNull(httpServletRequest)) { Map headers = ServletUtils.getHeaders(httpServletRequest);