Единый вход в систему Cumulocity - 401 ошибка при запросах к микросервису при обновлении токена - PullRequest
0 голосов
/ 20 июня 2019

Справочная информация. Мы настроили единый вход OAuth 2, как описано в https://cumulocity.com/guides/reference/rest-implementation/ в разделе «Предоставление кода аутентификации OAuth».Как описано здесь, наше приложение Angular получает токен xsrf от клиента c8y в виде файла cookie и включает его в качестве заголовка во все последующие запросы.

Срок действия маркера, полученного с сервера OAuth, истекает, и его необходимо периодически обновлять.Когда наше приложение отправляет запрос на сервер c8y, и c8y обнаруживает, что срок действия токена истек, сервер c8y обновляет токен и включает новый токен xsrf в ответ на запрос приложения.Запрос приложения (который использует старый токен) обрабатывается.Наше приложение обнаруживает новый токен xsrf и включает его в последующие запросы.

Проблема: в приведенном выше сценарии, когда срок действия токена истек и приложение выполняет НЕСКОЛЬКО одновременных запросов со старым токеном xsrf, все они обрабатываются,ЗА ИСКЛЮЧЕНИЕМ запроса к микросервису Java, который отклоняется с помощью «401 Unauthorized».Запросы к API арендатора обрабатываются с помощью 200 OK.

Это 401 вызвано ошибкой платформы или Java SDK?Есть ли способ это исправить?Мы используем 9.20.12 Java SDK.Платформа C8y - 1004.0.6.

Для пояснения - мы заметили, что запросы к API-интерфейсам платформы с токеном с истекшим сроком действия возвращают новый токен доступа, а запросы с токеном с истекшим сроком действия к микросервису дают 401.

...