【发布时间】:2015-08-08 13:04:20
【问题描述】:
我在 spring boot 1.2.3 web 应用程序中使用 spring security 4.0.1(也使用 spring-session 1.0.1,但这与案例无关)。
我确实有一个私人区域和一个所有用户都可以访问的所有访问区域(“/about”、“/”、“/contact”……超过 20 页)。 (就像一个网上商店)
每当登录用户会话过期时,Spring 检测到无效会话并将用户重定向到 '.invalidSessionUrl("/session/error/invalid")'
但是,如果目标链接在私有区域内,我只想被重定向,而不是公共区域。
我怎样才能避免这种情况?
谢谢。
这是我的(java)配置:(更新后看到帖子)
http
.authorizeRequests()
.anyRequest()
.permitAll()
.antMatchers("/privado/**")
.authenticated()
.and()
.formLogin()
.loginPage("/login")
.failureUrl("/login?error")
.defaultSuccessUrl("/")
.successHandler(new SessionSuccessHandler())
.and()
.logout()
.logoutSuccessUrl("/")
.deleteCookies("JSESSIONID", "SESSION")
.and()
.sessionManagement()
.invalidSessionUrl("/session/error/invalid")
.sessionFixation()
.changeSessionId()
.maximumSessions(1)
.expiredUrl("/session/error/expired")
.and()
.and()
.csrf()
.ignoringAntMatchers("/jolokia/**", "/v1.0/**");
我怎样才能做到这一点?
非常感谢。
【问题讨论】:
-
没有按预期工作。
标签: spring-mvc spring-security spring-boot expired-sessions