Pārlūkot izejas kodu

Feign 调用传递Header参数时传递了Content-Length

marxjaw 5 mēneši atpakaļ
vecāks
revīzija
ecd3c7431d

+ 3 - 0
yt-agent/agent-service/src/main/java/com/ytpm/config/feign/FeignConfiguration.java

@@ -26,6 +26,9 @@ public class FeignConfiguration implements RequestInterceptor {
             while (headerNames.hasMoreElements()) {
                 String name = headerNames.nextElement();
                 String values = request.getHeader(name);
+                if ("content-length".equalsIgnoreCase(name)) {
+                    continue;
+                }
                 requestTemplate.header(name, values);
             }
         }

+ 1 - 0
yt-common/src/main/java/com/ytpm/general/RepMessage.java

@@ -22,4 +22,5 @@ public class RepMessage {
     public static final String USER_STATUS_MODIFY = "用户状态已改变";
     public static final String ALREADY_RISK_USER = "用户已被风控";
     public static final String RELATIVE_APP_SUCCESS = "关联应用成功";
+    public static final String SERVICE_UNAVAILABLE = "服务暂时不可用,请稍后重试";
 }

+ 2 - 3
yt-risk/risk-feign/src/main/java/com/ytpm/feign/RiskFeign.java

@@ -1,6 +1,7 @@
 package com.ytpm.feign;
 
 import com.ytpm.agent.view.AgentUserInfo;
+import com.ytpm.feign.fallback.RiskFeignFallBack;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 import com.ytpm.risk.param.*;
@@ -8,15 +9,13 @@ import com.ytpm.risk.view.RiskBannedListView;
 import com.ytpm.risk.view.RiskConfigListView;
 import com.ytpm.risk.view.RiskConfigView;
 import com.ytpm.risk.view.RiskDeblockingListView;
-import io.swagger.annotations.ApiOperation;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.security.core.annotation.AuthenticationPrincipal;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
-@FeignClient(name = "risk-manage")
+@FeignClient(name = "risk-manage", fallback = RiskFeignFallBack.class)
 public interface RiskFeign {
 
     @GetMapping("/riskManage/forbidLogin")

+ 63 - 0
yt-risk/risk-feign/src/main/java/com/ytpm/feign/fallback/RiskFeignFallBack.java

@@ -0,0 +1,63 @@
+package com.ytpm.feign.fallback;
+
+import com.ytpm.feign.RiskFeign;
+import com.ytpm.general.RepMessage;
+import com.ytpm.general.Result;
+import com.ytpm.general.ResultTable;
+import com.ytpm.general.StatusCode;
+import com.ytpm.risk.param.*;
+import com.ytpm.risk.view.RiskBannedListView;
+import com.ytpm.risk.view.RiskConfigListView;
+import com.ytpm.risk.view.RiskConfigView;
+import com.ytpm.risk.view.RiskDeblockingListView;
+import org.springframework.stereotype.Component;
+
+import javax.xml.ws.Response;
+
+@Component
+public class RiskFeignFallBack implements RiskFeign {
+    @Override
+    public Result<?> lockUser(String userId) {
+        return Result.resultErr(RepMessage.SERVICE_UNAVAILABLE);
+    }
+
+    @Override
+    public Result<?> banned(RiskBannedParam param) {
+        return Result.resultErr(RepMessage.SERVICE_UNAVAILABLE);
+    }
+
+    @Override
+    public ResultTable<RiskConfigListView> getConfigList(RiskConfigParam param) {
+        return ResultTable.resultFail(StatusCode.ERROR,RepMessage.SERVICE_UNAVAILABLE);
+    }
+
+    @Override
+    public ResultTable<RiskBannedListView> bannedList(RiskBannedListParam param) {
+        return ResultTable.resultFail(StatusCode.ERROR,RepMessage.SERVICE_UNAVAILABLE);
+    }
+
+    @Override
+    public ResultTable<RiskDeblockingListView> deblockingList(RiskDeblockingListParam param) {
+        return ResultTable.resultFail(StatusCode.ERROR,RepMessage.SERVICE_UNAVAILABLE);
+    }
+
+    @Override
+    public Result<?> changeUserStatus(RiskUserStatusParam param) {
+        return Result.resultErr(RepMessage.SERVICE_UNAVAILABLE);
+    }
+
+    @Override
+    public Result<?> relativeApp(RiskRelativeAppParam param) {
+        return Result.resultErr(RepMessage.SERVICE_UNAVAILABLE);
+    }
+
+    @Override
+    public Result<?> saveConfig(RiskConfigParam param) {
+        return Result.resultErr(RepMessage.SERVICE_UNAVAILABLE);
+    }
+
+    @Override
+    public ResultTable<RiskConfigView> getRiskConfig() {
+        return ResultTable.resultFail(StatusCode.ERROR,RepMessage.SERVICE_UNAVAILABLE);
+    }
+}

+ 3 - 0
yt-risk/risk-manage/src/main/java/com/ytpm/config/feign/FeignConfiguration.java

@@ -26,6 +26,9 @@ public class FeignConfiguration implements RequestInterceptor {
             while (headerNames.hasMoreElements()) {
                 String name = headerNames.nextElement();
                 String values = request.getHeader(name);
+                if ("content-length".equalsIgnoreCase(name)) {
+                    continue;
+                }
                 requestTemplate.header(name, values);
             }
         }