boolean needToAuthenticate() {
    if (getAuthenticationType() == null) return false;
    if (getCredentialsForRealm() != null) return true;
    if (!_client.getExceptionsThrownOnErrorStatus()) return false;

    throw createAuthorizationRequiredException();
  }