Package org.eclipse.net4j.util.security

## Class UserManager

- java.lang.Object
- - org.eclipse.net4j.util.event.Notifier
  - - org.eclipse.net4j.util.lifecycle.Lifecycle
    - - org.eclipse.net4j.util.security.UserManager

- All Implemented Interfaces:
    `INotifier`, `INotifier.INotifier2`, `IDeactivateable`, `ILifecycle`, `ILifecycle.DeferrableActivation`, `IAuthenticator`, `IUserManager`
  Direct Known Subclasses:
    `FileUserManager`

      public class UserManager
      extends Lifecycle
      implements IUserManager, IAuthenticator

  Author:
    Eike Stepper

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.eclipse.net4j.util.lifecycle.ILifecycle

      `ILifecycle.DeferrableActivation`

    - ### Nested classes/interfaces inherited from interface org.eclipse.net4j.util.event.INotifier

      `INotifier.INotifier2`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected java.util.Map<java.lang.String,​char[]>` | `users` |

    - ### Fields inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle

      `USE_LABEL`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `UserManager()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addUser​(java.lang.String userID, char[] password)` |
    `void` | `authenticate​(java.lang.String userID, char[] password)` | Authenticates the user with the passed `userID` by checking whether the supplied `password` matches the password stored for this user.
    `protected void` | `doActivate()` |
    `protected void` | `doDeactivate()` |
    `byte[]` | `encrypt​(java.lang.String userID, byte[] data, java.lang.String algorithmName, byte[] salt, int count)` |
    `char[]` | `getPassword​(java.lang.String userID)` |
    `protected void` | `load​(java.util.Map<java.lang.String,​char[]> users)` |
    `void` | `removeUser​(java.lang.String userID)` |
    `protected void` | `save​(java.util.Map<java.lang.String,​char[]> users)` |

    - ### Methods inherited from class org.eclipse.net4j.util.lifecycle.Lifecycle

      `activate, checkActive, checkArg, checkArg, checkInactive, checkNull, checkState, checkState, deactivate, deferredActivate, doAfterActivate, doBeforeActivate, doBeforeDeactivate, dump, getLifecycleState, isActive, isDeferredActivation, toString`

    - ### Methods inherited from class org.eclipse.net4j.util.event.Notifier

      `addListener, addUniqueListener, fireEvent, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getListeners, getNotificationService, hasListener, hasListeners, lastListenerRemoved, listenerAdded, listenerRemoved, removeListener`

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

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

    - ### Methods inherited from interface org.eclipse.net4j.util.event.INotifier

      `addListener, getListeners, hasListeners, removeListener`

- - ### Field Detail

    - #### users

          protected transient java.util.Map<java.lang.String,​char[]> users

  - ### Constructor Detail

    - #### UserManager

          public UserManager()

  - ### Method Detail

    - #### addUser

          public void addUser​(java.lang.String userID,
                              char[] password)

      Specified by:
        `addUser` in interface `IUserManager`

    - #### removeUser

          public void removeUser​(java.lang.String userID)

      Specified by:
        `removeUser` in interface `IUserManager`

    - #### getPassword

          public char[] getPassword​(java.lang.String userID)

      Since:
        3.3

    - #### authenticate

          public void authenticate​(java.lang.String userID,
                                   char[] password)

      Description copied from interface: `IAuthenticator`
      Authenticates the user with the passed `userID` by checking whether the supplied `password` matches the password stored for this user.

      The implementation is required to throw a `SecurityException` if the passwords do not match.

      Specified by:
        `authenticate` in interface `IAuthenticator`
      Since:
        3.3

    - #### encrypt

          public byte[] encrypt​(java.lang.String userID,
                                byte[] data,
                                java.lang.String algorithmName,
                                byte[] salt,
                                int count)
                         throws java.lang.SecurityException

      Specified by:
        `encrypt` in interface `IUserManager`
      Throws:
        `java.lang.SecurityException`
      Since:
        2.0

    - #### doActivate

          protected void doActivate()
                             throws java.lang.Exception

      Overrides:
        `doActivate` in class `Lifecycle`
      Throws:
        `java.lang.Exception`

    - #### doDeactivate

          protected void doDeactivate()
                               throws java.lang.Exception

      Overrides:
        `doDeactivate` in class `Lifecycle`
      Throws:
        `java.lang.Exception`

    - #### load

          protected void load​(java.util.Map<java.lang.String,​char[]> users)
                       throws IORuntimeException

      Throws:
        `IORuntimeException`

    - #### save

          protected void save​(java.util.Map<java.lang.String,​char[]> users)
                       throws IORuntimeException

      Throws:
        `IORuntimeException`