View Javadoc

1   // ========================================================================
2   // Copyright (c) 2006-2009 Mort Bay Consulting Pty. Ltd.
3   // ------------------------------------------------------------------------
4   // All rights reserved. This program and the accompanying materials
5   // are made available under the terms of the Eclipse Public License v1.0
6   // and Apache License v2.0 which accompanies this distribution.
7   // The Eclipse Public License is available at 
8   // http://www.eclipse.org/legal/epl-v10.html
9   // The Apache License v2.0 is available at
10  // http://www.opensource.org/licenses/apache2.0.php
11  // You may elect to redistribute this code under either of these licenses. 
12  // ========================================================================
13  
14  package org.eclipse.jetty.embedded;
15  
16  import org.eclipse.jetty.server.Server;
17  import org.eclipse.jetty.server.handler.HandlerCollection;
18  import org.eclipse.jetty.server.handler.ConnectHandler;
19  import org.eclipse.jetty.server.nio.SelectChannelConnector;
20  import org.eclipse.jetty.servlet.ServletContextHandler;
21  import org.eclipse.jetty.servlet.ServletHolder;
22  import org.eclipse.jetty.servlets.ProxyServlet;
23  
24  public class ProxyServer
25  {
26      public static void main(String[] args) throws Exception
27      {
28          Server server = new Server();
29          SelectChannelConnector connector = new SelectChannelConnector();
30          connector.setPort(8888);
31          server.addConnector(connector);
32  
33          HandlerCollection handlers = new HandlerCollection();
34          server.setHandler(handlers);
35  
36          // Setup proxy servlet
37          ServletContextHandler context = new ServletContextHandler(handlers, "/", ServletContextHandler.SESSIONS);
38          ServletHolder proxyServlet = new ServletHolder(ProxyServlet.class);
39          proxyServlet.setInitParameter("whiteList", "google.com, www.eclipse.org, localhost");
40          proxyServlet.setInitParameter("blackList", "google.com/calendar/*, www.eclipse.org/committers/");
41          context.addServlet(proxyServlet, "/*");
42          
43          
44          // Setup proxy handler to handle CONNECT methods
45          ConnectHandler proxy = new ConnectHandler();
46          proxy.setWhite(new String[]{"mail.google.com"});
47          proxy.addWhite("www.google.com");
48          handlers.addHandler(proxy);
49  
50          server.start();
51      }
52  
53  }