Springboot構成session時間の2つの方法
1263 ワード
1つ目:shiroConfigでの構成
2つ目は、shiroが持っているツールクラスを利用して、例えばホームページをジャンプする前に判断を加えることです.
テストメソッド
@Bean(name = "shiroSessionManager")
public DefaultWebSessionManager sessionManager(){
DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
// 600s
sessionManager.setGlobalSessionTimeout(600000L);
return sessionManager;
}
@Bean(name = "securityManager")
@ConditionalOnMissingBean
public DefaultSecurityManager securityManager() {
DefaultSecurityManager sm = new DefaultWebSecurityManager();
sm.setCacheManager(cacheManager());
// session
sm.setSessionManager(sessionManager());
return sm;
}
2つ目は、shiroが持っているツールクラスを利用して、例えばホームページをジャンプする前に判断を加えることです.
@RequestMapping(value = { "/","/index" }, method = RequestMethod.GET)
public String index() {
session
if(SecurityUtils.getSubject()!=null) { SecurityUtils.getSubject().getSession().setTimeout(1800000L);
}
return "index";
}
テストメソッド
System.out.println("Session "+request.getSession().getMaxInactiveInterval());
System.out.println("shiro-Session "+SecurityUtils.getSubject().getSession().getTimeout());