# Interface ServerAuth

All Known Subinterfaces:
  `ServerAuthContext, ServerAuthModule`

public interface ServerAuth

- ## Method Summary

  Modifier and Type
  Method
  Description
  `default void`
  `cleanSubject(MessageInfo messageInfo, Subject subject)`
  Remove principals and/or credentials from the subject that were previously added by this authentication mechanism.
  `default AuthStatus`
  `secureResponse(MessageInfo messageInfo, Subject serviceSubject)`
  Secure (authenticate) the response.
  `AuthStatus`
  `validateRequest(MessageInfo messageInfo, Subject clientSubject, Subject serviceSubject)`
  Validate the request.

- ## Method Details

  - ### validateRequest

    AuthStatus validateRequest(MessageInfo messageInfo, Subject clientSubject, Subject serviceSubject) throws AuthException
    Validate the request.
    Parameters:
      `messageInfo` - The associated request and response
      `clientSubject` - The subject that represents the source of the request
      `serviceSubject` - The subject that represents the recipient of the request
    Returns:
      An AuthStatus instance that represents the result of the validation
    Throws:
      `AuthException` - If a failure occurred in a manner that prevented the failure from being communicated via messageInfo

  - ### secureResponse

    default AuthStatus secureResponse(MessageInfo messageInfo, Subject serviceSubject) throws AuthException
    Secure (authenticate) the response.
    Parameters:
      `messageInfo` - The associated request and response
      `serviceSubject` - The subject that represents the source of the response
    Returns:
      An AuthStatus instance that represents the result of the authentication
    Throws:
      `AuthException` - If a failure occurred in a manner that prevented the failure from being communicated via messageInfo

  - ### cleanSubject

    default void cleanSubject(MessageInfo messageInfo, Subject subject) throws AuthException
    Remove principals and/or credentials from the subject that were previously added by this authentication mechanism.
    Parameters:
      `messageInfo` - The associated request and response
      `subject` - The subject to clean
    Throws:
      `AuthException` - If a failure occurred