session.getMaxInactiveInterval()是获得session的最大存活时间,默认是1800秒!
项目框架使用的springboot+shiro
- 在application.yml 中设置过期时间
#session过期时间(单位秒) 默认1800s(30min)
#设置小于60秒,则会默认取1分钟
#实际过期时间为秒数对分钟取整,比如设置2000,则 2000s/60=33min,33min*60=1980s,实际过期时间为1980s
server.session.timeout=3600
- 因为使用shiro,那么就在shiro的sessionManager中设置过期时间
@Bean
public DefaultWebSessionManager getWebSessionManager(){
DefaultWebSessionManager defaultWebSessionManager = new DefaultWebSessionManager();
defaultWebSessionManager.setGlobalSessionTimeout(10000L);
return defaultWebSessionManager;
}
3.在shiro config中配置:
@Bean(name = "sessionManager")
public DefaultWebSessionManager sessionManager() {
DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
// 设置session过期时间3600s
sessionManager.setGlobalSessionTimeout(3600000L);
return sessionManager;
}
@Bean
public SecurityManager securityManager() {
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRealm(customRealm());
securityManager.setSessionManager(sessionManager());
return securityManager;
}
@Bean
public CustomRealm customRealm() {
CustomRealm customRealm = new CustomRealm();
return customRealm;
}
4.直接在request获取写入
HttpServletRequest request.getSession().setMaxInactiveInterval(interval)