Spring oauth2 клиент не отправляет заголовок авторизации - PullRequest
0 голосов
/ 27 ноября 2018

У меня 2 микросервиса.1 - это настройка проекта Spring boot 2 в качестве сервера oauth2, работающего на порту 8000, а другая - клиент oauth2 проекта Spring boot 2, работающий на порте 8001.

У меня есть настройка oauth-сервера, и я могу подтвердить, что он работаетпотому что я получаю токен, когда я вхожу, используя идентификатор клиента и секрет.Я использую Почтальон, чтобы сделать сообщение в / oauth / token, и я могу видеть содержимое.Я вижу токен доступа и обновляю токен.

Затем я использую Postman для вызова другого микросервиса, который является загрузочным проектом Spring, в качестве клиента oauth2.Я установил токен доступа, используя Postman в качестве авторизации oauth2, и вижу, что Authorization: Bearer TOKEN добавлено в заголовок.Затем я делаю вызов клиенту oauth2, где я вызываю следующую конечную точку:

@GetMapping("/api/user/test")
@PreAuthorize("isAuthenticated()")
public MyObject doTest() {
    return new String("Test");
}

Когда я вызываю этот URL, я могу определить, что spring отправляет запрос на сервер oauth для получения текущего пользователя.В моем application.yml у меня есть следующее, чтобы Spring знал, где находится oauth-сервер:

security:
  oauth2:
    resource:
      user-info-uri: http://localhost:8000/oauth/user

Пока все хорошо.Теперь вот вещь.Я отлаживаю http://localhost:8000/oauth/user url и согласно весне принципал равен нулю.Я нашел, где это идет не так.Либо моя конфигурация неверна, либо в Spring есть огромная ошибка, потому что когда я добавляю фильтр на сервер oauth2 и печатаю все заголовки, это то, что я вижу:

Header: application/json Header: Java/1.8.0_181 Header: localhost:8000 Header: http Header: 8000 Header: 172.20.0.1 Header: gzip Header: 0 Header: 192.168.178.153:9001 Header: Keep-Alive

КакВы можете видеть, что нет заголовка авторизации.Очевидно, что весенний клиент oauth2 не отправляет заголовок авторизации при вызове user-info-uri.Кто-нибудь может помочь?

Мне нужно знать, как настроить мой клиент oauth2 с весенней загрузкой, чтобы каждый URL, который нуждается в аутентификации, вызывал определенный URL для получения текущего пользователя.

Заранее спасибо,Мартейн

1 Ответ

0 голосов
/ 29 ноября 2018

Я нашел решение.Он подключался через прокси-сервер zull, и по умолчанию прокси-сервер zuul отфильтровывает заголовок авторизации.Добавьте это в конфигурацию zuul, и она будет работать: zuul.sensitiveHeaders: Cookie,Set-Cookie

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