def authenticate_active(self, request, principal, auth, life=None, sign=True, skip_handling_check=False, *args, **kwargs):
    "Generate a WLS 'success' response based on interaction with the user\n\n        This function creates a WLS response specifying that the principal was\n        authenticated based on 'fresh' interaction with the user (e.g. input of\n        a username and password).\n\n        Args:\n            request (AuthRequest): the original WAA request\n            principal (AuthPrincipal): the principal authenticated by the WLS\n            auth (str): the authentication method used by the principal.\n            life (int): if specified, the validity (in seconds) of the\n                        principal's session with the WLS.\n            sign (bool): whether to sign the response or not.  Recommended to\n                leave this at the default value of `True` (see warning below).\n\n            *args: passed to `AuthResponse.respond_to_request`\n            **kwargs: passed to `AuthResponse.respond_to_request`\n\n        Returns:\n            An `AuthResponse` instance matching the given arguments.\n\n        Warning:\n            Responses indicating successful authentication *MUST* be signed by\n            the WLS.  It is recommended that you leave `sign` set to `True`, or\n            make sure to sign the response manually afterwards.\n        "
    self._pre_response(request, skip_handling_check)
    if (request.iact == False):
        raise ValueError("WAA demanded passive authentication (iact == 'no')")
    if ((life is None) and (principal.session_expiry is not None)):
        life = int((principal.session_expiry - datetime.datetime.utcnow()).total_seconds())
    response = AuthResponse.respond_to_request(*args, request=request, code=status.SUCCESS, principal=principal.userid, auth=auth, ptags=principal.ptags, life=life, **kwargs)
    return self._finish_response(response=response, sign=sign)
Generate a WLS 'success' response based on interaction with the user

This function creates a WLS response specifying that the principal was
authenticated based on 'fresh' interaction with the user (e.g. input of
a username and password).

Args:
    request (AuthRequest): the original WAA request
    principal (AuthPrincipal): the principal authenticated by the WLS
    auth (str): the authentication method used by the principal.
    life (int): if specified, the validity (in seconds) of the
                principal's session with the WLS.
    sign (bool): whether to sign the response or not.  Recommended to
        leave this at the default value of `True` (see warning below).

    *args: passed to `AuthResponse.respond_to_request`
    **kwargs: passed to `AuthResponse.respond_to_request`

Returns:
    An `AuthResponse` instance matching the given arguments.

Warning:
    Responses indicating successful authentication *MUST* be signed by
    the WLS.  It is recommended that you leave `sign` set to `True`, or
    make sure to sign the response manually afterwards.
def authenticate_active(self, request, principal, auth, life=None, sign=True, skip_handling_check=False, *args, **kwargs):
    "Generate a WLS 'success' response based on interaction with the user\n\n        This function creates a WLS response specifying that the principal was\n        authenticated based on 'fresh' interaction with the user (e.g. input of\n        a username and password).\n\n        Args:\n            request (AuthRequest): the original WAA request\n            principal (AuthPrincipal): the principal authenticated by the WLS\n            auth (str): the authentication method used by the principal.\n            life (int): if specified, the validity (in seconds) of the\n                        principal's session with the WLS.\n            sign (bool): whether to sign the response or not.  Recommended to\n                leave this at the default value of `True` (see warning below).\n\n            *args: passed to `AuthResponse.respond_to_request`\n            **kwargs: passed to `AuthResponse.respond_to_request`\n\n        Returns:\n            An `AuthResponse` instance matching the given arguments.\n\n        Warning:\n            Responses indicating successful authentication *MUST* be signed by\n            the WLS.  It is recommended that you leave `sign` set to `True`, or\n            make sure to sign the response manually afterwards.\n        "
    self._pre_response(request, skip_handling_check)
    if (request.iact == False):
        raise ValueError("WAA demanded passive authentication (iact == 'no')")
    if ((life is None) and (principal.session_expiry is not None)):
        life = int((principal.session_expiry - datetime.datetime.utcnow()).total_seconds())
    response = AuthResponse.respond_to_request(*args, request=request, code=status.SUCCESS, principal=principal.userid, auth=auth, ptags=principal.ptags, life=life, **kwargs)
    return self._finish_response(response=response, sign=sign)