1、可能很多人去重写会话管理器(Springboot 2.13 + shiro 1.4.1):
DefaultWebSessionManager defaultWebSessionManager = new DefaultWebSessionManager();
System.out.println(defaultWebSessionManager.isSessionIdUrlRewritingEnabled()); // true
defaultWebSessionManager.setSessionIdUrlRewritingEnabled(false);
System.out.println(defaultWebSessionManager.isSessionIdUrlRewritingEnabled()); // false
2、有可能遇到地址栏还会有jsessionId=XXXXXXXXXXXXXXXXXXXXX
注意了, 重写了DefaultWebSessionManager(会话管理)之后,一定要把会话管理注入到securityManager中,否则不会生效。
@Bean
public DefaultWebSecurityManager securityManager() {
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
// 注入session的管理
securityManager.setSessionManager(sessionManager());
return securityManager;
}
@Bean
public DefaultWebSessionManager sessionManager() {
DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
// 去掉shiro登录时url里的JSESSIONID
sessionManager.setSessionIdUrlRewritingEnabled(false);
return sessionManager;
}
3、sessionManager.setSessionIdUrlRewritingEnabled(false);
好像不支持1.32及之前的版本,这个我不清楚;
我之前一直用的1.4.0版本, 最后更新时间2016年,这个版本是可以的,现在的1.41版本。