Package org.apache.catalina.valves
Class PersistentValve
- java.lang.Object
-
- org.apache.catalina.util.LifecycleBase
-
- org.apache.catalina.util.LifecycleMBeanBase
-
- org.apache.catalina.valves.ValveBase
-
- org.apache.catalina.valves.PersistentValve
-
- All Implemented Interfaces:
javax.management.MBeanRegistration
,Contained
,JmxEnabled
,Lifecycle
,Valve
public class PersistentValve extends ValveBase
Valve that implements per-request session persistence. It is intended to be used with non-sticky load-balancers.USAGE CONSTRAINT: To work correctly it requires a PersistentManager.
USAGE CONSTRAINT: To work correctly it assumes only one request exists per session at any one time.
- Author:
- Jean-Frederic Clere
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle
Lifecycle.SingleUse
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.regex.Pattern
filter
-
Fields inherited from class org.apache.catalina.valves.ValveBase
asyncSupported, container, containerLog, next, sm
-
Fields inherited from interface org.apache.catalina.Lifecycle
AFTER_DESTROY_EVENT, AFTER_INIT_EVENT, AFTER_START_EVENT, AFTER_STOP_EVENT, BEFORE_DESTROY_EVENT, BEFORE_INIT_EVENT, BEFORE_START_EVENT, BEFORE_STOP_EVENT, CONFIGURE_START_EVENT, CONFIGURE_STOP_EVENT, PERIODIC_EVENT, START_EVENT, STOP_EVENT
-
-
Constructor Summary
Constructors Constructor Description PersistentValve()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
getFilter()
void
invoke(Request request, Response response)
Select the appropriate child Context to process this request, based on the specified request URI.protected boolean
isRequestWithoutSession(java.lang.String uri)
protected boolean
isSessionStale(Session session, long timeNow)
Indicate whether the session has been idle for longer than its expiration date as of the supplied time.void
setContainer(Container container)
Set the Container with which this Valve is associated, if any.void
setFilter(java.lang.String filter)
-
Methods inherited from class org.apache.catalina.valves.ValveBase
backgroundProcess, getContainer, getDomainInternal, getNext, getObjectNameKeyProperties, initInternal, isAsyncSupported, setAsyncSupported, setNext, startInternal, stopInternal, toString
-
Methods inherited from class org.apache.catalina.util.LifecycleMBeanBase
destroyInternal, getDomain, getObjectName, postDeregister, postRegister, preDeregister, preRegister, register, setDomain, unregister, unregister
-
Methods inherited from class org.apache.catalina.util.LifecycleBase
addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop
-
-
-
-
Method Detail
-
setContainer
public void setContainer(Container container)
Description copied from class:ValveBase
Set the Container with which this Valve is associated, if any.- Specified by:
setContainer
in interfaceContained
- Overrides:
setContainer
in classValveBase
- Parameters:
container
- The new associated container
-
invoke
public void invoke(Request request, Response response) throws java.io.IOException, ServletException
Select the appropriate child Context to process this request, based on the specified request URI. If no matching Context can be found, return an appropriate HTTP error.- Parameters:
request
- Request to be processedresponse
- Response to be produced- Throws:
java.io.IOException
- if an input/output error occurredServletException
- if a servlet error occurred
-
isSessionStale
protected boolean isSessionStale(Session session, long timeNow)
Indicate whether the session has been idle for longer than its expiration date as of the supplied time. FIXME: Probably belongs in the Session class.- Parameters:
session
- The session to checktimeNow
- The current time to check for- Returns:
true
if the session is past its expiration
-
isRequestWithoutSession
protected boolean isRequestWithoutSession(java.lang.String uri)
-
getFilter
public java.lang.String getFilter()
-
setFilter
public void setFilter(java.lang.String filter)
-
-