В моей настройке у меня есть служба за воротами zuul, настроенная с помощью Spring Security;Мой клиент - простой веб-сайт, выполняющий AJAX-запрос к шлюзу.
Я поместил CrossOrigin-Annotation на конечную точку в контроллере сервиса, поэтому выполнение запроса непосредственно к сервисам проходит, указывая запрос нашлюз в настоящее время заканчивается 401 ошибкой в моем OPTIONS-запросе.
Похоже, что запрос с заголовком авторизации не достигает Spring Security, так как этот заголовок сейчас не разрешен.
В настоящее время я расширяю WebSecurityConfigurerAdapter, чтобы разрешить все запросы параметров.
РЕДАКТИРОВАТЬ: Вопрос: Как настроить Spring Security, чтобы не требовать аутентификации для OPTIONS-запросов?
EDIT2: Я создал GIST с соответствующим кодом:
- Клиент:
hello.js
, index.html
- Шлюз:
WebSecurityonfig.java
, SimpleCORSFilter.java
, GatewayApp.java
- Услуга:
ContactController.java
EDIT2: после сбора дополнительной информации о OPTIONS-Preflight и Spring (Security) кажется, что проблема связана с Spring Security.
Мы используем токен-носитель для авторизации клиентов, поэтомубраузер отправляет запрос OPTIONS-Preflight на сервер.Сервер защищен Spring Security, который не находит действительный заголовок авторизации и поэтому возвращает с 401-несанкционированным