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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `destroyInternal()` Sub-classes implement this method to perform any instance destruction required.
    `String` | `generateSessionId()` Generate and return a new session identifier.
    `String` | `getJvmRoute()` Return the node identifier associated with this node which will be included in the generated session ID.
    `protected void` | `getRandomBytes(byte[] bytes)`
    `String` | `getSecureRandomAlgorithm()` Get the name of the algorithm used to create the `SecureRandom` instances which generate new session IDs.
    `String` | `getSecureRandomClass()` Get the class name of the `SecureRandom` implementation used to generate session IDs.
    `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(String jvmRoute)` Specify the node identifier associated with this node which will be included in the generated session ID.
    `void` | `setSecureRandomAlgorithm(String secureRandomAlgorithm)` Specify a non-default algorithm to use to create instances of `SecureRandom` which are used to generate session IDs.
    `void` | `setSecureRandomClass(String secureRandomClass)` Specify a non-default `SecureRandom` implementation to use.
    `void` | `setSecureRandomProvider(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`

- - ### Constructor Detail

    - #### SessionIdGeneratorBase

          public SessionIdGeneratorBase()

  - ### Method Detail

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

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