如何在Spring Security中覆盖InvalidSessionStrategy

时间:2016-10-13 08:59:29

标签: spring spring-security spring-session

InvalidSessionStrategy的默认实现,即Spring安全性中的SimpleRedirectInvalidSessionStrategy,将请求重定向到默认URL。此默认网址来自最终变量。

我想通过不将所有时间重定向到同一个网址来覆盖行为。我怎么能实现这一目标?如果我创建了InvalidSessionStrategy的自定义实现,我该如何使用它?

这是我现在的配置

and()
   .addFilterAfter(mySpringSecurityConfig.forceLogoutFilter(), PreAuthenticationFilter.class)
   .sessionManagement()
   .sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED)
   .invalidSessionUrl("http://xxx/login.jsp")
   .sessionAuthenticationErrorUrl(PropertyMgr.getCarnivalURL("http://xxx/login.jsp"))

但我不想对所有无效会话使用“http://xxx/login.jsp”。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

请发布您的整个配置和Spring Security版本,以便我们可以全面了解。

但是,要覆盖InvalidSessionStrategy,只需定义实现此界面的类 然后找到一种方法将您的实施放入SessionManagementFilter 一种方法可以通过SessionManagementConfigurer

在最糟糕的情况下,您可以随时延长SessionManagementFilter,将InvalidSessionStrategy放在那里,并替换默认的sesssion过滤器。