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:
    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 and Description
    --- | ---
    `protected Pattern` | `filter`

    - ### Fields inherited from class org.apache.catalina.valves.ValveBase

      `asyncSupported, container, containerLog, next, sm`

    - ### Fields inherited from class org.apache.catalina.util.LifecycleMBeanBase

      `mserver`

    - ### 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 and Description
    `PersistentValve()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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(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(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`

    - ### Methods inherited from class org.apache.catalina.util.LifecycleBase

      `addLifecycleListener, destroy, findLifecycleListeners, fireLifecycleEvent, getState, getStateName, getThrowOnFailure, init, removeLifecycleListener, setState, setState, setThrowOnFailure, start, stop`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### filter

          protected Pattern filter

  - ### Constructor Detail

    - #### PersistentValve

          public PersistentValve()

  - ### 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 interface `Contained`
      Overrides:
        `setContainer` in class `ValveBase`
      Parameters:
        `container` - The new associated container

    - #### invoke

          public void invoke(Request request,
                    Response response)
                      throws 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 processed
        `response` - Response to be produced
      Throws:
        `IOException` - if an input/output error occurred
        `ServletException` - 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 check
        `timeNow` - The current time to check for
      Returns:
        `true` if the session is past its expiration

    - #### isRequestWithoutSession

          protected boolean isRequestWithoutSession(String uri)

    - #### getFilter

          public String getFilter()

    - #### setFilter

          public void setFilter(String filter)

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.