精华内容
下载资源
问答
  • shiro设置session超时

    2015-12-28 11:47:00
    通过api:ShiroSession接口有一个setTimeout()方法 //登录后,可以用如下方式取得session SecurityUtils.getSubject().getSession().setTimeout(30000); 查看Shiro的api文档, setTimeout void setTimeout...

    通过api:Shiro的Session接口有一个setTimeout()方法

    //登录后,可以用如下方式取得session

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

     

    查看Shiro的api文档,

    setTimeout

    void setTimeout(long maxIdleTimeInMillis) throws InvalidSessionExceptionSets the time in milliseconds that the session may remain idle before expiring.A negative value means the session will never expire.A non-negative value (0 or greater) means the session

    expiration will occur if idle for that length of time.*Note: if you are used to the HttpSession's getMaxInactiveInterval() method, the scale on this method is different: Shiro Sessions use millisecond values for timeout whereas HttpSession.getMaxInactiveInterval

    uses seconds. Always use millisecond values with Shiro sessions.Parameters:maxIdleTimeInMillis - the time in milliseconds that the session may remain idle before expiring.Throws:InvalidSessionException - if the session has been stopped or expired prior to

    calling this method.Since:0.2

     

    设置的最大时间,正负都可以,为负数时表示永不超时。开发过程中,设置负数时,遇到点儿问题:

     

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

     

    这样调用后,总是抛出session已经过时的异常,一直找不到原因,后来调试源码才发现,这里设置的时间单位是:ms,但是Shiro会把这个时间转成:s,而且是会舍掉小数部分,这样我设置的是-1ms,转成s后就是0s,马上就过期了,所以后面再对这个会话进行操作时,总会抛异常,正确的设置永不超时的方式应该是:

     

    // timeout:-1000ms 永不超时

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

    转载于:https://www.cnblogs.com/ningheshutong/p/8134039.html

    展开全文
  • Shiro 设置session超时时间

    万次阅读 2017-04-06 23:48:09
    系统默认超时时间是180000毫秒(30分钟),可以通过下面2中方式设置自定义的超时时间。 一: 配置文件 二:通过api ShiroSession接口有一个setTimeout()方法,登录后,可以用如下方式取得...

    系统默认超时时间是180000毫秒(30分钟),可以通过下面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

    展开全文
  • shiro设置session超时时间

    千次阅读 2018-10-24 18:33:07
    系统默认超时时间是180000毫秒(30分钟),可以通过下面2中方式设置自定义的超时时间 1.配置文件修改 &amp;lt;!-- 会话管理器 --&amp;gt; &amp;lt;bean id=&quot;sessionManager&quot; class=...

    系统默认超时时间是180000毫秒(30分钟),可以通过下面2中方式设置自定义的超时时间

    1.配置文件修改

      <!-- 会话管理器 -->
    <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>
    
    

    2.通过api修改

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

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

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

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

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

    展开全文
  • Shiro设置session超时时间

    千次阅读 2019-01-16 21:04:40
    一、通过配置文件方式进行设置 &lt;!-- 会话管理器 --&...org.apache.shiro.web.session.mgt.DefaultWebSessionManager"&gt; &lt;!-- 设置超时时间--单位:ms --&gt; &lt;property...

    一、通过配置文件方式进行设置

    <!-- 会话管理器 -->
    <bean id="sessionManager"         
        class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
    
        <!-- 设置超时时间--单位:ms -->
        <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>
    

    二、通过调用Shiro中的Session接口的setTimeout()方法来进行设置

    //设置session有效时间为10分钟
    ecurityUtils.getSubject().getSession().setTimeout(600000);

    三、注意

    1、第二种设置session超时时间的方式优先于第一种方式!!!

    2、这两种方式设置session的超时时间单位均是毫秒:ms,shiro会将它转化为秒:s,并且省略掉小数部分;如果想让session永远不过期,就设置小于-1000的数值,例如:ecurityUtils.getSubject().getSession().setTimeout(-1001);

     

    展开全文
  • shiro在管理session后,在session超时会进行跳转,这里有两种情况需要考虑,一种是ajax方式的请求超时,一种页面跳转请求的超时。 本文从这两个方面分别考虑并处理。 ajax请求超时处理 思路:通过Filter后判定,...
  • 系统默认超时时间是180000毫秒(30分钟)longtimeout=SecurityUtils.getSubject().getSession().getTimeout();...可以通过下面2中方式设置自定义的超时时间。1、配置文件<!--会话管理器--> <beani...
  • 作者:小LUA 来源:www.cnblogs.com/LUA123/p/9337963.html在单机版的Springboot+Shiro的基础上,这次实现共享Session。这里没有自己写RedisManager、SessionDAO。用的 crazycake 写的开源插件pom.xml 4.0.0 ...
  • 设置shiro超时时间

    千次阅读 2018-09-04 20:42:53
    1:在shiro配置xml中定义...org.apache.shiro.web.session.mgt.DefaultWebSessionManager"&gt; &lt;property name="globalSessionTimeout" value="3000" &gt;&lt;/property&am
  • shiro在管理session后,在session超时会进行跳转,这里有两种情况需要考虑,一种是ajax方式的请求超时,一种页面跳转请求的超时; 解决问题的思路:通过定义过滤器来检查是否Session过期问题,当前是否session超时,...
  • **为什么shiro使用session过期时间在chrome浏览器设置无效,timeout一直是-1000,火狐浏览器则可以设置** ``` <!-- 配置shiro的过滤器工厂类,id- shiroFilter要和我们在web.xml中配置的过滤器一致 --> ...
  • session 设置超时

    2016-07-19 11:16:44
    设置session 的时间防止考试    300  -->   Java 中设置 这里要声明下要借助 Subject 这个类jar 包名称我贴下  --org.apache.shiro.subject.Subject 1、Subject currentUser = SecurityUtils....
  • 最近重构之前的老系统springMVC转springBoot+shiro遇到了session id无效的问题 shiroConfig里面也已经配置了自定义sessionId ShiroConfig代码如下 ``` @Configuration public class ShiroConfig { @Value("${...
  • TongWeb的session 不是主要决定记录用户登录状态的唯一因素,在SSO、Apache shiro应用场景下,session不起主要作用。这时在TongWeb上配session超时时间、session共享、复制已无用。 1.单点登录SSO应用 以CAS应用...
  • 单点登录session超时

    千次阅读 2018-03-10 16:13:18
    session过期后跳到单点登录地址,带着ticket参数去验证用户,如果单点登录验证到ticket没...另外,java项目和shiro集成时有两个地方可以设置session过期时间,如图所示1.shiro配置xml文件中,这个优先级最高2.web....
  • 采用shirosession过期后 跳转到login页面,登录页面是成功返回了, 但是页面没有成功跳转 ,报数据解析错误 解决办法: 将layui的jquery 设置返回数据解析错误后默认跳转到登录 (不太严谨,也可能是真的返回...
  • shiro扩展知识

    2019-07-09 17:59:23
    shiro如何设置sessioon时间 ShiroSession接口有一个setTimeout()方法,登录后,可以用如下方式取得session SecurityUtils.getSubject().getSession().setTimeout(1800000); 如果为负数代表永不超时 ...
  • 步骤如下: 1、获取所有在线用户的Session信息。 2、获取当前登陆人的session...3、设置与当前登录账号相同,但sessionId不同的session信息超时。 代码如下: if (!Global.TRUE.equals(Global.getConfig("user....
  • 因为shiro框架需要根据cookie判断登录身份,所以就让后端把sessionid发给我我来手动保存。 然后这么写 ```javascript API.login(this.ruleForm) .then(res => { let sessionId = res.data setCookie(...

空空如也

空空如也

1 2
收藏数 32
精华内容 12
关键字:

shiro设置session超时