Тайм-аут сеанса в Java (с Spring Boot и Hazelcast) - PullRequest
1 голос
/ 18 марта 2019

У меня есть Java-приложение, созданное с помощью Spring Boot 1.5.13, и мне не удается установить время ожидания сеанса 60 минут. Я обнаружил, что по умолчанию Spring устанавливает тайм-аут на 30 минут. В этом проекте мы используем:

  • пользовательская конфигурация для HttpSecurity

    Защищенная пустота (HttpSecurity http) {

    http.successHandler ((httpServletRequest, httpServletResponse, аутентификация) -> {

    httpServletResponse.setHeader (AUTHENTICATED_HEADER_NAME, AUTHENTICATED_TRUE);

    HttpSession session = httpServletRequest.getSession (); session.setMaxInactiveInterval (3600); }) }

  • и Hazelcast с аннотацией

@ EnableHazelcastHttpSession (hazelcastFlushMode = HazelcastFlushMode.IMMEDIATE, maxInactiveIntervalInSeconds = 3600)

в классе конфигурации.

Ни один из вышеперечисленных методов до сих пор не работал, но я обнаружил, что могу использовать в файле application.properties server.session.timeout=timeInSeconds, но это не дало эффекта. В режиме отладки я вижу, что session.maxInactiveInterval установлен на 3600 секунд, но когда я запускаю веб-интерфейс на своем компьютере с бэкендом, имеющим вышеуказанные изменения, я получаю 30-минутный сеанс.

Еще более странным является тот факт, что если я настрою из HttpSecurity setMaxInactiveInterval() любое значение меньше 30 минут, это сработает, я получу сеанс для этого желаемого значения времени, но если я попытаюсь использовать значение, большее чем через 30 минут, сессия истечет через 30 минут.

...