org.eclipse.jetty.servlets
Class ProxyServlet

java.lang.Object
  extended by org.eclipse.jetty.servlets.ProxyServlet
All Implemented Interfaces:
Servlet
Direct Known Subclasses:
ProxyServlet.Transparent

public class ProxyServlet
extends Object
implements Servlet

Asynchronous Proxy Servlet. Forward requests to another server either as a standard web proxy (as defined by RFC2616) or as a transparent proxy.

This servlet needs the jetty-util and jetty-client classes to be available to the web application.

To facilitate JMX monitoring, the "HttpClient", it's "ThreadPool" and the "Logger" are set as context attributes prefixed with the servlet name.

The following init parameters may be used to configure the servlet:


Nested Class Summary
static class ProxyServlet.Transparent
          Transparent Proxy.
 
Field Summary
protected  HostMap<PathMap> _black
           
protected  HttpClient _client
           
protected  ServletConfig _config
           
protected  ServletContext _context
           
protected  HashSet<String> _DontProxyHeaders
           
protected  String _hostHeader
           
protected  Logger _log
           
protected  HostMap<PathMap> _white
           
 
Constructor Summary
ProxyServlet()
           
 
Method Summary
 void destroy()
           
 String getHostHeader()
          Get the hostHeader.
 ServletConfig getServletConfig()
           
 String getServletInfo()
           
 void handleConnect(HttpServletRequest request, HttpServletResponse response)
           
 void init(ServletConfig config)
           
protected  HttpURI proxyHttpURI(String scheme, String serverName, int serverPort, String uri)
           
 void service(ServletRequest req, ServletResponse res)
           
 void setHostHeader(String hostHeader)
          Set the hostHeader.
 boolean validateDestination(String host, String path)
          Check the request hostname and path against white- and blacklist.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_log

protected Logger _log

_client

protected HttpClient _client

_hostHeader

protected String _hostHeader

_DontProxyHeaders

protected HashSet<String> _DontProxyHeaders

_config

protected ServletConfig _config

_context

protected ServletContext _context

_white

protected HostMap<PathMap> _white

_black

protected HostMap<PathMap> _black
Constructor Detail

ProxyServlet

public ProxyServlet()
Method Detail

init

public void init(ServletConfig config)
          throws ServletException
Specified by:
init in interface Servlet
Throws:
ServletException

validateDestination

public boolean validateDestination(String host,
                                   String path)
Check the request hostname and path against white- and blacklist.

Parameters:
host - hostname to check
path - path to check
Returns:
true if request is allowed to be proxied

getServletConfig

public ServletConfig getServletConfig()
Specified by:
getServletConfig in interface Servlet

getHostHeader

public String getHostHeader()
Get the hostHeader.

Returns:
the hostHeader

setHostHeader

public void setHostHeader(String hostHeader)
Set the hostHeader.

Parameters:
hostHeader - the hostHeader to set

service

public void service(ServletRequest req,
                    ServletResponse res)
             throws ServletException,
                    IOException
Specified by:
service in interface Servlet
Throws:
ServletException
IOException

handleConnect

public void handleConnect(HttpServletRequest request,
                          HttpServletResponse response)
                   throws IOException
Throws:
IOException

proxyHttpURI

protected HttpURI proxyHttpURI(String scheme,
                               String serverName,
                               int serverPort,
                               String uri)
                        throws MalformedURLException
Throws:
MalformedURLException

getServletInfo

public String getServletInfo()
Specified by:
getServletInfo in interface Servlet

destroy

public void destroy()
Specified by:
destroy in interface Servlet


Copyright © 1995-2010 Mort Bay Consulting. All Rights Reserved.