Java源码示例:org.whispersystems.signalservice.api.push.exceptions.AuthorizationFailedException

示例1
@Override
protected Integer doInBackground(Void... params) {
  try {
    Context                     context        = getActivity();
    SignalServiceAccountManager accountManager = ApplicationDependencies.getSignalServiceAccountManager();

    try {
      accountManager.setGcmId(Optional.<String>absent());
    } catch (AuthorizationFailedException e) {
      Log.w(TAG, e);
    }

    if (!TextSecurePreferences.isFcmDisabled(context)) {
      FirebaseInstanceId.getInstance().deleteInstanceId();
    }

    return SUCCESS;
  } catch (IOException ioe) {
    Log.w(TAG, ioe);
    return NETWORK_ERROR;
  }
}
 
示例2
private Response makeRequest(ConnectionHolder connectionHolder, String authorization, List<String> cookies, String path, String method, String body)
    throws PushNetworkException, NonSuccessfulResponseCodeException
{
  OkHttpClient okHttpClient = connectionHolder.getClient()
                                              .newBuilder()
                                              .connectTimeout(soTimeoutMillis, TimeUnit.MILLISECONDS)
                                              .readTimeout(soTimeoutMillis, TimeUnit.MILLISECONDS)
                                              .build();

  Request.Builder request = new Request.Builder().url(connectionHolder.getUrl() + path);

  if (body != null) {
    request.method(method, RequestBody.create(MediaType.parse("application/json"), body));
  } else {
    request.method(method, null);
  }

  if (connectionHolder.getHostHeader().isPresent()) {
    request.addHeader("Host", connectionHolder.getHostHeader().get());
  }

  if (authorization != null) {
    request.addHeader("Authorization", authorization);
  }

  if (cookies != null && !cookies.isEmpty()) {
    request.addHeader("Cookie", Util.join(cookies, "; "));
  }

  Call call = okHttpClient.newCall(request.build());

  synchronized (connections) {
    connections.add(call);
  }

  Response response;

  try {
    response = call.execute();

    if (response.isSuccessful()) {
      return response;
    }
  } catch (IOException e) {
    throw new PushNetworkException(e);
  } finally {
    synchronized (connections) {
      connections.remove(call);
    }
  }

  switch (response.code()) {
    case 401:
    case 403:
      throw new AuthorizationFailedException("Authorization failed!");
    case 409:
      throw new RemoteAttestationResponseExpiredException("Remote attestation response expired");
    case 429:
      throw new RateLimitException("Rate limit exceeded: " + response.code());
  }

  throw new NonSuccessfulResponseCodeException("Response: " + response);
}
 
示例3
private ResponseBody makeStorageRequest(String authorization, String path, String method, RequestBody body, ResponseCodeHandler responseCodeHandler)
      throws PushNetworkException, NonSuccessfulResponseCodeException
  {
    ConnectionHolder connectionHolder = getRandom(storageClients, random);
    OkHttpClient     okHttpClient     = connectionHolder.getClient()
                                                        .newBuilder()
                                                        .connectTimeout(soTimeoutMillis, TimeUnit.MILLISECONDS)
                                                        .readTimeout(soTimeoutMillis, TimeUnit.MILLISECONDS)
                                                        .build();

//    Log.d(TAG, "Opening URL: " + String.format("%s%s", connectionHolder.getUrl(), path));
    Log.d(TAG, "Opening URL: <REDACTED>");

    Request.Builder request = new Request.Builder().url(connectionHolder.getUrl() + path);
    request.method(method, body);

    if (connectionHolder.getHostHeader().isPresent()) {
      request.addHeader("Host", connectionHolder.getHostHeader().get());
    }

    if (authorization != null) {
      request.addHeader("Authorization", authorization);
    }

    Call call = okHttpClient.newCall(request.build());

    synchronized (connections) {
      connections.add(call);
    }

    Response response;

    try {
      response = call.execute();

      if (response.isSuccessful() && response.code() != 204) {
        return response.body();
      }
    } catch (IOException e) {
      throw new PushNetworkException(e);
    } finally {
      synchronized (connections) {
        connections.remove(call);
      }
    }

    responseCodeHandler.handle(response.code());

    switch (response.code()) {
      case 204:
        throw new NoContentException("No content!");
      case 401:
      case 403:
        throw new AuthorizationFailedException("Authorization failed!");
      case 404:
        throw new NotFoundException("Not found");
      case 409:
        if (response.body() != null) {
          throw new ContactManifestMismatchException(readBodyBytes(response.body()));
        } else {
          throw new ConflictException();
        }
      case 429:
        throw new RateLimitException("Rate limit exceeded: " + response.code());
    }

    throw new NonSuccessfulResponseCodeException("Response: " + response);
  }
 
示例4
private Response makeContactDiscoveryRequest(String authorization, List<String> cookies, String path, String method, String body)
    throws PushNetworkException, NonSuccessfulResponseCodeException
{
  ConnectionHolder connectionHolder = getRandom(contactDiscoveryClients, random);
  OkHttpClient     okHttpClient     = connectionHolder.getClient()
                                                      .newBuilder()
                                                      .connectTimeout(soTimeoutMillis, TimeUnit.MILLISECONDS)
                                                      .readTimeout(soTimeoutMillis, TimeUnit.MILLISECONDS)
                                                      .build();

  Request.Builder request = new Request.Builder().url(connectionHolder.getUrl() + path);

  if (body != null) {
    request.method(method, RequestBody.create(MediaType.parse("application/json"), body));
  } else {
    request.method(method, null);
  }

  if (connectionHolder.getHostHeader().isPresent()) {
    request.addHeader("Host", connectionHolder.getHostHeader().get());
  }

  if (authorization != null) {
    request.addHeader("Authorization", authorization);
  }

  if (cookies != null && !cookies.isEmpty()) {
    request.addHeader("Cookie", Util.join(cookies, "; "));
  }

  Call call = okHttpClient.newCall(request.build());

  synchronized (connections) {
    connections.add(call);
  }

  Response response;

  try {
    response = call.execute();

    if (response.isSuccessful()) {
      return response;
    }
  } catch (IOException e) {
    throw new PushNetworkException(e);
  } finally {
    synchronized (connections) {
      connections.remove(call);
    }
  }

  switch (response.code()) {
    case 401:
    case 403:
      throw new AuthorizationFailedException("Authorization failed!");
    case 409:
      throw new RemoteAttestationResponseExpiredException("Remote attestation response expired");
    case 429:
      throw new RateLimitException("Rate limit exceeded: " + response.code());
  }

  throw new NonSuccessfulResponseCodeException("Response: " + response);
}