org.eclipse.net4j.util.security

## Class ResponseNegotiator

- java.lang.Object
- - org.eclipse.net4j.util.event.Notifier
  - - org.eclipse.net4j.util.lifecycle.Lifecycle
    - - org.eclipse.net4j.util.fsm.FiniteStateMachine<STATE,EVENT,INegotiationContext>
      - - org.eclipse.net4j.util.security.Negotiator<IChallengeResponse.State,IChallengeResponse.Event>
        - - org.eclipse.net4j.util.security.ChallengeResponseNegotiator
          - - org.eclipse.net4j.util.security.ResponseNegotiator

- All Implemented Interfaces:
    INotifier, IDeactivateable, ILifecycle, ILifecycle.DeferrableActivation, IChallengeResponse, INegotiationContext.Receiver, INegotiator

      public class ResponseNegotiator
      extends ChallengeResponseNegotiator

  Author:
    Eike Stepper

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.eclipse.net4j.util.security.ChallengeResponseNegotiator

      `ChallengeResponseNegotiator.Transition`

    - ### Nested classes/interfaces inherited from class org.eclipse.net4j.util.fsm.FiniteStateMachine

      `FiniteStateMachine.ChangeStateTransition, FiniteStateMachine.FailTransition, FiniteStateMachine.IgnoreTransition, FiniteStateMachine.StateChangedEvent`

    - ### Nested classes/interfaces inherited from interface org.eclipse.net4j.util.security.IChallengeResponse

      `IChallengeResponse.Event, IChallengeResponse.State`

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

      `ILifecycle.DeferrableActivation`

  - ### Field Summary

    - ### Fields inherited from class org.eclipse.net4j.util.fsm.FiniteStateMachine

      `FAIL, IGNORE`

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

      `USE_LABEL`

    - ### Fields inherited from interface org.eclipse.net4j.util.security.IChallengeResponse

      `ACKNOWLEDGE_FAILURE, ACKNOWLEDGE_SUCCESS`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ResponseNegotiator()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `doBeforeActivate()`
    `protected byte[]` | `encryptToken(char[] password, byte[] token)`
    `IPasswordCredentialsProvider` | `getCredentialsProvider()`
    `protected void` | `handleAcknowledgement(INegotiationContext context, boolean success)`
    `protected void` | `handleChallenge(INegotiationContext context, java.nio.ByteBuffer challenge, java.nio.ByteBuffer response)`
    `void` | `setCredentialsProvider(IPasswordCredentialsProvider credentialsProvider)`

    - ### Methods inherited from class org.eclipse.net4j.util.security.ChallengeResponseNegotiator

      `createChallenge, getEncryptionAlgorithmName, getEncryptionIterationCount, getEncryptionSaltBytes, getState, handleResponse, setEncryptionAlgorithmName, setEncryptionIterationCount, setEncryptionSaltBytes, setState`

    - ### Methods inherited from class org.eclipse.net4j.util.security.Negotiator

      `getBufferEvent, getFailureState, getInitialState, getStartEvent, getSuccessState, handleFailure, handleSuccess, isInitiator, negotiate, postProcess, receiveBuffer`

    - ### Methods inherited from class org.eclipse.net4j.util.fsm.FiniteStateMachine

      `changeState, createFailTransition, createIgnoreTransition, formatFailMessage, formatIgnoreMessage, formatProcessMessage, getEvents, getStates, getTransition, init, init, initAll, initAll, initEvents, initEvents, initStates, initStates, process`

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

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

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

      `addListener, fireEvent, fireEvent, fireEvent, fireThrowable, firstListenerAdded, getListeners, getNotificationService, hasListeners, lastListenerRemoved, 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`

- - ### Constructor Detail

    - #### ResponseNegotiator

          public ResponseNegotiator()

  - ### Method Detail

    - #### getCredentialsProvider

          public IPasswordCredentialsProvider getCredentialsProvider()

    - #### setCredentialsProvider

          public void setCredentialsProvider(IPasswordCredentialsProvider credentialsProvider)

    - #### doBeforeActivate

          protected void doBeforeActivate()
                                   throws java.lang.Exception

      Overrides:
        `doBeforeActivate` in class `ChallengeResponseNegotiator`
      Throws:
        `java.lang.Exception`

    - #### handleChallenge

          protected void handleChallenge(INegotiationContext context,
                                         java.nio.ByteBuffer challenge,
                                         java.nio.ByteBuffer response)

      Overrides:
        `handleChallenge` in class `ChallengeResponseNegotiator`

    - #### handleAcknowledgement

          protected void handleAcknowledgement(INegotiationContext context,
                                               boolean success)

      Overrides:
        `handleAcknowledgement` in class `ChallengeResponseNegotiator`
      Since:
        2.0

    - #### encryptToken

          protected byte[] encryptToken(char[] password,
                                        byte[] token)

Copyright (c) 2014 Eike Stepper (Berlin, Germany) and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html