Home » openjdk-7 » javax.security » auth » message » config » [javadoc | source]
public interface: ClientAuthContext [javadoc | source]

All Implemented Interfaces:

This ClientAuthContext class encapsulates ClientAuthModules that are used to secure service requests made by a client, and to validate any responses received to those requests. A caller typically uses this class in the following manner:

  1. Retrieve an instance of this class via ClientAuthConfig.getAuthContext.
  2. Invoke secureRequest.
  3. ClientAuthContext implementation invokes secureRequest of encapsulated ClientAuthModule(s). Module(s) attach credentials to initial request object (for example, a username and password), and/or secure the request (for example, sign and encrypt the request).

  4. Send request and receive response.
  5. Invoke validateResponse.
  6. ClientAuthContext implementation invokes validateResponse of encapsulated ClientAuthModule(s). Module(s) verify or decrypt response as necessary.

  7. Invoke cleanSubject method (as necessary) to clean up any authentication state in Subject.

A ClientAuthContext instance may be used concurrently by multiple callers.

Implementations of this interface are responsible for constructing and initializing the encapsulated modules. The initialization step includes passing the relevant request and response MessagePolicy objects to the encapsulated modules. The MessagePolicy objects are obtained by the ClientAuthConfig instance used to obtain the ClientAuthContext object. See ClientAuthConfig.getAuthContext for more information.

Implementations of this interface are instantiated by their associated configuration object such that they know which modules to invoke, in what order, and how results returned by preceding modules are to influence subsequent module invocations.

Calls to the inherited methods of this interface pass a Map that maybe used by the underlying modules to save and communicate state across a sequence of calls from secureRequest to validateResponse to cleanSubject. The same Map instance must be passed to all methods in a call sequence, and a different Map should be passed to each call sequence.