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.utils.Result;
import com.elink.esua.epdc.config.FeignRequestInterceptor;
import com.elink.esua.epdc.dto.category.EventCategoryDTO;
import com.elink.esua.epdc.dto.comment.form.WorkCommentReplyFormDTO;
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.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
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 {
/**

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.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.form.*;
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 org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import java.util.List;
@ -21,7 +19,7 @@ import java.util.List;
* @Author LPF
* @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 {

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

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

Loading…
Cancel
Save