мой sessionManagment с expiredUrl больше не работает. Мой Spring-config выглядит очень прямо.
http.authorizeRequests().antMatchers("/data/h2-console/**").hasRole(DBA.name())
.antMatchers("/","/resources/**").permitAll()
.requestMatchers(EndpointRequest.toAnyEndpoint()).hasRole(ACTUATOR.name())
.antMatchers("/login*").hasRole(ANONYMOUS.name())
.antMatchers("/links/").permitAll()
.and()
.sessionManagement().maximumSessions(1)
.expiredUrl("/login?oneSession")
.and()
.sessionFixation().newSession()
.and()
.formLogin().loginPage("/login")
.usernameParameter("email")
.successHandler(userSuccessfullAthenticationHandler())
.failureUrl("/login?error")
И когда я буду перенаправлен, мой параметр "expiredUrl (" / login? OneSession ")" больше не присутствует. Изначально он отлично работает из коробки. По умолчанию я использую SimpleRedirectInvalidSessionStrategy. SimpleRedirectInvalidSessionStrategy имеет метод onInvalidSessionDetected. Этот метод никогда не будет вызван, потому что ConcurrentSessionFilter.doFilter
В методе "doFilter" в ConcurrentSessionFilter он извлекает старый идентификатор сеанса, чтобы проверить, истек он или нет, но сеанс является нулевым. Поэтому он никогда не вызывает «onInvalidSessionDetected».
Итак