Class SessionIdGeneratorBase

java.lang.Object
org.apache.catalina.util.LifecycleBase
org.apache.catalina.util.SessionIdGeneratorBase
All Implemented Interfaces:
Lifecycle, SessionIdGenerator
Direct Known Subclasses:
StandardSessionIdGenerator

public abstract class SessionIdGeneratorBase extends LifecycleBase implements SessionIdGenerator
  • Field Details

    • DEFAULT_SECURE_RANDOM_ALGORITHM

      public static final String DEFAULT_SECURE_RANDOM_ALGORITHM
  • Constructor Details

    • SessionIdGeneratorBase

      public SessionIdGeneratorBase()
  • Method Details

    • getSecureRandomClass

      public String getSecureRandomClass()
      Get the class name of the SecureRandom implementation used to generate session IDs.
      Returns:
      The fully qualified class name. null indicates that the JRE provided SecureRandom implementation will be used
    • setSecureRandomClass

      public void setSecureRandomClass(String secureRandomClass)
      Specify a non-default SecureRandom implementation to use. The implementation must be self-seeding and have a zero-argument constructor. If not specified, an instance of SecureRandom will be generated.
      Parameters:
      secureRandomClass - The fully-qualified class name
    • getSecureRandomAlgorithm

      public String getSecureRandomAlgorithm()
      Get the name of the algorithm used to create the SecureRandom instances which generate new session IDs.
      Returns:
      The name of the algorithm. null or the empty string means that platform default will be used
    • setSecureRandomAlgorithm

      public void setSecureRandomAlgorithm(String secureRandomAlgorithm)
      Specify a non-default algorithm to use to create instances of SecureRandom which are used to generate session IDs. If no algorithm is specified, SHA1PRNG will be used. If SHA1PRNG is not available, the platform default will be used. To use the platform default (which may be SHA1PRNG), specify null or the empty string. If an invalid algorithm and/or provider is specified the SecureRandom instances will be created using the defaults for this SessionIdGenerator implementation. If that fails, the SecureRandom instances will be created using platform defaults.
      Parameters:
      secureRandomAlgorithm - The name of the algorithm
    • getSecureRandomProvider

      public String getSecureRandomProvider()
      Get the name of the provider used to create the SecureRandom instances which generate new session IDs.
      Returns:
      The name of the provider. null or the empty string means that platform default will be used
    • setSecureRandomProvider

      public void setSecureRandomProvider(String secureRandomProvider)
      Specify a non-default provider to use to create instances of SecureRandom which are used to generate session IDs. If no provider is specified, the platform default is used. To use the platform default specify null or the empty string. If an invalid algorithm and/or provider is specified the SecureRandom instances will be created using the defaults for this SessionIdGenerator implementation. If that fails, the SecureRandom instances will be created using platform defaults.
      Parameters:
      secureRandomProvider - The name of the provider
    • getJvmRoute

      public String getJvmRoute()
      Return the node identifier associated with this node which will be included in the generated session ID.
      Specified by:
      getJvmRoute in interface SessionIdGenerator
      Returns:
      the node identifier associated with this node which will be included in the generated session ID.
    • setJvmRoute

      public void setJvmRoute(String jvmRoute)
      Specify the node identifier associated with this node which will be included in the generated session ID.
      Specified by:
      setJvmRoute in interface SessionIdGenerator
      Parameters:
      jvmRoute - The node identifier
    • getSessionIdLength

      public int getSessionIdLength()
      Return the number of bytes for a session ID
      Specified by:
      getSessionIdLength in interface SessionIdGenerator
      Returns:
      the number of bytes for a session ID
    • setSessionIdLength

      public void setSessionIdLength(int sessionIdLength)
      Specify the number of bytes for a session ID
      Specified by:
      setSessionIdLength in interface SessionIdGenerator
      Parameters:
      sessionIdLength - Number of bytes
    • generateSessionId

      public String generateSessionId()
      Generate and return a new session identifier.
      Specified by:
      generateSessionId in interface SessionIdGenerator
      Returns:
      the newly generated session id
    • getRandomBytes

      protected void getRandomBytes(byte[] bytes)
    • initInternal

      protected void initInternal() throws LifecycleException
      Description copied from class: LifecycleBase
      Sub-classes implement this method to perform any instance initialisation required.
      Specified by:
      initInternal in class LifecycleBase
      Throws:
      LifecycleException - If the initialisation fails
    • startInternal

      protected void startInternal() throws LifecycleException
      Description copied from class: LifecycleBase
      Sub-classes must ensure that the state is changed to LifecycleState.STARTING during the execution of this method. Changing state will trigger the Lifecycle.START_EVENT event. If a component fails to start it may either throw a LifecycleException which will cause it's parent to fail to start or it can place itself in the error state in which case LifecycleBase.stop() will be called on the failed component but the parent component will continue to start normally.
      Specified by:
      startInternal in class LifecycleBase
      Throws:
      LifecycleException - Start error occurred
    • stopInternal

      protected void stopInternal() throws LifecycleException
      Description copied from class: LifecycleBase
      Sub-classes must ensure that the state is changed to LifecycleState.STOPPING during the execution of this method. Changing state will trigger the Lifecycle.STOP_EVENT event.
      Specified by:
      stopInternal in class LifecycleBase
      Throws:
      LifecycleException - Stop error occurred
    • destroyInternal

      protected void destroyInternal() throws LifecycleException
      Description copied from class: LifecycleBase
      Sub-classes implement this method to perform any instance destruction required.
      Specified by:
      destroyInternal in class LifecycleBase
      Throws:
      LifecycleException - If the destruction fails