Jetty透明代理 - 添加Userinfo

时间:2015-08-21 12:32:54

标签: java authentication proxy jetty transparentproxy

我使用jetty 9成功创建了一个透明代理,其代码如下:

public class ProxyRewriteServlet extends ProxyServlet.Transparent {
   private static final String HOST = "192.168.1.20" // 'hidden' server
   private static final int PORT = 28000 // the port the server is listening to

   @Override
   protected URI rewriteURI(HttpServletRequest request) {
       URIBuilder builder = new URIBuilder()
        .setScheme("http").setHost(HOST).setPort(PORT)
        .setPath(request.getRequestURI());

      return builder.build();
   }

代理转发到需要基本身份验证的知名服务器(192.168.1.20)。使用地址http://admin:password@192.168.1.20/path直接访问服务器。通过代理http://admin:password@proxy.from.above/path的访问也可以。

但是,由于身份验证,访问http://proxy.from.above/path不起作用。因此,我使用以下内容补充rewriteURI()

builder.setUserInfo("admin", "password"); 

不幸的是,这没有任何效果,服务器要求浏览器输入凭据。

是否有正确的方法在代理注入用户信息?或者他们是否一定需要来自客户?

0 个答案:

没有答案