审查视图

src/main/java/com/sy/feign/NmmsInterceptor.java 2.2 KB
1 2 3 4
package com.sy.feign;

import feign.RequestInterceptor;
import feign.RequestTemplate;
5
import feign.Retryer;
6 7 8 9 10 11 12 13 14 15
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  {
16 17 18 19 20 21 22 23 24 25 26

    /**
     * 设置feign重试次数
     * @return
     */
    @Bean
    public Retryer feignRetryer() {
        // 设置最大重试次数为3次
        return new Retryer.Default(1000, 5000, 3);
    }
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
    @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=/;");
    }
}