【问题标题】:Transparent reverse proxying using org.restlet.routing.Redirector使用 org.restlet.routing.Redirector 的透明反向代理
【发布时间】: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) 和客户端之间可以通信,因为它们之间没有代理?

【问题讨论】:

标签: java http-headers reverse-proxy restlet restlet-2.0


【解决方案1】:

感谢 Arjohn(请参阅 Restlet mailing list 中的相关讨论)找到了解决方案:

我们现在已经从 restlet 2.1.4 更新到 2.2.0,令我们惊讶的是 修复了重定向器问题。事实上,Redirector 完美运行 开箱即用,包括摘要式身份验证。没有子类化 必需的。所以这可能是 2.1.4 中已修复的错误 在 2.2 开发中的某个地方。

【讨论】:

    猜你喜欢
    • 2012-05-31
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 2013-01-28
    • 2010-12-25
    • 1970-01-01
    相关资源
    最近更新 更多