这是我的处理程序方法,如果会话中的用户属性不为空(他已经登录)将他转发到成功页面,如果没有,则将他重定向到登录页面。
@RequestMapping(value = "/")
public String showHome(HttpSession session) {
User user = (User) session.getAttribute("user");
if (user != null) {
return "success";
}
return "redirect:/login";
}
问题是,我第一次访问我的页面时,它会重定向到登录页面,但它会自动在URL末尾添加jssessionId,如下所示:" / login; jsessionid = FC75BC999410329E65785274BF0EB623"。更改它以返回"登录"。
时没有问题答案 0 :(得分:0)
在tomcat 7中,在tomcat_home/web.xml
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>
答案 1 :(得分:0)
我通过重写strictHttpFirewall来解决此问题,允许使用分号。
这不是理想的解决方案,但是我找不到防止Spring(或者它是tomcat?)将jsessionid附加到重定向网址的方法
@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
.......
@Bean
public HttpFirewall allowSemicolonHttpFirewall() {
StrictHttpFirewall firewall = new StrictHttpFirewall();
firewall.setAllowSemicolon(true);
return firewall;
}