SessionIdGeneratorBase (Apache Tomcat 8.5.96 API Documentation)

Package org.apache.catalina.util

## 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

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.catalina.Lifecycle

      `Lifecycle.SingleUse`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String` | `DEFAULT_SECURE_RANDOM_ALGORITHM` |

    - ### 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
    --- | ---
    `SessionIdGeneratorBase()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `destroyInternal()` | Sub-classes implement this method to perform any instance destruction required.
    `java.lang.String` | `generateSessionId()` | Generate and return a new session identifier.
    `java.lang.String` | `getJvmRoute()` | Return the node identifier associated with this node which will be included in the generated session ID.
    `protected void` | `getRandomBytes​(byte[] bytes)` |
    `java.lang.String` | `getSecureRandomAlgorithm()` | Get the name of the algorithm used to create the `SecureRandom` instances which generate new session IDs.
    `java.lang.String` | `getSecureRandomClass()` | Get the class name of the `SecureRandom` implementation used to generate session IDs.
    `java.lang.String` | `getSecureRandomProvider()` | Get the name of the provider used to create the `SecureRandom` instances which generate new session IDs.
    `int` | `getSessionIdLength()` | Return the number of bytes for a session ID
    `protected void` | `initInternal()` | Sub-classes implement this method to perform any instance initialisation required.
    `void` | `setJvmRoute​(java.lang.String jvmRoute)` | Specify the node identifier associated with this node which will be included in the generated session ID.
    `void` | `setSecureRandomAlgorithm​(java.lang.String secureRandomAlgorithm)` | Specify a non-default algorithm to use to create instances of `SecureRandom` which are used to generate session IDs.
    `void` | `setSecureRandomClass​(java.lang.String secureRandomClass)` | Specify a non-default `SecureRandom` implementation to use.
    `void` | `setSecureRandomProvider​(java.lang.String secureRandomProvider)` | Specify a non-default provider to use to create instances of `SecureRandom` which are used to generate session IDs.
    `void` | `setSessionIdLength​(int sessionIdLength)` | Specify the number of bytes for a session ID
    `protected void` | `startInternal()` | Sub-classes must ensure that the state is changed to `LifecycleState.STARTING` during the execution of this method.
    `protected void` | `stopInternal()` | Sub-classes must ensure that the state is changed to `LifecycleState.STOPPING` during the execution of this method.

    - ### 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, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.catalina.SessionIdGenerator

      `generateSessionId`

- - ### Field Detail

    - #### DEFAULT_SECURE_RANDOM_ALGORITHM

          public static final java.lang.String DEFAULT_SECURE_RANDOM_ALGORITHM

  - ### Constructor Detail

    - #### SessionIdGeneratorBase

          public SessionIdGeneratorBase()

  - ### Method Detail

    - #### getSecureRandomClass

          public java.lang.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​(java.lang.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 java.lang.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​(java.lang.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 java.lang.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​(java.lang.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 java.lang.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​(java.lang.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 java.lang.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