How to redirect using spring security session time out?

Viewed 1611

I'm using spring boot 2.2.0.M2 spring security this package version is 5.2.0, my project fronted is done in vuejs 2.6.10

What I want to archive seems very simple, when spring security session is time out i want to redirect ( force browser ) to go to URL http://localhost:8080/

What I was trying till now is:

I have created configuration class:

@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?
 }
}

and in my application.properties I have added for testing purpouses:

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

And after one minute nothing happens.

So I thought that maybe something is wrong and session is not timeout so I've run my application in debug mode and I putted break point in

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

And after one minute I'm in, debugger stopped in sessionDestroyed method so session is no longer exist.

About my UI, I'm using vuejs embedded in thyme leaf page:

enter image description here

So my question is do You know how to force browser to reload my application or redirect to http://localhost:8080/ when spring security session is expired (timeout) ?

0 Answers
Related