org.apache.turbine.util

## Class GenerateUniqueId

- java.lang.Object
- - org.apache.turbine.util.GenerateUniqueId

-     public class GenerateUniqueId
      extends Object

  This class generates a unique 10+ character id. This is good for authenticating users or tracking users around.

  This code was borrowed from Apache JServ.JServServletManager.java. It is what Apache JServ uses to generate session ids for users. Unfortunately, it was not included in Apache JServ as a class, so I had to create one here in order to use it.

  Version:
    $Id: GenerateUniqueId.java 1709648 2015-10-20 17:08:10Z tv $
  Author:
    Jon S. Stevens, Neeme Praks

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static long` | `maxRandomLen` We want to have a random string with a length of 6 characters.
    `static long` | `maxSessionLifespanTics` The session identifier must be unique within the typical lifespan of a Session; the value can roll over after that. 3 characters: (this means a roll over after over a day, which is much larger than a typical lifespan)
    `static long` | `ticDifference` Millisecons between different tics.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `GenerateUniqueId()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static String` | `getIdentifier()` Get the unique id.
    `String` | `getIdentifier(String jsIdent)` Get the unique id.
    `static void` | `main(String[] args)` Simple test of the functionality.

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

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

- - ### Field Detail

    - #### maxRandomLen

          public static final long maxRandomLen

      We want to have a random string with a length of 6 characters. Since we encode it BASE 36, we've to modulo it with the following value:
      See Also:
        Constant Field Values

    - #### maxSessionLifespanTics

          public static final long maxSessionLifespanTics

      The session identifier must be unique within the typical lifespan of a Session; the value can roll over after that. 3 characters: (this means a roll over after over a day, which is much larger than a typical lifespan)
      See Also:
        Constant Field Values

    - #### ticDifference

          public static final long ticDifference

      Millisecons between different tics. So this means that the 3-character time string has a new value every 2 seconds:
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### GenerateUniqueId

          public GenerateUniqueId()

  - ### Method Detail

    - #### getIdentifier

          public static String getIdentifier()

      Get the unique id.

      NOTE: This must work together with get_jserv_session_balance() in jserv_balance.c

      Returns:
        A String with the new unique id.

    - #### getIdentifier

          public String getIdentifier(String jsIdent)

      Get the unique id.
      Parameters:
        `jsIdent` - A String.
      Returns:
        A String with the new unique id.

    - #### main

          public static void main(String[] args)

      Simple test of the functionality.
      Parameters:
        `args` - A String[] with the command line arguments.

Copyright © 2000-2015 The Apache Software Foundation. All Rights Reserved.