Attempts to log the user in with the given authentication token and returns a new or renewed session upon
success.
Side effect: the user will be registered with the current security context.
Parameters:
currentSessionId - A session id, if one exists currently.
host - Host the request to create a session originates from.
authToken - Authentication token to log the user in.
Returns:
A session for the authenticated user wrapped in an Optional, or an empty Optional if
authentication failed.
Throws:
AuthenticationServiceUnavailableException - If authenticating the user fails not due to an issue with the
credentials but because of an external resource being
unavailable