Почему я получаю запрет 403 при попытке проверить JWT с прокси-сервера Zuul?

#java #jwt #netflix-zuul

#java #jwt #netflix-zuul

Вопрос:

Я зарегистрировал службу аутентификации на Eureka и прошел аутентификацию с помощью прокси-сервера Zuul. Это файл application.properties службы Zuul:

 server.port=8090
zuul.routes.authentication-service.url=http://localhost:8095
ribbon.eureka.enabled=false
zuul.sensitive-headers=Set-Cookie,Authorization
  

http://localhost:8095/login сопоставляется для аутентификации и http://localhost:8095/validate для проверки токена. Из-за прокси-сервера zuul я могу получить доступ к этим ресурсам из http://localhost:8090/authentication-service /. /login Сопоставление работает нормально, но когда я пытаюсь http://localhost:8090/authentication-service/validate и передаю токен в поле «Авторизация», я получаю «Доступ запрещен». Это то, что у меня есть в Postman:

 {
    "timestamp": "2020-09-18T09:30:35.543 00:00",
    "status": 403,
    "error": "Forbidden",
    "message": "Access Denied",
    "path": "/validate"
}
  

Но когда я передаю тот же токен http://localhost:8095/validate , я получаю желаемый результат.

Чего мне здесь не хватает? Была ли проблема с передачей токена из Zuul? Как я могу это исправить?

Ответ №1:

Вы должны удалить Authorization его в своей sensitive-headers конфигурации.

Zuul автоматически удаляет заголовки, указанные в конфиденциальных заголовках. Итак, ваш токен удаляется из вашего запроса.