#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. Если срок действия сеанса истек, вы больше не знаете, что ваш пользователь вошел в систему. Вся информация исчезла.