Browse Source

添加feign转发header参数拦截器

dev
liuchuang 6 years ago
parent
commit
63019731da
  1. 30
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/config/FeignRequestInterceptor.java
  2. 4
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/WorkIssueFeignClient.java
  3. 6
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/WorkItemFeignClient.java
  4. 1
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml

30
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/config/FeignRequestInterceptor.java

@ -0,0 +1,30 @@
package com.elink.esua.epdc.config;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
/**
*
* feign转发header参数
*
* @Authorliuchuang
* @Date2019/11/26 16:29
*/
@Configuration
public class FeignRequestInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate template) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
template.header(Constant.USER_KEY, request.getHeader(Constant.USER_KEY));
}
}

4
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/WorkIssueFeignClient.java

@ -2,6 +2,7 @@ package com.elink.esua.epdc.feign;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.config.FeignRequestInterceptor;
import com.elink.esua.epdc.dto.category.EventCategoryDTO; import com.elink.esua.epdc.dto.category.EventCategoryDTO;
import com.elink.esua.epdc.dto.comment.form.WorkCommentReplyFormDTO; import com.elink.esua.epdc.dto.comment.form.WorkCommentReplyFormDTO;
import com.elink.esua.epdc.dto.comment.result.WorkEventsCommentsDTO; import com.elink.esua.epdc.dto.comment.result.WorkEventsCommentsDTO;
@ -15,12 +16,11 @@ import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List; import java.util.List;
@FeignClient(name = ServiceConstant.EPDC_EVENTS_SERVER, fallback = WorkIssueFeignClientFallback.class) @FeignClient(name = ServiceConstant.EPDC_EVENTS_SERVER, fallback = WorkIssueFeignClientFallback.class, configuration = FeignRequestInterceptor.class)
public interface WorkIssueFeignClient { public interface WorkIssueFeignClient {
/** /**

6
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/WorkItemFeignClient.java

@ -2,17 +2,15 @@ package com.elink.esua.epdc.feign;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.SysDeptDTO; import com.elink.esua.epdc.config.FeignRequestInterceptor;
import com.elink.esua.epdc.dto.item.ItemEvaluateDeptDTO; import com.elink.esua.epdc.dto.item.ItemEvaluateDeptDTO;
import com.elink.esua.epdc.dto.item.form.*; import com.elink.esua.epdc.dto.item.form.*;
import com.elink.esua.epdc.dto.item.result.*; import com.elink.esua.epdc.dto.item.result.*;
import com.elink.esua.epdc.feign.fallback.ItemFeignClientFallback;
import com.elink.esua.epdc.feign.fallback.WorkItemFeignClientFallback; import com.elink.esua.epdc.feign.fallback.WorkItemFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import java.util.List; import java.util.List;
@ -21,7 +19,7 @@ import java.util.List;
* @Author LPF * @Author LPF
* @Date 2019/11/18 16:39 * @Date 2019/11/18 16:39
*/ */
@FeignClient(name = ServiceConstant.EPDC_EVENTS_SERVER, fallback = WorkItemFeignClientFallback.class) @FeignClient(name = ServiceConstant.EPDC_EVENTS_SERVER, fallback = WorkItemFeignClientFallback.class, configuration = FeignRequestInterceptor.class)
public interface WorkItemFeignClient { public interface WorkItemFeignClient {

1
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml

@ -58,6 +58,7 @@ hystrix:
default: default:
execution: execution:
isolation: isolation:
strategy: SEMAPHORE
thread: thread:
timeoutInMilliseconds: 60000 #缺省为1000 timeoutInMilliseconds: 60000 #缺省为1000

Loading…
Cancel
Save