JwtAuthenticationToken не сохраняется в HttpSessionSecurityContextRepository: сервер авторизации spring 0.4.0, spring 5.7
Я использую сервер авторизации spring для аутентификации oauth2 с конфигурацией сервера ресурсов для обработки аутентификации вне сервера. Мой вариант использования выглядит следующим образом:
- пользователь делает запрос на авторизацию конечной точки
- поскольку сеанс не аутентифицирован, система кэширует запрос и перенаправляет пользователя на внешнюю конечную точку для аутентификации.
- После успешной аутентификации внешняя система создает недолговечный токен jwt.
- Токен Jwt отправляется на сервер авторизации, который проверяет и перенаправляет запрос на сохраненный предыдущий запрос (который является вызовом конечной точки авторизации на шаге 1).
- Поскольку токен jwt был аутентифицирован, я хочу, чтобы на этот раз вызов авторизации прошел успешно.
В весенней версии 5.6 владелец securitycontext смог сохранить аутентификацию, и любые последующие запросы в том же сеансе могли использовать jwtauthentication. Теперь, поскольку временная проверка добавлена в HttpSessionSecurityContextRepository.java, jwtauthentication не сохраняется между запросами, и моя функциональность не работает.
Как я могу справиться с этим сценарием? Я хотел бы использовать аутентификацию jwt из внешнего источника в сочетании с сервером авторизации spring. Любые предложения приветствуются.
Я уже проверил аналогичный вопрос: JwtAuthenticationToken не сохраняется в HttpSessionSecurityContextRepository после обновления до версии 5.7, в которой не было никаких входных данных. Я также проверил обсуждения на github как для версии spring 5.7, так и для версии сервера авторизации 0.4.0 и не смог найти никаких руководств.