使用ResponseBuilder在位置标头中强制相对URI

时间:2019-02-06 10:06:24

标签: java

我正在使用ResponseBuilder类使用发送重定向响应

responseBuilder.header("Location", "/foo");

我的问题是URI解析为绝对URI。根据文档:

如果提供了相对URI,则将通过相对于应用程序的基本URI解析相对URI来将其转换为绝对URI(请参见UriInfo.getBaseUri())。如果为null,则将删除任何现有的位置值。

因为我的服务在反向代理后面运行,所以位置值的主机名错误。返回位置标头时,有什么方法可以强制相对URI?

1 个答案:

答案 0 :(得分:1)

您可以使用X-Forwarded-ForX-Forwarded-Host在负载均衡器或反向代理后面指定原始客户端或主机。

  

反向代理的主机名和端口(负载均衡器,CDN)可能与处理请求的原始服务器不同,在这种情况下,X-Forwarded-Host标头可用于确定最初使用的主机。

来自Mozilla HTTP Headers documentation