Springboot構成session時間の2つの方法

1263 ワード

1つ目:shiroConfigでの構成
 @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());