Spring Security 5.2.3 Поток учетных данных клиента oAuth2 - PullRequest
0 голосов
/ 09 мая 2020

Итак, я построил "маленький" сервер авторизации oauth2 / openid с нуля в Java, следуя RFC. Все работает хорошо. Теперь я пытался использовать поток учетных данных клиента, используя преимущества нового стека Spring Security для клиентов oauth2 , но меня немного озадачил пример, который я вижу в документации для этот поток.

В моей настройке у меня есть:

  • Сервер авторизации
  • Один сервер ресурсов
  • Другой сервер ресурсов, который должен вызвать защищенная конечная точка на первом сервере ресурсов

Если я правильно понимаю вышеупомянутый поток, он использовался именно в последнем случае.

Что меня озадачивает в примере из Spring, так это что при создании OAuth2AuthorizeRequest требуется действующий принципал, и это не имеет для меня смысла. Я хочу, чтобы мой ресурсный сервер получил access_token от сервера авторизации для себя , зачем мне предоставлять уже аутентифицированного Принципала?

Я действительно попробовал пример и заставил его работать, предоставив действительный Принципал (с использованием access_token, полученного извне с потоком кода авторизации), но в конце вызов метода authorizedClient.getAccessToken () просто возвращает мне тот же токен Принципала, который я предоставил построителю запросов. Более того, при выполнении примера я вижу на своем сервере авторизации, что выдается фактический токен доступа для этого сервера ресурсов и ответ правильный, но он в основном игнорируется в примере кода.

Я мог бы легко реализовать пользовательский фрагмент кода, который выполняет поток, но сначала я хотел попробовать код Spring. Я не уверен, что я делаю не так и чего мне не хватает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...