Spring double SessionManagement в приложении - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть приложение с @Controller для веб-просмотра и @RestController для слоя API.

Слой контроллера требует сессии, используя куки с JSESSIONID.

Как и для слоя API Я создал токен JWT и использовал filterBefore, который обеспечивает аутентификацию с указанным токеном SecurityContextHolder.getContext().setAuthentication(authenticationToken);

Теперь у меня проблема:

  • Требуется авторизация токена sessionCreationPolicy(SessionCreationPolicy.STATELESS)
  • web-view все еще нужно JSESSIONID

Конечно, API можно использовать таким образом, но в конечном итоге он использует JSESSIONID вместо токена, поэтому, если я изменю токен в заголовке Authorization (например, используя другого пользователя), он все еще будет использовать учетные данные ранее авторизованного пользователя.

Есть ли возможность сделать сеанс STATELESS для одной группы конечных точек (например: /api/**), и ALWAYS на других конечных точках. Или, может быть, есть какая-то возможность заставить @Controller работать с аутентификацией на основе токенов?

Спасибо за любые идеи.

...