This ServerAuthContext class encapsulates ServerAuthModules that are used to validate service requests received from
clients, and to secure any response returned for those requests. A caller typically uses this class in the following
manner:
- Retrieve an instance of this class via
ServerAuthConfig.getAuthContext.
- Invoke validateRequest.
ServerAuthContext implementation invokes validateRequest of one or more encapsulated ServerAuthModules. Modules
validate credentials present in request (for example, decrypt and verify a signature).
- If credentials valid and sufficient, authentication complete.
Perform authorization check on authenticated identity and, if successful, dispatch to requested service application.
- Service application finished.
- Invoke secureResponse.
ServerAuthContext implementation invokes secureResponse of one or more encapsulated ServerAuthModules. Modules secure
response (sign and encrypt response, for example), and prepare response message.
- Send secured response to client.
- Invoke cleanSubject (as necessary) to clean up any authentication state in Subject(s).
A ServerAuthContext 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 ServerAuthConfig instance used to obtain the
ServerAuthContext object. See ServerAuthConfig.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 delegate to the corresponding methods of the encapsulated
authentication modules.