Spring Security Oauth2 Swagger - PullRequest
       36

Spring Security Oauth2 Swagger

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

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

Я разделил сервер ресурсов и авторизации.Они оба запускаются на моем локальном хосте с разными портами.

  • Сервер ресурсов на порту 8083
  • Сервер авторизации на порту 8081

Всякий раз, когда я пытаюсь«Авторизуйтесь», есть проблемы с CORS.

Я разбудил проект с другого сайта, чтобы использовать его в качестве полигона для тестирования.Ниже представлен разветвленный проект.

https://github.com/cbriarnold/oauth2-spring-boot-2.0.2

Чтобы проверить, как только сервер авторизации и сервер ресурсов запущены, выполните следующее:

  1. Перейдите кhttp://localhost:8083/swagger-ui.html
  2. Нажмите кнопку «Авторизовать»
  3. Нажмите кнопку «Авторизовать» в диалоговом окне

Если у вас открыты инструменты разработчика, вы увидите, чтосуществует ошибка CORS

Доступ к выборке в 'http://localhost:8081/oauth/token/' из источника' http://localhost:8083' заблокирован политикой CORS: Ответ на запрос предполетной проверки не пропускает доступконтрольная проверка: перенаправление не разрешено для предварительного запроса.

Код состояния http, связанный с вышеуказанной ошибкой CORS, был 302.

Итак, я изменяю источник, чтобы попытаться разрешить все(Я знаю, что это нежелательно с точки зрения безопасности, но я просто пытаюсь выяснить, что происходит).Я получу ту же ошибку CORS, но с кодом состояния https 403. Код можно найти в следующей ветке.

https://github.com/cbriarnold/oauth2-spring-boot-2.0.2/tree/permitAll

Есть предложения?

1 Ответ

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

Я думаю, вам нужно добавить @CrossOrigin(/*your hitting server*/) на ваших контроллерах

Это проверка безопасности Chrome, чтобы увидеть, разрешено ли вам общаться с этим сервером или нет, он сначала отправляет запрос опции, и если вы 'Разрешено отправлять ваш исходный запрос, который обращается к swagger

, если вы хотите убедиться, что это проблема перекрестного происхождения или не пытаться отправить этот запрос через почтальона, потому что почтальон отправляет ваш запрос напрямую без запроса опций

...