Package org.eclipse.net4j.util.security

# Class ChallengeNegotiator

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.ChallengeNegotiator

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

public class ChallengeNegotiator 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`

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

`INotifier.INotifier2`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`DEFAULT_TOKEN_LENGTH`

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

## Method Summary

Modifier and Type
Method
Description
`protected void`
`createChallenge(INegotiationContext context, ByteBuffer challenge)`
`protected byte[]`
`createRandomToken()`
`protected void`
`doBeforeActivate()`
`protected byte[]`
`encryptToken(String userID, byte[] token)`
`IRandomizer`
`getRandomizer()`
`int`
`getTokenLength()`
`IUserManager`
`getUserManager()`
`protected boolean`
`handleResponse(INegotiationContext context, ByteBuffer response)`
`void`
`setRandomizer(IRandomizer randomizer)`
`void`
`setTokenLength(int tokenLength)`
`void`
`setUserManager(IUserManager userManager)`

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

`getEncryptionAlgorithmName, getEncryptionIterationCount, getEncryptionSaltBytes, getState, handleAcknowledgement, handleChallenge, 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, 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 Details

### DEFAULT_TOKEN_LENGTH

public static final int DEFAULT_TOKEN_LENGTH

See Also:
  - Constant Field Values

## Constructor Details

### ChallengeNegotiator

public ChallengeNegotiator()

## Method Details

### getTokenLength

public int getTokenLength()

### setTokenLength

public void setTokenLength(int tokenLength)

### getRandomizer

public IRandomizer getRandomizer()

### setRandomizer

public void setRandomizer(IRandomizer randomizer)

### getUserManager

public IUserManager getUserManager()

### setUserManager

public void setUserManager(IUserManager userManager)

### doBeforeActivate

protected void doBeforeActivate() throws Exception

Overrides:
  `doBeforeActivate` in class `ChallengeResponseNegotiator`
Throws:
  `Exception`

### createRandomToken

protected byte[] createRandomToken()

### encryptToken

protected byte[] encryptToken(String userID, byte[] token) throws NegotiationException

Throws:
  `NegotiationException`

### createChallenge

protected void createChallenge(INegotiationContext context, ByteBuffer challenge)

Overrides:
  `createChallenge` in class `ChallengeResponseNegotiator`

### handleResponse

protected boolean handleResponse(INegotiationContext context, ByteBuffer response)

Overrides:
  `handleResponse` in class `ChallengeResponseNegotiator`