Управление истечением срока действия сеанса для весенней загрузки

#java #spring-boot #spring-security #spring-session

Вопрос:

Я установил тайм-аут сеанса в 3 минуты в своем проекте:

Мое заявление.файл yml

   servlet:
     contextPath: /
     session:
        cookie:
          name: TEST_SESSION
          max-age: 180
        timeout: 180
 

web.xml

 <session-config>
    <cookie-config>
        <name>WMS_JSESSIONID</name>
    </cookie-config>
    <session-timeout>
        3
    </session-timeout>
</session-config>
 

Мой SecurityConfig.java

     protected void configure(HttpSecurity http) throws Exception {
 http
                .requiresChannel().anyRequest().requiresSecure().and() 
                .requestMatchers()
                .antMatchers("/", "/login**")
                .and()
                .authorizeRequests()
                .antMatchers("/login**")
                .permitAll()
                .and()
                .authorizeRequests()
                .anyRequest()
                .authenticated()
                .and()
                .exceptionHandling()
                .authenticationEntryPoint(new SpLoginUrlAuthenticaitonEntryPoint("/login"))
                .and()
                .formLogin()
                .successHandler(spAuthenticationSuccessHandler)
                .failureHandler(spAuthenticationFailureHandler)
                .permitAll()
                .and()
                .logout().clearAuthentication(true)
                .logoutUrl("/logout")
                .logoutSuccessUrl("/login?logout")
                .deleteCookies("SESSIONID")
                .invalidateHttpSession(true)
                .permitAll()
                .and()
                .rememberMe().alwaysRemember(false).rememberMeServices(rememberMeServices()).key(internalSecretKey).tokenValiditySeconds(1200000)
                .sessionManagement()
                .invalidSessionUrl("/login?sessionExpired=true")
                .and()
                .csrf().disable().cors();
    }
 

Я добавил URL-адрес для недопустимого перенаправления сеанса.

Проблема: я установил тайм-аут в 3 минуты, но через 3 минуты он автоматически не перенаправляется на страницу /входа в систему. Я могу выполнять другие действия(сохранять/извлекать данные) даже через 3 минуты. ТОЛЬКО ПРИ ОБНОВЛЕНИИ он перенаправляется на URL-адрес истечения срока действия сеанса.

Я хочу, чтобы перенаправление по истечении срока действия сеанса выполнялось только для зарегистрированных пользователей. В настоящее время без входа в систему , при обновлении через 3 минуты он перенаправляется на URL-адрес sessionexpiry.

Комментарии:

1. Если он работает после обновления браузера, это означает, что ваш браузер кэширует. Покажите свой журнал запросов из вашего инструмента разработки (F12).

2. Если срок действия сеанса истек, вы больше не знаете, что ваш пользователь вошел в систему. Вся информация исчезла.