使用org.restlet.routing.Redirector进行透明反向代理



我正在尝试使用org.restlet.routing.Redirector创建一个透明的反向代理。

为了简单起见,我只想重定向所有指向的HTTP请求

http://localhost:80

发送到另一个无关的HTTP服务器:

http://localhost:8080

我已经使用Redirector(MODE_SERVER_OUTBOUND模式)编写了一个简单的反向代理,它实际上可以正常工作,因为它可以正确地调度请求,还可以处理重定向。

但现在让我们假设http://localhost:8080上的资源使用Digest身份验证机制进行保护。

现在的问题是,重定向器处理请求和响应时,请求和响应中的头被删除(从文档WRT MODE_SERVER_OUTBOUND):

请注意,在这种模式下,存储在请求的属性在调度之前被删除。此外,当HTTP响应返回,标头也被删除。

这使得摘要式认证机制不可用。

我想反向代理应该返回响应,就好像它本身就是原点一样。

是否有任何方法可以保持标头的完整性,以便最终服务器(http://localhost:8080)和客户端可以在没有代理的情况下进行通信?

感谢Arjohn(请参阅Restlet邮件列表中的相关讨论),找到了解决方案:

我们已经从restlet 2.1.4更新到了2.2.0,令我们惊讶的是已修复重定向程序问题。事实上,Redirector工作得很好开箱即用,包括摘要身份验证。无子类化必需。所以这可能是2.1.4中的一个错误,已经修复2.2开发中的某个地方。

相关内容

  • 没有找到相关文章

最新更新