Какой класс / метод в Spring Security обрабатывает перенаправление в / oauth2 / authorization / {registrationId}? Необходимо переопределить для контейнера - PullRequest
1 голос
/ 17 марта 2019

Мы развертываем наш API в док-контейнере за шлюзом.Все, что находится за шлюзом - это http, а не https.В результате, когда Spring Security пытается перенаправить пользователя на Uri авторизации, он делает это в http, который выбрасывает 404. (потому что, когда перенаправление попадает в браузер пользователя, браузер не может найти его в http, только вhttps)

Мне не удалось найти, где происходит это перенаправление.Например, если пользователь переходит на https://thecompany.com/securedpage, и Spring Security видит, что они не аутентифицированы (без JWT), некоторый код будет перенаправлен на /oauth2/authorization/{regsitrationId}.

Я нашел, где выполняется разрешение (OAuth2AuthorizationRequestRedirectWebFilter.filter(ServerWebExchange exchange, WebFilterChain chain) но я не могу найти место, где происходит перенаправление. Я прошел весь путь вниз по цепочке файлов безопасности, но даже в последнем случае в ответе на перенаправление не было ни заголовка, ни статуса 302.

Как переопределить перенаправление для принудительного применения https?

1 Ответ

1 голос
/ 18 марта 2019

Следовали ли вы главе " Конфигурация прокси-сервера " из документации по безопасности Spring для настройки вашего шлюза?

Вам необходимо сообщить приложению об этой конфигурации (https -> шлюз-> http -> your_app), установив заголовки X-Forwarded и настроив ForwardedHeaderFilter в своем приложении

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