如何在 Feign 客户端中发送 'Origin' 标头

问题描述 投票:0回答:2

我对 Spring Cloud Feign 很陌生,正在尝试发送服务提供商所需的 HTTP 标头。这是代码片段

@FeignClient(name = "authentication", url = "http://localhost:3000/api")
public interface AuthenticationService {
    @PostMapping(value = "/login")
    JsonNode login(@RequestHeader("Origin") String origin, @RequestBody LoginParams parameters);
}

当我尝试发送

Origin
标头时,服务器不会收到此标头。但其他标头(例如
referer
x-access-token
)已在服务器上成功接收。

我也尝试过使用

RequestInterceptor
但未能成功发送
Origin
作为标题。

@Component
public class HeaderInterceptor implements RequestInterceptor {

    @Override
    public void apply(RequestTemplate requestTemplate) {
        requestTemplate.removeHeader("origin");
        requestTemplate.header("origin", "http://amjad.localhost:3000/");
    }
}

任何提示或帮助将不胜感激。

干杯!

http-headers spring-cloud-feign
2个回答
0
投票

我对 OpenFeign 也有类似的问题。 “Origin”标头默认被阻止,因为它使用旧的 Java http 客户端。

更改为OkHttp Client后,发送了“Origin”。


0
投票

有关 JDK HttpClient 解决方案的详细答案可以在 Setting "Origin" and "Access-Control-Request-Method" headers with Jersey Client

找到
© www.soinside.com 2019 - 2024. All rights reserved.