public class HttpServer
extends java.lang.Object
implements org.apache.hadoop.http.FilterContainer
| Modifier and Type | Class and Description |
|---|---|
static class |
HttpServer.QuotingInputFilter
A Servlet input filter that quotes all HTML active characters in the
parameter names and values.
|
static class |
HttpServer.StackServlet
A very simple servlet to serve up a text representation of the current
stack traces.
|
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
CONF_CONTEXT_ATTRIBUTE |
protected java.util.Map<org.mortbay.jetty.servlet.Context,java.lang.Boolean> |
defaultContexts |
protected java.util.List<java.lang.String> |
filterNames |
protected boolean |
findPort |
static java.lang.String |
KRB5_FILTER |
protected org.mortbay.jetty.Connector |
listener |
static org.apache.commons.logging.Log |
LOG |
static java.lang.String |
SPNEGO_FILTER |
protected org.mortbay.jetty.webapp.WebAppContext |
webAppContext |
protected org.mortbay.jetty.Server |
webServer |
| Constructor and Description |
|---|
HttpServer(java.lang.String name,
java.lang.String bindAddress,
int port,
boolean findPort)
Same as this(name, bindAddress, port, findPort, null);
|
HttpServer(java.lang.String name,
java.lang.String bindAddress,
int port,
boolean findPort,
org.apache.hadoop.conf.Configuration conf) |
HttpServer(java.lang.String name,
java.lang.String bindAddress,
int port,
boolean findPort,
org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.security.authorize.AccessControlList adminsAcl)
Create a status server on the given port.
|
HttpServer(java.lang.String name,
java.lang.String bindAddress,
int port,
boolean findPort,
org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.security.authorize.AccessControlList adminsAcl,
org.mortbay.jetty.Connector connector) |
HttpServer(java.lang.String name,
java.lang.String bindAddress,
int port,
boolean findPort,
org.apache.hadoop.conf.Configuration conf,
org.mortbay.jetty.Connector connector) |
| Modifier and Type | Method and Description |
|---|---|
void |
addContext(org.mortbay.jetty.servlet.Context ctxt,
boolean isFiltered) |
protected void |
addContext(java.lang.String pathSpec,
java.lang.String dir,
boolean isFiltered)
Add a context
|
protected void |
addDefaultApps(org.mortbay.jetty.handler.ContextHandlerCollection parent,
java.lang.String appDir)
Add default apps.
|
protected void |
addDefaultServlets()
Add default servlets.
|
void |
addFilter(java.lang.String name,
java.lang.String classname,
java.util.Map<java.lang.String,java.lang.String> parameters) |
protected void |
addFilterPathMapping(java.lang.String pathSpec,
org.mortbay.jetty.servlet.Context 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) |
void |
addInternalServlet(java.lang.String name,
java.lang.String pathSpec,
java.lang.Class<? extends javax.servlet.http.HttpServlet> clazz)
Deprecated.
this is a temporary method
|
void |
addInternalServlet(java.lang.String name,
java.lang.String pathSpec,
java.lang.Class<? extends javax.servlet.http.HttpServlet> clazz,
boolean requireAuth,
boolean useKsslForAuth)
Add an internal servlet in the server, specifying whether or not to
protect with Kerberos authentication.
|
void |
addJerseyResourcePackage(java.lang.String packageName,
java.lang.String pathSpec)
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.
|
void |
addSslListener(java.net.InetSocketAddress addr,
org.apache.hadoop.conf.Configuration sslConf,
boolean needClientAuth)
Configure an ssl listener on the server.
|
void |
addSslListener(java.net.InetSocketAddress addr,
org.apache.hadoop.conf.Configuration sslConf,
boolean needCertsAuth,
boolean needKrbAuth)
Configure an ssl listener on the server.
|
void |
addSslListener(java.net.InetSocketAddress addr,
java.lang.String keystore,
java.lang.String storPass,
java.lang.String keyPass)
Deprecated.
|
org.mortbay.jetty.Connector |
createBaseListener(org.apache.hadoop.conf.Configuration conf)
Create a required listener for the Jetty instance listening on the port
provided.
|
static org.mortbay.jetty.Connector |
createDefaultChannelConnector() |
protected void |
defineFilter(org.mortbay.jetty.servlet.Context 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.
|
int |
getPort()
Get the port that the server is on
|
protected java.lang.String |
getWebAppsPath()
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.
|
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(org.mortbay.jetty.servlet.Context context,
java.lang.String name,
java.lang.Object value)
Set a value in the webapp context.
|
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
|
public static final org.apache.commons.logging.Log LOG
public static final java.lang.String CONF_CONTEXT_ATTRIBUTE
public static final java.lang.String SPNEGO_FILTER
public static final java.lang.String KRB5_FILTER
protected final org.mortbay.jetty.Server webServer
protected final org.mortbay.jetty.Connector listener
protected final org.mortbay.jetty.webapp.WebAppContext webAppContext
protected final boolean findPort
protected final java.util.Map<org.mortbay.jetty.servlet.Context,java.lang.Boolean> defaultContexts
protected final java.util.List<java.lang.String> filterNames
public HttpServer(java.lang.String name,
java.lang.String bindAddress,
int port,
boolean findPort)
throws java.io.IOException
java.io.IOExceptionpublic HttpServer(java.lang.String name,
java.lang.String bindAddress,
int port,
boolean findPort,
org.apache.hadoop.conf.Configuration conf)
throws java.io.IOException
java.io.IOExceptionpublic HttpServer(java.lang.String name,
java.lang.String bindAddress,
int port,
boolean findPort,
org.apache.hadoop.conf.Configuration conf,
org.mortbay.jetty.Connector connector)
throws java.io.IOException
java.io.IOExceptionpublic HttpServer(java.lang.String name,
java.lang.String bindAddress,
int port,
boolean findPort,
org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.security.authorize.AccessControlList adminsAcl)
throws java.io.IOException
name - The name of the serverport - The port to use on the serverfindPort - whether the server should start at the given port and
increment by 1 until it finds a free port.conf - ConfigurationadminsAcl - AccessControlList of the adminsjava.io.IOExceptionpublic HttpServer(java.lang.String name,
java.lang.String bindAddress,
int port,
boolean findPort,
org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.security.authorize.AccessControlList adminsAcl,
org.mortbay.jetty.Connector connector)
throws java.io.IOException
java.io.IOExceptionpublic org.mortbay.jetty.Connector createBaseListener(org.apache.hadoop.conf.Configuration conf)
throws java.io.IOException
java.io.IOExceptionpublic static org.mortbay.jetty.Connector createDefaultChannelConnector()
protected void addDefaultApps(org.mortbay.jetty.handler.ContextHandlerCollection parent,
java.lang.String appDir)
throws java.io.IOException
appDir - The application directoryjava.io.IOExceptionprotected void addDefaultServlets()
public void addContext(org.mortbay.jetty.servlet.Context ctxt,
boolean isFiltered)
throws java.io.IOException
java.io.IOExceptionprotected void addContext(java.lang.String pathSpec,
java.lang.String dir,
boolean isFiltered)
throws java.io.IOException
pathSpec - The path spec for the contextdir - The directory containing the contextisFiltered - if true, the servlet is added to the filter path mappingjava.io.IOExceptionpublic void setAttribute(java.lang.String name,
java.lang.Object value)
name - The name of the attributevalue - The value of the attributepublic void setAttribute(org.mortbay.jetty.servlet.Context context,
java.lang.String name,
java.lang.Object value)
context - Context to add attributename - 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 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 class@Deprecated
public 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,
boolean useKsslForAuth)
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 servletuseKsslForAuth - true to use KSSL for auth, false to use SPNEGOpublic void addFilter(java.lang.String name,
java.lang.String classname,
java.util.Map<java.lang.String,java.lang.String> parameters)
addFilter in interface org.apache.hadoop.http.FilterContainerpublic void addGlobalFilter(java.lang.String name,
java.lang.String classname,
java.util.Map<java.lang.String,java.lang.String> parameters)
addGlobalFilter in interface org.apache.hadoop.http.FilterContainerprotected void defineFilter(org.mortbay.jetty.servlet.Context ctx,
java.lang.String name,
java.lang.String classname,
java.util.Map<java.lang.String,java.lang.String> parameters,
java.lang.String[] urls)
protected void addFilterPathMapping(java.lang.String pathSpec,
org.mortbay.jetty.servlet.Context webAppCtx)
pathSpec - The path specwebAppCtx - The WebApplicationContext to add topublic java.lang.Object getAttribute(java.lang.String name)
name - The name of the attributeprotected java.lang.String getWebAppsPath()
throws java.io.IOException
java.io.IOException - if 'webapps' directory cannot be found on CLASSPATH.public int getPort()
public void setThreads(int min,
int max)
@Deprecated
public void addSslListener(java.net.InetSocketAddress addr,
java.lang.String keystore,
java.lang.String storPass,
java.lang.String keyPass)
throws java.io.IOException
addSslListener(InetSocketAddress, Configuration, boolean)addr - address to listen onkeystore - location of the keystorestorPass - password for the keystorekeyPass - password for the keyjava.io.IOExceptionpublic void addSslListener(java.net.InetSocketAddress addr,
org.apache.hadoop.conf.Configuration sslConf,
boolean needClientAuth)
throws java.io.IOException
addr - address to listen onsslConf - conf to retrieve ssl optionsneedClientAuth - whether client authentication is requiredjava.io.IOExceptionpublic void addSslListener(java.net.InetSocketAddress addr,
org.apache.hadoop.conf.Configuration sslConf,
boolean needCertsAuth,
boolean needKrbAuth)
throws java.io.IOException
addr - address to listen onsslConf - conf to retrieve ssl optionsneedCertsAuth - whether x509 certificate authentication is requiredneedKrbAuth - whether to allow kerberos authjava.io.IOExceptionpublic void start()
throws java.io.IOException
java.io.IOExceptionpublic void stop()
throws java.lang.Exception
java.lang.Exceptionpublic void join()
throws java.lang.InterruptedException
java.lang.InterruptedExceptionpublic static boolean isInstrumentationAccessAllowed(javax.servlet.ServletContext servletContext,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws java.io.IOException
hadoop.security.instrumentation.requires.admin is set to
FALSE (default value) it returns 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.IOExceptionpublic static boolean hasAdministratorAccess(javax.servlet.ServletContext servletContext,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws java.io.IOException
servletContext - request - response - java.io.IOExceptionCopyright © 2014 Red Hat. All Rights Reserved.