FilterContainer@Private @Evolving public final class HttpServer2 extends java.lang.Object implements FilterContainer
| Modifier and Type | Class | Description |
|---|---|---|
static class |
HttpServer2.Builder |
Class to construct instances of HTTP server with specific options.
|
static class |
HttpServer2.QuotingInputFilter |
A Servlet input filter that quotes all HTML active characters in the
parameter names and values.
|
static class |
HttpServer2.StackServlet |
A very simple servlet to serve up a text representation of the current
stack traces.
|
static class |
HttpServer2.XFrameOption |
The X-FRAME-OPTIONS header in HTTP response to mitigate clickjacking
attack.
|
| Modifier and Type | Field | Description |
|---|---|---|
static java.lang.String |
ADMINS_ACL |
|
static java.lang.String |
BIND_ADDRESS |
|
static java.lang.String |
CONF_CONTEXT_ATTRIBUTE |
|
static java.lang.String |
FILTER_INITIALIZER_PROPERTY |
|
protected java.util.List<java.lang.String> |
filterNames |
|
protected boolean |
findPort |
|
static int |
HTTP_ACCEPTOR_COUNT_DEFAULT |
|
static java.lang.String |
HTTP_ACCEPTOR_COUNT_KEY |
|
static java.lang.String |
HTTP_HEADER_PREFIX |
|
static int |
HTTP_IDLE_TIMEOUT_MS_DEFAULT |
|
static java.lang.String |
HTTP_IDLE_TIMEOUT_MS_KEY |
|
static int |
HTTP_MAX_REQUEST_HEADER_SIZE_DEFAULT |
|
static java.lang.String |
HTTP_MAX_REQUEST_HEADER_SIZE_KEY |
|
static int |
HTTP_MAX_RESPONSE_HEADER_SIZE_DEFAULT |
|
static java.lang.String |
HTTP_MAX_RESPONSE_HEADER_SIZE_KEY |
|
static java.lang.String |
HTTP_MAX_THREADS_KEY |
|
static java.lang.String |
HTTP_SCHEME |
|
static int |
HTTP_SELECTOR_COUNT_DEFAULT |
|
static java.lang.String |
HTTP_SELECTOR_COUNT_KEY |
|
static boolean |
HTTP_SNI_HOST_CHECK_ENABLED_DEFAULT |
|
static java.lang.String |
HTTP_SNI_HOST_CHECK_ENABLED_KEY |
|
static int |
HTTP_SOCKET_BACKLOG_SIZE_DEFAULT |
|
static java.lang.String |
HTTP_SOCKET_BACKLOG_SIZE_KEY |
|
static java.lang.String |
HTTP_TEMP_DIR_KEY |
|
static java.lang.String |
HTTPS_SCHEME |
|
static org.slf4j.Logger |
LOG |
|
static java.lang.String |
NO_CACHE_FILTER |
|
protected Configuration.IntegerRanges |
portRanges |
|
protected static java.lang.String |
PROMETHEUS_SINK |
|
static java.lang.String |
SPNEGO_FILTER |
|
protected org.eclipse.jetty.webapp.WebAppContext |
webAppContext |
|
protected org.eclipse.jetty.server.Server |
webServer |
| Modifier and Type | Method | Description |
|---|---|---|
void |
addContext(org.eclipse.jetty.servlet.ServletContextHandler ctxt,
boolean isFiltered) |
|
protected void |
addDefaultApps(org.eclipse.jetty.server.handler.ContextHandlerCollection parent,
java.lang.String appDir,
Configuration conf) |
Add default apps.
|
protected void |
addDefaultServlets(Configuration configuration) |
Add default servlets.
|
void |
addFilter(java.lang.String name,
java.lang.String classname,
java.util.Map<java.lang.String,java.lang.String> parameters) |
Add a filter to the container.
|
protected void |
addFilterPathMapping(java.lang.String pathSpec,
org.eclipse.jetty.servlet.ServletContextHandler webAppCtx) |
Add the path spec to the filter path mapping.
|
void |
addGlobalFilter(java.lang.String name,
java.lang.String classname,
java.util.Map<java.lang.String,java.lang.String> parameters) |
Add a global filter to the container.
|
void |
addHandlerAtEnd(org.eclipse.jetty.server.Handler handler) |
Add the given handler to the end of the list of handlers.
|
void |
addHandlerAtFront(org.eclipse.jetty.server.Handler handler) |
Add the given handler to the front of the list of handlers.
|
void |
addInternalServlet(java.lang.String name,
java.lang.String pathSpec,
java.lang.Class<? extends javax.servlet.http.HttpServlet> clazz) |
Add an internal servlet in the server.
|
void |
addInternalServlet(java.lang.String name,
java.lang.String pathSpec,
java.lang.Class<? extends javax.servlet.http.HttpServlet> clazz,
boolean requireAuth) |
Add an internal servlet in the server, specifying whether or not to
protect with Kerberos authentication.
|
void |
addInternalServlet(java.lang.String name,
java.lang.String pathSpec,
java.lang.Class<? extends javax.servlet.http.HttpServlet> clazz,
java.util.Map<java.lang.String,java.lang.String> params) |
Add an internal servlet in the server, with initialization parameters.
|
void |
addJerseyResourcePackage(java.lang.String packageName,
java.lang.String pathSpec) |
Add a Jersey resource package.
|
void |
addJerseyResourcePackage(java.lang.String packageName,
java.lang.String pathSpec,
java.util.Map<java.lang.String,java.lang.String> params) |
Add a Jersey resource package.
|
void |
addServlet(java.lang.String name,
java.lang.String pathSpec,
java.lang.Class<? extends javax.servlet.http.HttpServlet> clazz) |
Add a servlet in the server.
|
static void |
defineFilter(org.eclipse.jetty.servlet.ServletContextHandler ctx,
java.lang.String name,
java.lang.String classname,
java.util.Map<java.lang.String,java.lang.String> parameters,
java.lang.String[] urls) |
Define a filter for a context and set up default url mappings.
|
java.lang.Object |
getAttribute(java.lang.String name) |
Get the value in the webapp context.
|
java.net.InetSocketAddress |
getConnectorAddress(int index) |
Get the address that corresponds to a particular connector.
|
static java.util.Properties |
getFilterProperties(Configuration conf,
java.util.List<java.lang.String> prefixes) |
|
int |
getPort() |
Deprecated.
|
org.eclipse.jetty.webapp.WebAppContext |
getWebAppContext() |
|
protected java.lang.String |
getWebAppsPath(java.lang.String appName) |
Get the pathname to the webapps files.
|
static boolean |
hasAdministratorAccess(javax.servlet.ServletContext servletContext,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) |
Does the user sending the HttpServletRequest has the administrator ACLs? If
it isn't the case, response will be modified to send an error to the user.
|
boolean |
isAlive() |
Test for the availability of the web server
|
static boolean |
isInstrumentationAccessAllowed(javax.servlet.ServletContext servletContext,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) |
Checks the user has privileges to access to instrumentation servlets.
|
void |
join() |
|
void |
setAttribute(java.lang.String name,
java.lang.Object value) |
Set a value in the webapp context.
|
void |
setThreads(int min,
int max) |
Set the min, max number of worker threads (simultaneous connections).
|
void |
start() |
Start the server.
|
void |
stop() |
stop the server.
|
java.lang.String |
toString() |
|
static boolean |
userHasAdministratorAccess(javax.servlet.ServletContext servletContext,
java.lang.String remoteUser) |
Get the admin ACLs from the given ServletContext and check if the given
user is in the ACL.
|
public static final org.slf4j.Logger LOG
public static final java.lang.String HTTP_SCHEME
public static final java.lang.String HTTPS_SCHEME
public static final java.lang.String HTTP_MAX_REQUEST_HEADER_SIZE_KEY
public static final int HTTP_MAX_REQUEST_HEADER_SIZE_DEFAULT
public static final java.lang.String HTTP_MAX_RESPONSE_HEADER_SIZE_KEY
public static final int HTTP_MAX_RESPONSE_HEADER_SIZE_DEFAULT
public static final java.lang.String HTTP_SOCKET_BACKLOG_SIZE_KEY
public static final int HTTP_SOCKET_BACKLOG_SIZE_DEFAULT
public static final java.lang.String HTTP_MAX_THREADS_KEY
public static final java.lang.String HTTP_ACCEPTOR_COUNT_KEY
public static final int HTTP_ACCEPTOR_COUNT_DEFAULT
public static final java.lang.String HTTP_SELECTOR_COUNT_KEY
public static final int HTTP_SELECTOR_COUNT_DEFAULT
public static final java.lang.String HTTP_IDLE_TIMEOUT_MS_KEY
public static final int HTTP_IDLE_TIMEOUT_MS_DEFAULT
public static final java.lang.String HTTP_TEMP_DIR_KEY
public static final java.lang.String FILTER_INITIALIZER_PROPERTY
public static final java.lang.String HTTP_SNI_HOST_CHECK_ENABLED_KEY
public static final boolean HTTP_SNI_HOST_CHECK_ENABLED_DEFAULT
public static final java.lang.String CONF_CONTEXT_ATTRIBUTE
public static final java.lang.String ADMINS_ACL
public static final java.lang.String SPNEGO_FILTER
public static final java.lang.String NO_CACHE_FILTER
public static final java.lang.String BIND_ADDRESS
protected final org.eclipse.jetty.server.Server webServer
protected final org.eclipse.jetty.webapp.WebAppContext webAppContext
protected final boolean findPort
protected final Configuration.IntegerRanges portRanges
protected final java.util.List<java.lang.String> filterNames
public static final java.lang.String HTTP_HEADER_PREFIX
protected static final java.lang.String PROMETHEUS_SINK
public static java.util.Properties getFilterProperties(Configuration conf, java.util.List<java.lang.String> prefixes)
protected void addDefaultApps(org.eclipse.jetty.server.handler.ContextHandlerCollection parent,
java.lang.String appDir,
Configuration conf)
throws java.io.IOException
parent - contexthandlercollection.appDir - The application directoryconf - configuration.java.io.IOException - raised on errors performing I/O.protected void addDefaultServlets(Configuration configuration)
configuration - the hadoop configurationpublic void addContext(org.eclipse.jetty.servlet.ServletContextHandler ctxt,
boolean isFiltered)
public void setAttribute(java.lang.String name,
java.lang.Object value)
name - The name of the attributevalue - The value of the attributepublic void addJerseyResourcePackage(java.lang.String packageName,
java.lang.String pathSpec)
packageName - The Java package name containing the Jersey resource.pathSpec - The path spec for the servletpublic void addJerseyResourcePackage(java.lang.String packageName,
java.lang.String pathSpec,
java.util.Map<java.lang.String,java.lang.String> params)
packageName - The Java package name containing the Jersey resource.pathSpec - The path spec for the servletparams - properties and features for ResourceConfigpublic void addServlet(java.lang.String name,
java.lang.String pathSpec,
java.lang.Class<? extends javax.servlet.http.HttpServlet> clazz)
name - The name of the servlet (can be passed as null)pathSpec - The path spec for the servletclazz - The servlet classpublic void addInternalServlet(java.lang.String name,
java.lang.String pathSpec,
java.lang.Class<? extends javax.servlet.http.HttpServlet> clazz)
name - The name of the servlet (can be passed as null)pathSpec - The path spec for the servletclazz - The servlet classpublic void addInternalServlet(java.lang.String name,
java.lang.String pathSpec,
java.lang.Class<? extends javax.servlet.http.HttpServlet> clazz,
boolean requireAuth)
name - The name of the servlet (can be passed as null)pathSpec - The path spec for the servletclazz - The servlet classrequireAuth - Require Kerberos authenticate to access servletpublic void addInternalServlet(java.lang.String name,
java.lang.String pathSpec,
java.lang.Class<? extends javax.servlet.http.HttpServlet> clazz,
java.util.Map<java.lang.String,java.lang.String> params)
name - The name of the servlet (can be passed as null)pathSpec - The path spec for the servletclazz - The servlet classparams - init parameterspublic void addHandlerAtFront(org.eclipse.jetty.server.Handler handler)
handler - The handler to addpublic void addHandlerAtEnd(org.eclipse.jetty.server.Handler handler)
handler - The handler to addpublic void addFilter(java.lang.String name,
java.lang.String classname,
java.util.Map<java.lang.String,java.lang.String> parameters)
FilterContaineraddFilter in interface FilterContainername - Filter nameclassname - Filter class nameparameters - a map from parameter names to initial valuespublic void addGlobalFilter(java.lang.String name,
java.lang.String classname,
java.util.Map<java.lang.String,java.lang.String> parameters)
FilterContaineraddGlobalFilter in interface FilterContainername - filter nameclassname - filter class nameparameters - a map from parameter names to initial valuespublic static void defineFilter(org.eclipse.jetty.servlet.ServletContextHandler ctx,
java.lang.String name,
java.lang.String classname,
java.util.Map<java.lang.String,java.lang.String> parameters,
java.lang.String[] urls)
ctx - ctx.name - name.classname - classname.parameters - parameters.urls - urls.protected void addFilterPathMapping(java.lang.String pathSpec,
org.eclipse.jetty.servlet.ServletContextHandler webAppCtx)
pathSpec - The path specwebAppCtx - The WebApplicationContext to add topublic java.lang.Object getAttribute(java.lang.String name)
name - The name of the attributepublic org.eclipse.jetty.webapp.WebAppContext getWebAppContext()
protected java.lang.String getWebAppsPath(java.lang.String appName)
throws java.io.FileNotFoundException
appName - eg "secondary" or "datanode"java.io.FileNotFoundException - if 'webapps' directory cannot be found
on CLASSPATH or in the development location.@Deprecated public int getPort()
public java.net.InetSocketAddress getConnectorAddress(int index)
index - index.public void setThreads(int min,
int max)
min - min.max - max.public void start()
throws java.io.IOException
java.io.IOException - raised on errors performing I/O.public void stop()
throws java.lang.Exception
java.lang.Exception - exception.public void join()
throws java.lang.InterruptedException
java.lang.InterruptedExceptionpublic boolean isAlive()
public java.lang.String toString()
toString in class java.lang.Objectpublic static boolean isInstrumentationAccessAllowed(javax.servlet.ServletContext servletContext,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws java.io.IOException
If hadoop.security.instrumentation.requires.admin is set to FALSE
(default value) it always returns TRUE.
If hadoop.security.instrumentation.requires.admin is set to TRUE
it will check that if the current user is in the admin ACLS. If the user is
in the admin ACLs it returns TRUE, otherwise it returns FALSE.
servletContext - the servlet context.request - the servlet request.response - the servlet response.java.io.IOException - raised on errors performing I/O.public static boolean hasAdministratorAccess(javax.servlet.ServletContext servletContext,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws java.io.IOException
servletContext - servletContext.request - request.response - used to send the error response if user does not have admin access.java.io.IOException - raised on errors performing I/O.public static boolean userHasAdministratorAccess(javax.servlet.ServletContext servletContext,
java.lang.String remoteUser)
servletContext - the context containing the admin ACL.remoteUser - the remote user to check for.Copyright © 2008–2025 Apache Software Foundation. All rights reserved.