private void populateContextFromAuthId(String authId) {
    try {
      String sessionId =
          authIdHelper.reconstructAuthId(authId).getClaimsSet().getClaim(SESSION_ID, String.class);
      if (isEmpty(sessionId)) {
        return;
      }

      String contextId = getContextIdFromSessionId(sessionId);
      if (isNotEmpty(contextId)) {
        AuditRequestContext.putProperty(AUTH.toString(), contextId);
      }
    } catch (RestAuthException e) {
      debug.warning("No session ID found when trying to audit an authentication request.");
    }
  }
  @Override
  protected Map<String, String> getContextsForAccessOutcome(Response response) {
    String tokenId = AuditRequestContext.getProperty(TOKEN_ID);
    String sessionId = AuditRequestContext.getProperty(SESSION_ID);
    String authId = AuditRequestContext.getProperty(AUTH_ID);
    if (isNotEmpty(tokenId)) {
      populateContextFromTokenId(tokenId);

    } else if (isNotEmpty(sessionId)) {
      AuditRequestContext.putProperty(AUTH.toString(), getContextIdFromSessionId(sessionId));

    } else if (isNotEmpty(authId)) {
      populateContextFromAuthId(authId);
    }

    return super.getContextsForAccessOutcome(response);
  }