jetty-9 improved javadoc
This commit is contained in:
parent
6aa01d4517
commit
49de22ea48
|
@ -23,10 +23,27 @@ import org.eclipse.jetty.io.Connection;
|
||||||
import org.eclipse.jetty.io.EndPoint;
|
import org.eclipse.jetty.io.EndPoint;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Factory for {@link Connection}s.</p>
|
* <p>A Factory to create {@link Connection} instances for {@link Connector}s.</p>
|
||||||
|
* <p>A Connection factory is responsible for instantiating and configuring a {@link Connection} instance
|
||||||
|
* to handle an {@link EndPoint} accepted by a {@link Connector}.</p>
|
||||||
|
* <p>
|
||||||
|
* A ConnectionFactory has a protocol name that represents the protocol of the Connections
|
||||||
|
* created. Example of protocol names include:<dl>
|
||||||
|
* <dt>http</dt><dd>Creates a HTTP connection that can handle multiple versions of HTTP from 0.9 to 1.1</dd>
|
||||||
|
* <dt>spdy/2</dt><dd>Creates a HTTP connection that handles a specific version of the SPDY protocol</dd>
|
||||||
|
* <dt>SSL-XYZ</dt><dd>Create an SSL connection chained to a connection obtained from a connection factory
|
||||||
|
* with a protocol "XYZ".</dd>
|
||||||
|
* <dt>SSL-http</dt><dd>Create an SSL connection chained to a HTTP connection (aka https)</dd>
|
||||||
|
* <dt>SSL-npn</dt><dd>Create an SSL connection chained to a NPN connection, that uses a negotiation with
|
||||||
|
* the client to determine the next protocol.</dd>
|
||||||
|
* </dl>
|
||||||
*/
|
*/
|
||||||
public interface ConnectionFactory
|
public interface ConnectionFactory
|
||||||
{
|
{
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/**
|
||||||
|
* @return A string representing the protocol name.
|
||||||
|
*/
|
||||||
public String getProtocol();
|
public String getProtocol();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -27,6 +27,25 @@ import org.eclipse.jetty.http.HttpHeader;
|
||||||
import org.eclipse.jetty.http.HttpScheme;
|
import org.eclipse.jetty.http.HttpScheme;
|
||||||
import org.eclipse.jetty.server.HttpConfiguration.Customizer;
|
import org.eclipse.jetty.server.HttpConfiguration.Customizer;
|
||||||
|
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Customize Requests for Proxy Forwarding.
|
||||||
|
* <p>
|
||||||
|
* This customizer looks at at HTTP request for headers that indicate
|
||||||
|
* it has been forwarded by one or more proxies. Specifically handled are:
|
||||||
|
* <ul>
|
||||||
|
* <li>X-Forwarded-Host</li>
|
||||||
|
* <li>X-Forwarded-Server</li>
|
||||||
|
* <li>X-Forwarded-For</li>
|
||||||
|
* <li>X-Forwarded-Proto</li>
|
||||||
|
* </ul>
|
||||||
|
* <p>If these headers are present, then the {@link Request} object is updated
|
||||||
|
* so that the proxy is not seen as the other end point of the connection on which
|
||||||
|
* the request came</p>
|
||||||
|
* <p>Headers can also be defined so that forwarded SSL Session IDs and Cipher
|
||||||
|
* suites may be customised</p>
|
||||||
|
* @see http://en.wikipedia.org/wiki/X-Forwarded-For
|
||||||
|
*/
|
||||||
public class ForwardedRequestCustomizer implements Customizer
|
public class ForwardedRequestCustomizer implements Customizer
|
||||||
{
|
{
|
||||||
private String _hostHeader;
|
private String _hostHeader;
|
||||||
|
|
|
@ -25,6 +25,18 @@ import org.eclipse.jetty.http.HttpScheme;
|
||||||
import org.eclipse.jetty.util.annotation.ManagedAttribute;
|
import org.eclipse.jetty.util.annotation.ManagedAttribute;
|
||||||
import org.eclipse.jetty.util.annotation.ManagedObject;
|
import org.eclipse.jetty.util.annotation.ManagedObject;
|
||||||
|
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** HTTP Configuration.
|
||||||
|
* <p>This class is a holder of HTTP configuration for use by the
|
||||||
|
* {@link HttpChannel} class. Typically a HTTPConfiguration instance
|
||||||
|
* is instantiated and passed to a {@link ConnectionFactory} that can
|
||||||
|
* create HTTP channels (eg HTTP, AJP or SPDY).</p>
|
||||||
|
* <p>The configuration held by this class is not for the wire protocol,
|
||||||
|
* but for the interpretation and handling of HTTP requests that could
|
||||||
|
* be transported by a variety of protocols.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
@ManagedObject("HTTP Configuration")
|
@ManagedObject("HTTP Configuration")
|
||||||
public class HttpConfiguration
|
public class HttpConfiguration
|
||||||
{
|
{
|
||||||
|
@ -49,6 +61,10 @@ public class HttpConfiguration
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Create a configuration from another.
|
||||||
|
* @param config The configuration to copy.
|
||||||
|
*/
|
||||||
public HttpConfiguration(HttpConfiguration config)
|
public HttpConfiguration(HttpConfiguration config)
|
||||||
{
|
{
|
||||||
_customizers.addAll(config._customizers);
|
_customizers.addAll(config._customizers);
|
||||||
|
@ -59,11 +75,20 @@ public class HttpConfiguration
|
||||||
_secureScheme=config._secureScheme;
|
_secureScheme=config._secureScheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/**
|
||||||
|
* <p>Add a {@link Customizer} that is invoked for every
|
||||||
|
* request received.</p>
|
||||||
|
* <p>Customiser are often used to interpret optional headers (eg {@link ForwardedRequestCustomizer}) or
|
||||||
|
* optional protocol semantics (eg {@link SecureRequestCustomizer}).
|
||||||
|
* @param customizer A request customizer
|
||||||
|
*/
|
||||||
public void addCustomizer(Customizer customizer)
|
public void addCustomizer(Customizer customizer)
|
||||||
{
|
{
|
||||||
_customizers.add(customizer);
|
_customizers.add(customizer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
public List<Customizer> getCustomizers()
|
public List<Customizer> getCustomizers()
|
||||||
{
|
{
|
||||||
return _customizers;
|
return _customizers;
|
||||||
|
@ -107,32 +132,72 @@ public class HttpConfiguration
|
||||||
return _secureScheme;
|
return _secureScheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/**
|
||||||
|
* <p>Set the {@link Customizer}s that are invoked for every
|
||||||
|
* request received.</p>
|
||||||
|
* <p>Customisers are often used to interpret optional headers (eg {@link ForwardedRequestCustomizer}) or
|
||||||
|
* optional protocol semantics (eg {@link SecureRequestCustomizer}).
|
||||||
|
* @param customizers
|
||||||
|
*/
|
||||||
public void setCustomizers(List<Customizer> customizers)
|
public void setCustomizers(List<Customizer> customizers)
|
||||||
{
|
{
|
||||||
_customizers.clear();
|
_customizers.clear();
|
||||||
_customizers.addAll(customizers);
|
_customizers.addAll(customizers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/**
|
||||||
|
* Set the size of the buffer into which response content is aggregated
|
||||||
|
* before being sent to the client. A larger buffer can improve performance by allowing
|
||||||
|
* a content producer to run without blocking, however larger buffers consume more memory and
|
||||||
|
* may induce some latency before a client starts processing the content.
|
||||||
|
* @param responseBufferSize buffer size in bytes.
|
||||||
|
*/
|
||||||
public void setOutputBufferSize(int responseBufferSize)
|
public void setOutputBufferSize(int responseBufferSize)
|
||||||
{
|
{
|
||||||
_outputBufferSize = responseBufferSize;
|
_outputBufferSize = responseBufferSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Set the maximum size of a request header.
|
||||||
|
* <p>Larger headers will allow for more and/or larger cookies plus larger form content encoded
|
||||||
|
* in a URL. However, larger headers consume more memory and can make a server more vulnerable to denial of service
|
||||||
|
* attacks.</p>
|
||||||
|
* @param requestHeaderSize Max header size in bytes
|
||||||
|
*/
|
||||||
public void setRequestHeaderSize(int requestHeaderSize)
|
public void setRequestHeaderSize(int requestHeaderSize)
|
||||||
{
|
{
|
||||||
_requestHeaderSize = requestHeaderSize;
|
_requestHeaderSize = requestHeaderSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Set the maximum size of a response header.
|
||||||
|
*
|
||||||
|
* <p>Larger headers will allow for more and/or larger cookies and longer HTTP headers (eg for redirection).
|
||||||
|
* However, larger headers will also consume more memory.</p>
|
||||||
|
* @param responseHeaderSize Response header size in bytes.
|
||||||
|
*/
|
||||||
public void setResponseHeaderSize(int responseHeaderSize)
|
public void setResponseHeaderSize(int responseHeaderSize)
|
||||||
{
|
{
|
||||||
_responseHeaderSize = responseHeaderSize;
|
_responseHeaderSize = responseHeaderSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Set the TCP/IP port used for CONFIDENTIAL and INTEGRAL
|
||||||
|
* redirections.
|
||||||
|
* @param confidentialPort
|
||||||
|
*/
|
||||||
public void setSecurePort(int confidentialPort)
|
public void setSecurePort(int confidentialPort)
|
||||||
{
|
{
|
||||||
_securePort = confidentialPort;
|
_securePort = confidentialPort;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
/** Set the URI scheme used for CONFIDENTIAL and INTEGRAL
|
||||||
|
* redirections.
|
||||||
|
* @param confidentialScheme A string like"https"
|
||||||
|
*/
|
||||||
public void setSecureScheme(String confidentialScheme)
|
public void setSecureScheme(String confidentialScheme)
|
||||||
{
|
{
|
||||||
_secureScheme = confidentialScheme;
|
_secureScheme = confidentialScheme;
|
||||||
|
|
Loading…
Reference in New Issue