NmmsInterceptor.java 2.0 KB
package com.sy.feign;

import feign.RequestInterceptor;
import feign.RequestTemplate;
import feign.Retryer;
import org.springframework.context.annotation.Bean;
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;

@Configuration
public class NmmsInterceptor  {

    @Bean
    public RequestInterceptor requestInterceptor() {
        return new RequestInterceptor() {
            @Override
            public void apply(RequestTemplate template) {
                //给新请求同步老请求的cookie
            template.header("Cookie", "username=admin;userid=1903e605-a2e1-404d-a1a6-a749752fb030;");
            System.out.println("我进入了远程feign");
            }

        };
    }



    public void apply(RequestTemplate requestTemplate) {

        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();//拿到当前的所有请求属性
        HttpServletRequest request = attributes.getRequest();//获取到当前请求
        if (request != null) {
            //同步请求头数据,cookie
            String cookie = request.getHeader("Cookie");
            //给新请求同步老请求的cookie
            requestTemplate.header("Cookie", "username=admin;userid=1903e605-a2e1-404d-a1a6-a749752fb030;");
            System.out.println("我进入了远程feign");
            return;
        }

        requestTemplate.header("Cookie",
                "username=admin;userid=1903e605-a2e1-404d-a1a6-a749752fb030;");

        requestTemplate.query("Cookie",
                "username=admin; Path=/;",
                "userid=1903e605-a2e1-404d-a1a6-a749752fb030; Path=/;");
//        requestTemplate.query("cookie",
//                "username=admin; Path=/;",
//                "userid=1903e605-a2e1-404d-a1a6-a749752fb030; Path=/;");
    }
}