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);