Я прочитал кучу вопросов по этому поводу, но ни один из них не похож на мой крайний случай, когда у меня уже есть JWT.
Я использую Auth0 (обратите внимание, auth-zero, а не Oauth) в своем интерфейсе, чтобы получить загруженный JWT с областями и аутентификацией для моего бэкэнда. Когда я вхожу в свой внешний клиент, я получаю хороший JWT с access_token. Если я скопирую этот токен, я смогу сделать прямой запрос curl к своим серверным микросервисам.
curl -X GET -H "Authorization: Bearer TOKEN_HERE" -H "Cache-Control: no-cache" "http://192.168.0.109:39885"
И это работает, как и ожидалось, я получаю ответ 200. Ницца.
Теперь, когда я пытаюсь выполнить тот же запрос curl через прокси-сервер Zuul, я получаю неприятный 401.
Конфигурация моего шлюза:
@EnableHystrix
@EnableZuulProxy
@EnableEurekaClient
@SpringBootApplication
public class EdgeServiceApplication {
public static void main(String[] args) {
SpringApplication.run(EdgeServiceApplication.class, args);
}
}
Теперь читаем документацию и эта беседа от блестящего доктора Сайера Я знаю, что мне нужно разрешить заголовки идти вниз по течению, что Я сделал:
zuul:
sensitiveHeaders:
routes:
instances:
path: /instances/**
serviceId: instance-service
restore:
path: /restore/**
serviceId: restore-service
Установка sensitiveHeaders
пустым должна разрешать все (конечно, для тестирования).
Глядя дальше в документы, я вижу, что мне нужно добавить @EnableOAuth2Sso
в мою конфигурацию Zuul. Вот тут я запутался/все ломается.
Насколько я знаю, @EnableOAuth2Sso
предназначен для создания и проверки токенов. Я не хочу этого делать. У меня уже есть хороший токен для моего микросервиса (который проверяет его там внизу).
Как мне сказать Зуулу, чтобы он не связывался с моими JWT и просто отправил их?