Я использую Spring Boot 2.1.1.RELEASE
(spring-security-oauth2
- 2.3.4.RELEASE
).
Я хотел бы создать фильтр с приоритетом после вызова TokenEndpoint#postAccessToken
. Почему ? потому что в этом фильтре я хочу взять токен из tokenStore
и добавить его в качестве файла cookie к ответу.
Я ожидаю, что это даст мне то, что я хочу:
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.(...)
.addFilterAfter(new MyFilter(), BasicAuthenticationFilter.class);
}
Но это не так. Я вижу, что BasicAuthenticationFilter
вызывается после успешной аутентификации на oauth/token
, но он не входит в мой MyFilter
.
Что я должен делать, чтобы позвонить MyFilter
после oauth/token
вызова?
Вы хотите установить cookie с сервера авторизации или с сервера ресурсов? Ваш сервер аутентификации и сервер ресурсов оба находятся в одном контексте? или другие приложения .?
У меня есть два микросервиса. Первый - это сервер авторизации, который предоставляет токены jwt (подписанные его закрытым ключом). Второй микросервис - это сервер ресурсов, который проверяет токены на основе открытого ключа сервера авторизации (предоставляется через конечную точку REST сервером аутентификации)
Вы хотите установить после получения access_token от сервера авторизации? Что> вы хотите сделать, установив cookie?
Нет. Я хотел бы, чтобы сервер авторизации установил cookie, когда oauth/token
вызов сделан внешним приложением. Таким образом, браузер отвечает за добавление токена в каждый запрос, а не за мое приложение. Это защищает меня от XSS-атаки, так как для файла cookie будут установлены значения httpOnly
и secure
.
Планируется ли чтение файла cookie для получения access_token?
Верный. Но это должно быть сделано сервером ресурсов (еще не сделали этого)
простой способ - создать API для той же функциональности. Который принимает access_token в качестве параметра запроса и устанавливает cookie.
Вы предлагаете что-то вроде прокси-микросервиса, который стоит между внешним приложением и серверами аутентификации / ресурсов? прокси-микросервис, который устанавливает токен jwt как cookie и читает токен из cookie?