記一下用feignclient進行服務間調用的問題

業務上需要用到模塊間調用,然後由於鑑權原因不能直接訪問,

去網上搜了方法,配置攔截,傳遞token,問題解決

 

@Configuration
public class FeignRequestInterceptor implements RequestInterceptor {
        private static final String AUTHORIZATION_HEADER = "authorization";

    @Override
        public void apply(RequestTemplate template) {
            Map<String,String> headMap=getHeaders(getHttpServletRequest());
            template.header(AUTHORIZATION_HEADER, headMap.get(AUTHORIZATION_HEADER));
        }
        private HttpServletRequest getHttpServletRequest() {
            try {
                return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
            } catch (Exception e) {
                return null;
            }
        }
        private Map<String, String> getHeaders(HttpServletRequest request) {
            Map<String, String> map = new LinkedHashMap<>();
            Enumeration<String> enumeration = request.getHeaderNames();
            while (enumeration.hasMoreElements()) {
                String key = enumeration.nextElement();
                String value = request.getHeader(key);
                map.put(key, value);
            }
            return map;
        }

}

然後碰上了 read time out的錯誤

再加上下面這個,問題解決

feign:
  client:
    config:
      default:
        connectTimeout: 50000
        readTimeout: 50000
        loggerLevel: basic

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章