设置Shiro超时时间

1、在shiro的配置文件中配置。

  <!-- 会话管理器 -->
<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
    <!-- 设置超时时间 -->
    <property name="globalSessionTimeout" value="1800000"/>
</bean>

2、通过API来设置。

Shiro的Session接口有一个setTimeout()方法,登录后,可以用如下方式取得session

SecurityUtils.getSubject().getSession().setTimeout(1800000);

设置的最大时间,正负都可以,为负数时表示永不超时。

SecurityUtils.getSubject().getSession().setTimeout(-1000l);

注意:这里设置的时间单位是:ms,但是Shiro会把这个时间转成:s,而且是会舍掉小数部分,如设置的是-1ms,转成s后就是0s,马上就过期了。所以要是除以1000以后还是负数,必须设置小于-1000