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.ProxyHandler;
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(8080);
31          server.addConnector(connector);
32  
33          HandlerCollection handlers = new HandlerCollection();
34          server.setHandler(handlers);
35  
36          ServletContextHandler context = new ServletContextHandler(handlers, "/", ServletContextHandler.SESSIONS);
37          ServletHolder proxyServlet = new ServletHolder(ProxyServlet.class);
38          proxyServlet.setInitParameter("whiteList", "google.com, www.eclipse.org");
39          proxyServlet.setInitParameter("blackList", "google.com/calendar/*, www.eclipse.org/committers/");
40          context.addServlet(proxyServlet, "/*");
41          
42          ProxyHandler proxy = new ProxyHandler();
43          proxy.setWhite(new String[]{"mail.google.com"});
44          proxy.addWhite("www.google.com");
45          handlers.addHandler(proxy);
46  
47          server.start();
48      }
49  
50  }