как получить доступ к одной и той же сессии в Java и Spring - PullRequest
0 голосов
/ 10 января 2019

Всякий раз, когда я запрашиваю пружинный загрузочный контроллер, создается новый сеанс.

Я хочу сохранить тот же сеанс для запроса клиента, поскольку я храню токен JWT в этом сеансе и проверяю пользователя из этого сеанса.

Пример: при успешном входе в систему токен JWT генерируется и отправляется обратно клиенту. Чтобы получить доступ к другим микросервисам, я отправляю тот же токен JWT в микросервис и сохраняю его в сеансе. Теперь, когда я пытаюсь запросить API этого микросервиса, я получаю токен JWT из сеанса, но он создает новый сеанс при каждом запросе.

Ответы [ 2 ]

0 голосов
/ 10 января 2019

Вы использовали для получения звонков в службы? Сеанс создается с помощью sessionId, который сохраняется в файле cookie. Выборка не включает cookie по умолчанию. Вы можете установить опцию {mode: "same-origin"} в fetch.Maybe, которая решит вашу проблему.

0 голосов
/ 10 января 2019

Мы можем точно контролировать, когда будет создан наш сеанс и как Spring Security будет взаимодействовать с ним:

всегда - сеанс всегда будет создаваться, если он еще не существует
ifRequired - сеанс будет создан только при необходимости (по умолчанию)
never - фреймворк никогда не создаст сам сеанс, но будет использовать его, если он уже существует
без сохранения состояния - Spring Security не создает и не использует ни один сеанс

В нашей конфигурации Spring Security: -

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.sessionManagement()
        .sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED)  // Choose your method here for session creation
}

Или в XML: -

<http create-session="ifRequired">...</http>

См. Источник для получения дополнительной информации: - Spring Security Session

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...