URL-адрес проверки токена Google OAuth возвращает ошибку HTTP 400 после того, как тот же код работал в течение нескольких дней

Вот код, который работает на Tomcat и работает около 10 дней, когда несколько пользователей могут войти в систему с помощью единого входа OAuth 20, после чего он получает ответ HTTP 400 от Google:(https://accounts.google.com/o/oauth2/token)

Подскажите, что может быть упущено:

CloseableHttpClient httpclient = HttpClientBuilder.create().build();

        HttpUriRequest post = RequestBuilder.post(data.getOauthTokenURI())
      .addParameter("code", code)
            .addParameter("grant_type", "authorization_code")
            .addParameter("client_id", data.getOauthClientId())
            .addParameter("client_secret", data.getOauthClientSecretDec())
            .addParameter("redirect_uri", data.getOauthRedirectURI())
      .build();

        String postResponseBody = null;
  CloseableHttpResponse httpResponse = null;
        try {
            httpResponse = httpclient.execute(post);
    int httpCode = httpResponse.getStatusLine().getStatusCode();

person user3333725    schedule 09.12.2015    source источник


Ответы (1)


РЕЗЮМЕ:

В понедельник, 7 декабря 2015 г., 1,29 % приложений Google App Engine получили ошибки при отправке аутентифицированных вызовов к API Google в течение 17 часов 3 минут. В течение 45 минут аутентифицированные вызовы API Google из-за пределов App Engine также приводили к ошибкам, при этом частота ошибок достигала 12 %. Приносим извинения за влияние этой проблемы на вас и вашу службу. Мы считаем деградацию сервиса такого уровня и продолжительности очень серьезной, и мы планируем много изменений, чтобы предотвратить повторение этого в будущем.

ПОДРОБНОЕ ОПИСАНИЕ ВОЗДЕЙСТВИЯ:

В период с понедельника, 7 декабря 2015 г., 20:09 по тихоокеанскому стандартному времени, и вторника, 8 декабря 2015 г., 13:12 1,29 % приложений Google App Engine, использующих учетные записи служб, получили ошибку 401 «Отказано в доступе» для всех запросов к API Google, требующих проверки подлинности. Неаутентифицированные вызовы API не были затронуты. Различные приложения подвергались воздействию в разное время, при этом несколько приложений были затронуты в течение всей продолжительности инцидента.

Кроме того, с 23:05 до 23:50 в среднем 7 % всех запросов к Google Cloud API завершались неудачей или истекли по времени ожидания, а кратковременный пик составил 12 %. Вне этого времени были затронуты только вызовы API из App Engine.

ПЕРВОПРИЧИНА:

Инженеры Google недавно осуществили миграцию системы учетных записей Google на новую серверную часть хранилища, которая включала копирование данных учетных данных службы аутентификации API и перенаправление вызовов API на новую серверную часть.

Для завершения этой миграции учетные данные должны были быть удалены из предыдущей серверной части хранилища. Этот процесс начался в 20:09 по тихоокеанскому стандартному времени в понедельник, 7 декабря 2015 г. Из-за программной ошибки служба аутентификации API продолжала искать некоторые учетные данные, в том числе используемые учетными записями службы Google App Engine, в старом бэкэнде хранилища. Поскольку эти учетные данные постепенно удалялись, их соответствующие учетные записи служб больше не могли быть аутентифицированы.

Воздействие усиливалось по мере того, как удалялось больше учетных данных, а некоторые приложения Google App Engine начали выдавать большое количество запросов на повторную попытку. В 23:05 количество повторных попыток превысило региональные возможности службы аутентификации API, в результате чего 1,3% всех аутентифицированных вызовов API завершились сбоем или истекло время ожидания, включая API Google, вызываемые из-за пределов Google App Engine. В 23:30 служба аутентификации API превысила свои глобальные возможности, что привело к сбою до 12% всех вызовов API с проверкой подлинности до 23:50, когда проблема с перегрузкой была решена.

person pinoyyid    schedule 16.12.2015