自学内容网 自学内容网

新版OpenFeign springboot3.0

1.导入依赖

 <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

2.Feign接口


@FeignClient(name = "MainClient", url = "${main-client.url}", configuration = TokenFeign.class)
public interface CompanyMainClient {

   

3.Feign过滤器


import com.tigeriot.organization.global.token.service.TokenService;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.beans.factory.annotation.Autowired;

public class TokenFeign implements RequestInterceptor {

    @Autowired
    private TokenService tokenService;

    @Override
    public void apply(RequestTemplate requestTemplate) {
        String adminToken = tokenService.getAdminToken();
        requestTemplate.query("token",adminToken);
    }
}

4.全局Feign过滤器

@Configuration
public class FeignRequestInterceptor implements RequestInterceptor {


    @Override
    public void apply(RequestTemplate template) {

        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
        ServletRequestAttributes attr = (ServletRequestAttributes) requestAttributes;
        HttpServletRequest request = attr.getRequest();
        String authz = request.getHeader("Authorization");//网关传过来的 token
        template.header("Authorization", authz);
        template.header("x-auth-request-user", "99999999");
    }
}


原文地址:https://blog.csdn.net/qq_53374893/article/details/138190184

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!