public class HeadPipelineServlet extends PipelineableServletImpl
This servlet acts as the head of the servlet pipeline. This will take in a ServletRequest/Response pair, and wrap them in DynamoHttpServletRequest/Response objects. The request and response objects are then passed on.
One additional function of this servlet is to check to see if the pathInfo is null. If it is, then pathInfo is set to "".
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ATG_VERSION_HEADER
The name of the version header
|
static java.lang.String |
ATG_VERSION_HEADER_VALUE_PREFIX
The Prefix for version header
|
static java.lang.String |
CLASS_VERSION
Class version string
|
static java.lang.String |
CONTENT_SECURITY_POLICY_HEADER
The name of the Content-Security-Policy header
|
static java.lang.String |
CONTENT_SECURITY_POLICY_REPORT_ONLY_HEADER
The name of the Content-Security-Policy-Report-Only header
|
boolean |
mManageThreadPriorities |
static java.lang.String |
PRE_SESSION_SERVLET_STOP_PROCESSING_ATTRIBUTE_NAME
Name of the request attribute a pre-session servlet can use
to indicate no farther processing should be done on the request.
|
static java.lang.String |
VERSION_SERVICE_PATH |
static java.lang.String |
X_FRAME_OPTIONS_HEADER
The name of the X-Frame-Options header
|
SERVICE_INFO_KEY
DEFAULT_LOG_TRACE_STATUS
DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS
Constructor and Description |
---|
HeadPipelineServlet()
Constructs a HeadPipelineServlet
|
Modifier and Type | Method and Description |
---|---|
protected DynamoHttpServletRequest |
createRequestObject() |
protected DynamoHttpServletResponse |
createResponseObject() |
static java.lang.String |
decodeAtgVersionHeader(java.lang.String pEncodedAtgVersionHeaderInfo) |
void |
doStartService()
This is called after a Service has been created, placed into the
naming hierarchy, and initialized with its configured property
values.
|
static java.lang.String |
encodeAtgVersionHeader(java.lang.String pAtgVersionHeaderInfo) |
protected boolean |
filterMetric(DynamoHttpServletRequest pRequest,
DynamoHttpServletResponse pResponse)
Checks current request/response pair whether we should filter out
them from usage metric calculation.
|
java.lang.String |
getAtgVersionHeader()
Get Atg version header string, the default value is 'X-ATG-Version'.
|
int |
getBufferSize() |
java.lang.String |
getContentSecurityPolicyHeader()
Get Content-Security-Policy header
|
java.lang.String |
getContentSecurityPolicyReportOnlyHeader()
Get Content-Security-Policy-Report-Only header
|
boolean |
getFixRequestURI() |
boolean |
getFixServletPath() |
boolean |
getFixTrailingSlashes() |
boolean |
getGenerateRequestLocales()
This value gets set by the HeadPipelineServlet when the request
is initially created.
|
atg.servlet.sessiontracking.GenericSessionManager |
getGenericSessionManager() |
java.lang.String[] |
getInsertableServlets()
Get the string array of insertable pipeline servlets.
|
java.lang.String[] |
getLicenseChecklist()
Get the license checklist.
|
MimeTyper |
getMimeTyper()
Returns the MimeTyper property
|
atg.nucleus.MultiRootNameResolverFactory |
getMultiNucleusNameResolverFactory()
Returns property multiNucleusNameResolverFactory.
|
atg.nucleus.MultiRootNameResolverFactory |
getNameResolverFactory()
Returns property nameResolverFactory.
|
atg.servlet.ParameterHandler |
getParameterHandler()
Returns the ParameterHandler
|
javax.servlet.Servlet |
getPreSessionServlet()
Returns the servlet to be invoked just before we allocate a session.
|
atg.servlet.pipeline.RedirectURLValidatorService |
getRedirectURLValidator()
Returns property redirectURLValidator.
|
DynamoHttpServletRequest |
getRequest(java.lang.String pSessionId)
Returns a request that you can use to resolve names, create sessions etc.
|
java.lang.Class |
getRequestClass() |
java.lang.String |
getRequestLocalePath()
This value gets set by the HeadPipelineServlet when the request
is initially created.
|
RequestScopeManager |
getRequestScopeManager()
Returns the RequestScopeManager
|
boolean |
getRequestURIHasQueryString() |
java.lang.Class |
getResponseClass() |
boolean |
getSetCurrentRequest() |
java.util.regex.Pattern |
getStaticPattern()
Returns readonly static pattern.
|
java.lang.String[] |
getStaticResourceExtensions()
Returns array of static resource extensions
|
PipelineableServletImpl |
getStaticServlet()
Returns the servlet to be invoked for processing static resources.
|
atg.tracking.UsageMetricFilter[] |
getUsageMetricFilters()
Returns array of UsageMetricFilter items
|
atg.service.dynamo.VersionService |
getVersionService() |
atg.nucleus.WindowScopeManager |
getWindowScopeManager()
Returns the WindowScopeManager
|
java.lang.String |
getXFrameOptionsHeader()
Get X-Frame-Options header
|
void |
handleUsageMetric(DynamoHttpServletRequest pRequest,
DynamoHttpServletResponse pResponse)
Update current usage metric statistics.
|
boolean |
invokePreSessionServlet(javax.servlet.http.HttpServletRequest pRequest,
javax.servlet.http.HttpServletResponse pResponse)
Invoke the preSessionServlet, if any.
|
boolean |
isAddingAtgVersionHeader()
Whether to add the X-ATG-Version header.
|
boolean |
isDynamoPipeline() |
boolean |
isManageThreadPriorities() |
boolean |
isMetricUsageEnabled()
Returns the flag indicating whether metric usage is enabled.
|
boolean |
isParsingCertificates()
This property controls whether or not this servlet will attempt
to parse X509 certificates.
|
boolean |
isReuseRequestFromThread()
Returns property reuseRequestFromThread.
|
boolean |
isStaticRequest(DynamoHttpServletRequest pRequest,
DynamoHttpServletResponse pResponse)
Checks current request whether we are requesting for static resource.
|
protected void |
parseX509Certificates(DynamoHttpServletRequest pRequest)
parse the X509 certificates contained in the auth-cert header.
|
void |
passRequest(DynamoHttpServletRequest pRequest,
DynamoHttpServletResponse pResponse)
Checks whether we are requesting static resource and start special pipeline in this case.
|
void |
passRequest(javax.servlet.ServletRequest pRequest,
javax.servlet.ServletResponse pResponse)
Passes the specified request on to the next servlet in the pipeline
|
java.util.Map<java.lang.Long,java.lang.Integer> |
resetUsageMetric(long pThreshold)
Resets current usage metric statistics and returns usage metric map.
|
void |
service(javax.servlet.http.HttpServletRequest pRequest,
javax.servlet.http.HttpServletResponse pResponse)
Services an HttpServletRequest/Response pair.
|
void |
setAddingAtgVersionHeader(boolean pAddingAtgVersionHeader)
Whether to add the X-ATG-Version header.
|
void |
setAtgVersionHeader(java.lang.String pAtgVersionHeader)
Set Atg version header string, the default value is 'X-ATG-Version'.
|
void |
setBufferSize(int pBufferSize)
Sets the property BufferSize.
|
void |
setContentSecurityPolicyHeader(java.lang.String pContentSecurityPolicyHeader)
Set Content-Security-Policy header.
|
void |
setContentSecurityPolicyReportOnlyHeader(java.lang.String pContentSecurityPolicyReportOnlyHeader)
Set Content-Security-Policy-Report-Only header.
|
void |
setDynamoPipeline(boolean pDynamoPipeline)
Sets the property dynamoPipeline.
|
void |
setFixRequestURI(boolean pFixRequestURI)
Sets the property FixRequestURI.
|
void |
setFixServletPath(boolean pFixServletPath)
Sets the property FixServletPath.
|
void |
setFixTrailingSlashes(boolean pFixTrailingSlashes)
Sets the property FixTrailingSlashes.
|
void |
setGenerateRequestLocales(boolean pValue)
This value gets set by the HeadPipelineServlet when the request
is initially created.
|
void |
setGenericSessionManager(atg.servlet.sessiontracking.GenericSessionManager pGenericSessionManager)
Sets the property genericSessionManager.
|
void |
setInsertableServlets(java.lang.String[] pInsertableServlets)
Set the string array of insertable pipeline servlets.
|
void |
setLicenseChecklist(java.lang.String[] pLicenseChecklist)
Set the license checklist.
|
void |
setManageThreadPriorities(boolean pDoManage)
Enables thread priority management.
|
void |
setMetricUsageEnabled(boolean pMetricUsageEnabled)
Sets the flag indicating whether metric usage is enabled.
|
void |
setMimeTyper(MimeTyper pMimeTyper)
Sets the MimeTyper property
|
void |
setMultiNucleusNameResolverFactory(atg.nucleus.MultiRootNameResolverFactory pMultiNucleusNameResolverFactory)
Sets property multiNucleusNameResolverFactory.
|
void |
setNameResolverFactory(atg.nucleus.MultiRootNameResolverFactory pNameResolverFactory)
Sets property nameResolverFactory.
|
void |
setParameterHandler(atg.servlet.ParameterHandler pParameterHandler)
Sets the ParameterHandler property
|
void |
setParsingCertificates(boolean pParse)
This property controls whether or not this servlet will attempt
to parse X509 certificates.
|
void |
setPreSessionServlet(javax.servlet.Servlet pPreSessionServlet)
A servlet to be invoked just before we allocate a session.
|
void |
setRedirectURLValidator(atg.servlet.pipeline.RedirectURLValidatorService pRedirectURLValidator)
Sets property redirectURLValidator.
|
void |
setRequestClass(java.lang.Class pRequestClass)
Sets the property RequestClass.
|
void |
setRequestLocalePath(java.lang.String pValue)
This value gets set by the HeadPipelineServlet when the request
is initially created.
|
void |
setRequestScopeManager(RequestScopeManager pRequestScopeManager)
Sets the RequestScopeManager
|
void |
setRequestURIHasQueryString(boolean pRequestURIHasQueryString)
The servlet specification requires that the requestURI
not contain query args.
|
void |
setResponseClass(java.lang.Class pResponseClass)
Sets the property ResponseClass.
|
void |
setReuseRequestFromThread(boolean pReuseRequestFromThread)
Sets property reuseRequestFromThread.
|
void |
setSetCurrentRequest(boolean pSetCurrentRequest)
Sets the property SetCurrentRequest.
|
void |
setStaticResourceExtensions(java.lang.String[] pStaticResourceExtensions)
Sets property
staticResourceExtensions |
void |
setStaticServlet(PipelineableServletImpl pStaticServlet)
A servlet to be invoked for processing static resources.
|
void |
setUsageMetricFilters(atg.tracking.UsageMetricFilter[] pUsageMetricFilters)
Sets property
usageMetricFilters |
void |
setVersionService(atg.service.dynamo.VersionService pVersionService) |
void |
setWindowScopeManager(atg.nucleus.WindowScopeManager pWindowScopeManager)
Sets the WindowScopeManager
|
void |
setXFrameOptionsHeader(java.lang.String pXFrameOptionsHeader)
Set X-Frame-Options header.
|
createAdminServlet, destroy, getAdminServlet, getNextServlet, getServletConfig, getServletInfo, init, isUsePathInfo, service, service, setNextServlet, setServletInfo, setUsePathInfo
getAverageRequestHandlingTime, getHandledRequestCount, getRequestStartTime, getTotalRequestHandlingTime, isKeepingStatistics, notifyHandledRequest, resetStatistics, setKeepingStatistics
addLogListener, doStopService, getAbsoluteName, getAdminServletOutputStreamEncoding, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isAdminServletUseServletOutputStream, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setAdminServletOutputStreamEncoding, setAdminServletUseServletOutputStream, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
public static java.lang.String CLASS_VERSION
public static final java.lang.String ATG_VERSION_HEADER
public static final java.lang.String ATG_VERSION_HEADER_VALUE_PREFIX
public static final java.lang.String X_FRAME_OPTIONS_HEADER
public static final java.lang.String CONTENT_SECURITY_POLICY_HEADER
public static final java.lang.String CONTENT_SECURITY_POLICY_REPORT_ONLY_HEADER
public static final java.lang.String PRE_SESSION_SERVLET_STOP_PROCESSING_ATTRIBUTE_NAME
public static final java.lang.String VERSION_SERVICE_PATH
public boolean mManageThreadPriorities
public HeadPipelineServlet()
public static java.lang.String decodeAtgVersionHeader(java.lang.String pEncodedAtgVersionHeaderInfo)
public static java.lang.String encodeAtgVersionHeader(java.lang.String pAtgVersionHeaderInfo)
public atg.service.dynamo.VersionService getVersionService()
public void setVersionService(atg.service.dynamo.VersionService pVersionService)
public void setParameterHandler(atg.servlet.ParameterHandler pParameterHandler)
public atg.servlet.ParameterHandler getParameterHandler()
public void setMimeTyper(MimeTyper pMimeTyper)
public MimeTyper getMimeTyper()
public void setRequestScopeManager(RequestScopeManager pRequestScopeManager)
public RequestScopeManager getRequestScopeManager()
public void setWindowScopeManager(atg.nucleus.WindowScopeManager pWindowScopeManager)
public atg.nucleus.WindowScopeManager getWindowScopeManager()
public void setNameResolverFactory(atg.nucleus.MultiRootNameResolverFactory pNameResolverFactory)
public atg.nucleus.MultiRootNameResolverFactory getNameResolverFactory()
public void setMultiNucleusNameResolverFactory(atg.nucleus.MultiRootNameResolverFactory pMultiNucleusNameResolverFactory)
public atg.nucleus.MultiRootNameResolverFactory getMultiNucleusNameResolverFactory()
public void setRequestClass(java.lang.Class pRequestClass)
public java.lang.Class getRequestClass()
public void setResponseClass(java.lang.Class pResponseClass)
public java.lang.Class getResponseClass()
public void setPreSessionServlet(javax.servlet.Servlet pPreSessionServlet)
pPreSessionServlet
- the servlet to be invoked just before
a we allocate a session.public javax.servlet.Servlet getPreSessionServlet()
public boolean invokePreSessionServlet(javax.servlet.http.HttpServletRequest pRequest, javax.servlet.http.HttpServletResponse pResponse) throws javax.servlet.ServletException, java.io.IOException
pRequest
- the current requestpResponse
- the current responsejavax.servlet.ServletException
java.io.IOException
public boolean getGenerateRequestLocales()
A value of false for this property will turn of the creation of RequestLocale objects. No RequestLocale objects will be created for any requests. Calling DynamoHttpServletRequest.getLocale() will return null if this property is set to false. You must set this value to true if you are serving content of a different language than the server runs in.
public void setGenerateRequestLocales(boolean pValue)
A value of false for this property will turn of the creation of RequestLocale objects. No RequestLocale objects will be created for any requests. Calling DynamoHttpServletRequest.getLocale() will return null if this property is set to false. You must set this value to true if you are serving content of a different language than the server runs in.
public java.lang.String getRequestLocalePath()
The path to the request locale component.
public void setRequestLocalePath(java.lang.String pValue)
The path to the request locale component.
public void setRequestURIHasQueryString(boolean pRequestURIHasQueryString)
public boolean getRequestURIHasQueryString()
public void setParsingCertificates(boolean pParse)
public boolean isParsingCertificates()
public void setSetCurrentRequest(boolean pSetCurrentRequest)
pSetCurrentRequest
- new value to setpublic boolean getSetCurrentRequest()
public void setBufferSize(int pBufferSize)
pBufferSize
- new value to setpublic int getBufferSize()
public void setDynamoPipeline(boolean pDynamoPipeline)
pDynamoPipeline
- new value to setpublic boolean isDynamoPipeline()
public void setGenericSessionManager(atg.servlet.sessiontracking.GenericSessionManager pGenericSessionManager)
public atg.servlet.sessiontracking.GenericSessionManager getGenericSessionManager()
public boolean isManageThreadPriorities()
public void setManageThreadPriorities(boolean pDoManage)
pDoManage
- public void service(javax.servlet.http.HttpServletRequest pRequest, javax.servlet.http.HttpServletResponse pResponse) throws java.io.IOException, javax.servlet.ServletException
service
in class PipelineableServletImpl
javax.servlet.ServletException
- if an error occurred while processing
the servlet requestjava.io.IOException
- if an error occurred while reading or writing
the servlet requestpublic void setFixTrailingSlashes(boolean pFixTrailingSlashes)
pFixTrailingSlashes
- new value to setpublic boolean getFixTrailingSlashes()
public void setFixRequestURI(boolean pFixRequestURI)
pFixRequestURI
- new value to setpublic boolean getFixRequestURI()
public void setFixServletPath(boolean pFixServletPath)
pFixServletPath
- new value to setpublic boolean getFixServletPath()
protected void parseX509Certificates(DynamoHttpServletRequest pRequest) throws java.io.IOException, javax.servlet.ServletException
java.io.IOException
javax.servlet.ServletException
protected DynamoHttpServletRequest createRequestObject()
protected DynamoHttpServletResponse createResponseObject()
public DynamoHttpServletRequest getRequest(java.lang.String pSessionId)
public void passRequest(javax.servlet.ServletRequest pRequest, javax.servlet.ServletResponse pResponse) throws java.io.IOException, javax.servlet.ServletException
passRequest
in interface PipelineableServlet
passRequest
in class PipelineableServletImpl
javax.servlet.ServletException
- if an error occurred while processing
the servlet requestjava.io.IOException
- if an error occurred while reading or writing
the servlet requestpublic void passRequest(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse) throws java.io.IOException, javax.servlet.ServletException
passRequest
in class PipelineableServletImpl
javax.servlet.ServletException
- if an error occurred while processing
the servlet requestjava.io.IOException
- if an error occurred while reading or writing
the servlet requestpublic void doStartService() throws ServiceException
doStartService
in class GenericService
ServiceException
- if the Service had a problem starting uppublic void setLicenseChecklist(java.lang.String[] pLicenseChecklist)
public java.lang.String[] getLicenseChecklist()
public void setInsertableServlets(java.lang.String[] pInsertableServlets)
public java.lang.String[] getInsertableServlets()
public void setRedirectURLValidator(atg.servlet.pipeline.RedirectURLValidatorService pRedirectURLValidator)
public atg.servlet.pipeline.RedirectURLValidatorService getRedirectURLValidator()
public void setAddingAtgVersionHeader(boolean pAddingAtgVersionHeader)
public boolean isAddingAtgVersionHeader()
public void setAtgVersionHeader(java.lang.String pAtgVersionHeader)
public java.lang.String getAtgVersionHeader()
public void setXFrameOptionsHeader(java.lang.String pXFrameOptionsHeader)
public java.lang.String getXFrameOptionsHeader()
public void setContentSecurityPolicyHeader(java.lang.String pContentSecurityPolicyHeader)
public java.lang.String getContentSecurityPolicyHeader()
public void setContentSecurityPolicyReportOnlyHeader(java.lang.String pContentSecurityPolicyReportOnlyHeader)
public java.lang.String getContentSecurityPolicyReportOnlyHeader()
public void setReuseRequestFromThread(boolean pReuseRequestFromThread)
public boolean isReuseRequestFromThread()
public void setMetricUsageEnabled(boolean pMetricUsageEnabled)
public boolean isMetricUsageEnabled()
public atg.tracking.UsageMetricFilter[] getUsageMetricFilters()
public void setUsageMetricFilters(atg.tracking.UsageMetricFilter[] pUsageMetricFilters)
usageMetricFilters
pUsageMetricFilters
- the array of UsageMetricFilter itemspublic java.lang.String[] getStaticResourceExtensions()
public void setStaticResourceExtensions(java.lang.String[] pStaticResourceExtensions)
staticResourceExtensions
pStaticResourceExtensions
- the array of static resource extensionspublic java.util.regex.Pattern getStaticPattern()
staticResourceExtensions
public void setStaticServlet(PipelineableServletImpl pStaticServlet)
pStaticServlet
- the servlet to be invoked for processing static resourcespublic PipelineableServletImpl getStaticServlet()
public void handleUsageMetric(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
protected boolean filterMetric(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
public boolean isStaticRequest(DynamoHttpServletRequest pRequest, DynamoHttpServletResponse pResponse)
public java.util.Map<java.lang.Long,java.lang.Integer> resetUsageMetric(long pThreshold)
pThreshold
- value in milliseconds which is used for resetting statistics before that time