我正在尝试使用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
)和客户端可以进行通信,因为它们之间没有代理?
答案 0 :(得分:0)
感谢Arjohn(参见Restlet mailing list中的相关讨论),找到了解决方案:
我们现在已从restlet 2.1.4更新到2.2.0,令我们意外 修复了重定向器问题。事实上,重定向器工作得很好 开箱即用,包括摘要认证。没有子类化 需要。所以这可能是2.1.4中已修复的错误 2.2开发中的某个地方。