偽の透明な送信要求ファーストクラス

偽の透明な送信要求ファーストクラス

Feignインターフェイス転送を使用する場合、要求ヘッダーを直接送信する必要がある場合があります。

Feign構成を追加します

@Configuration
public class FeignServerAuthConfig {
    
    
    @Bean
    public RequestInterceptor requestInterceptor(){
    
    
        return new FeignMyRequestInterceptor();
    }
    @Autowired
    private ObjectFactory<HttpMessageConverters> messageConverters;

    @Bean
    public Encoder feignFormEncoder() {
    
    
        return new FormEncoder(new SpringEncoder(messageConverters));
    }
}

Feignインターセプターを追加する

public class FeignMyRequestInterceptor implements RequestInterceptor {
    
    

    @Override
    public void apply(RequestTemplate requestTemplate) {
    
    
        // 获取当前请求Spring信息
        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        // 获取请求体
        HttpServletRequest request = attributes.getRequest();
        // 获取Header、或参数等
        String token = request.getHeader("x-token");
        // 注入Feign请求体
        requestTemplate.header("x-token", token);
    }
}

おすすめ

転載: blog.csdn.net/LitongZero/article/details/107468589