如何使用Spring Security会话超时进行重定向?

时间:2019-07-01 14:20:01

标签: spring spring-boot spring-security thymeleaf

我正在使用spring boot 2.2.0.M2 spring security,此软件包的版本是5.2.0,我的项目在vuejs 2.6.10中完成

我想存档的内容看起来非常简单,当春季安全性会话超时时,我想重定向(强制浏览器)转到URL http://localhost:8080/

到目前为止,我一直在尝试:

我创建了配置类:

@Configuration
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter 
{

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable()
                .formLogin()
                    .loginPage("/")
                        .defaultSuccessUrl("/admin#/timetable")
                    .permitAll()
                .and().logout()
                    .logoutSuccessUrl("/")
                .permitAll()
                .and()
                .sessionManagement()
                .maximumSessions(1)
                .expiredUrl("/")
                .expiredSessionStrategy(event -> event.getResponse().sendRedirect("/"));
                // this supoose to work right?
 }
}

并在我的application.properties中添加了用于测试目的的

# Server
server.servlet.session.timeout=1m

一分钟后没有任何反应。

所以我认为也许是错误的,并且会话没有超时,所以我在调试模式下运行了应用程序,并在

中放置了断点
package org.springframework.security.web.session;
...
public class HttpSessionEventPublisher implements HttpSessionListener 
{
  ...
  public void sessionDestroyed(HttpSessionEvent event) {
  //my break point
  }
}

一分钟后,调试器在sessionDestroyed方法中停止,因此会话不再存在。

关于我的UI,我正在使用嵌入在百里香叶子页中的vuejs:

enter image description here

所以我的问题是,您知道如何在Spring安全会话过期(超时)时强制浏览器重新加载我的应用程序或重定向到http://localhost:8080/吗?

0 个答案:

没有答案