【发布时间】:2014-04-16 13:46:09
【问题描述】:
我正在尝试使用org.restlet.routing.Redirector 创建一个透明的反向代理。
为了简单起见,假设我要做的就是重定向所有指向的 HTTP 请求
http://localhost:80
被分派到另一个不相关的 HTTP 服务器:
http://localhost:8080
我使用重定向器(MODE_SERVER_OUTBOUND 模式)编写了一个简单的反向代理,它实际上按预期工作,因为它可以正确分派请求并处理重定向。
但现在假设http://localhost:8080 的资源受摘要式身份验证机制的保护。
现在的问题是重定向器处理请求和响应中的标头被删除(来自文档WRT MODE_SERVER_OUTBOUND):
请注意,在这种模式下,HTTP 请求的标头存储在 请求的属性,在调度之前被删除。此外,当一个 HTTP 响应返回,标头也被删除。
这使得 Digest 身份验证机制无法使用。
我猜反向代理应该返回响应,就好像它本身就是源一样。
有什么方法可以保持标头完好无损,以便终端服务器 (http://localhost:8080) 和客户端之间可以通信,因为它们之间没有代理?
【问题讨论】:
-
这里是 Restlet 邮件列表中的相关讨论:restlet.tigris.org/ds/…
标签: java http-headers reverse-proxy restlet restlet-2.0