zoukankan      html  css  js  c++  java
  • shiro设置session超时时间

    系统默认超时时间是180000毫秒(30分钟)

    long timeout = SecurityUtils.getSubject().getSession().getTimeout();
    System.out.println(timeout+"毫秒");

    可以通过下面2中方式设置自定义的超时时间。

    一: 配置文件

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

    二:通过api

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

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

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

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

    注意:

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

  • 相关阅读:
    SWT DragSource 和 DropTarget 托拉拽
    Java的反射机制
    1. 算法导论
    SWT对于监听Tab键的理解
    SWT基础
    socket
    TCP/IP
    RPC(远程过程调用协议)
    Jython基本知识
    #与##
  • 原文地址:https://www.cnblogs.com/xyhero/p/86b01d0949feaac01459e654747b9bff.html
Copyright © 2011-2022 走看看