精华内容
下载资源
问答
  • 重构只能等等,眼下原本希望通过增加应用程序池的进程,提高扛风险能力,结果发现多进程时,session失效。 搜了好多方法也没解决。 请教,能否通过增加进程,并使用session,求设置方法。 另外iis7.5中的asp程序...
  • 原需求:在easyui后台管理系统中,当用户会话过期后,用户再次操作.会跳转到登录页面.. 因为在iframe这种模式的框架中,他会在右面的tab页面,在开启一个登录页面,你在该页面登录进去之后,会发现.该tab页面,又出现了一个...

    原需求:在easyui后台管理系统中,当用户会话过期后,用户再次操作.会跳转到登录页面..

    因为在iframe这种模式的框架中,他会在右面的tab页面,在开启一个登录页面,你在该页面登录进去之后,会发现.该tab页面,又出现了一个后台管理系统的初始化.

    用户还要再次关闭tab页,或是该网页刷新.很不方便.

    方法:

    var top = window;
    while(top != top.parent){
        top = top.parent;            //循环找到父窗体
    } 
    top.location.href="${frontPath}/login.html";


    展开全文
  • 1.配置session超时时间 ... timeout: 30m # session会话超时时间,默认情况 下是30分钟(m),不能小于1分钟 cookie: name: JSESSIONID110 # 指定浏览器Cookie中关于SessionID保存的那个名称 ...

    1.配置session超时时间

    server:
      port: 80
      servlet:
        session:
          timeout: 30m # session会话超时时间,默认情况 下是30分钟(m),不能小于1分钟
          cookie:
            name: JSESSIONID110 # 指定浏览器Cookie中关于SessionID保存的那个名称
    

     

    2.默认情况下,当 session 失效后会请求回认证页面。我们可以自定义 session 失效后,响应不同的结果。

    在SpringSecurityConfig类添加session过期处理类

     .sessionManagement()// session管理
                    .invalidSessionStrategy(invalidSessionStrategy) //当session失效后的处理类,session失效怎么处理

    导入session失效处理器InvalidSessionStrategy

    创建session失效处理类CustomInvalidSessionStrategy

    session失效处理类添加进容器中

    启动项目等一分钟超时

    3.要将浏览器中的cookie的jsessionid删除,不然无法跳转到登录页

    package com.cis.security.authentication.session;
    
    import com.cis.security.result.Result;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.http.HttpStatus;
    import org.springframework.security.core.session.SessionRegistry;
    import org.springframework.security.web.session.InvalidSessionStrategy;
    
    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    
    /**
     * 当session失效后的处理逻辑
     */
    
    public class CustomInvalidSessionStrategy implements InvalidSessionStrategy {
    
        @Override
        public void onInvalidSessionDetected(HttpServletRequest request, HttpServletResponse response) throws IOException {
    
            // 要将浏览器中的cookie的jsessionid删除
            cancelCookie(request, response);
    
            Result result = new Result().build(HttpStatus.UNAUTHORIZED.value(), "登录已超时,请重新登录");
    
            response.setContentType("application/json;charset=utf-8");
            response.getWriter().write(result.toJsonString());
        }
    
        protected void cancelCookie(HttpServletRequest request, HttpServletResponse response) {
            Cookie cookie = new Cookie("JSESSIONID", null);
            cookie.setMaxAge(0);
            cookie.setPath(getCookiePath(request));
            response.addCookie(cookie);
        }
    
        private String getCookiePath(HttpServletRequest request) {
            String contextPath = request.getContextPath();
            return contextPath.length() > 0 ? contextPath : "/";
        }
    }
    

    展开全文
  • 会话对于ZooKeeper的操作非常重要,当会话由于任何原因结束时,在该会话期间创建的临时节点会被删除。在生产环境中,我们需要处理由于网络问题导致的会话超时问题,当网络恢复时,应用能够自动恢复会话,保证服务的...

    简介

    会话对于ZooKeeper的操作非常重要,当会话由于任何原因结束时,在该会话期间创建的临时节点会被删除。在生产环境中,我们需要处理由于网络问题导致的会话超时问题,当网络恢复时,应用能够自动恢复会话,保证服务的可用性。本文将讲解如何模拟会话超时,便于在生产环境中进行应用的测试。

    应用场景

    会话对于ZooKeeper的操作非常重要。会话中的请求按FIFO顺序执行,一旦客户端连接到服务器,将建立会话并向客户端分配会话ID 。客户端以特定的时间间隔发送心跳以保持会话有效。如果ZooKeeper集合在超过服务器开启时指定的期间(会话超时)都没有从客户端接收到心跳,则它会判定客户端死机。当会话由于任何原因结束时,在该会话期间创建的临时节点也会被删除。

    为确保网络的健壮性,需要应用能够自动恢复会话,并重新创建临时节点。对测试工作来说,需要模拟出会话失效,以对相关功能进行测试。

    在下面的场景中,由10.77.16.40:2181,10.77.16.60:2181,10.77.16.67:2181组成一个ZooKeeper的集群应用,应用部署在10.23.3.85服务器上,并向ZooKeeper注册服务。

    在服务成功注册后,可以查看到相应的节点信息:

    [zk: 10.77.16.40:2181(CONNECTED) 16] ls2 /wg/index_server/vertical_70/shard_0 watch
    [search0000000041]
    cZxid = 0x206206d5d1c3
    ctime = Thu Aug 16 17:00:20 CST 2018
    mZxid = 0x206206d5d1c3
    mtime = Thu Aug 16 17:00:20 CST 2018
    pZxid = 0x2062070de073
    cversion = 83
    dataVersion = 0
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 0
    numChildren = 1

    模拟会话失效

    一种比较简便的模拟会话失效的方式,就是利用本地的防火墙功能,来丢弃相关的网络报文,到达使会话失效的目的。作者使用的是CentOS 7的系统:

    [jinguang1@localhost wgis]$ lsb_release -a
    LSB Version:	:core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
    Distributor ID:	CentOS
    Description:	CentOS Linux release 7.3.1611 (Core)
    Release:	7.3.1611
    Codename:	Core

    在10.23.3.85服务器上,可以通过iptables来实现丢弃ZooKeeper的交互报文,相应的脚本如下:

    #!/bin/bash
    
    iptables -A OUTPUT -d 10.77.16.40 -p tcp --dport 2181 -j DROP
    iptables -A OUTPUT -d 10.77.16.60 -p tcp --dport 2181 -j DROP
    iptables -A OUTPUT -d 10.77.16.67 -p tcp --dport 2181 -j DROP
    iptables -A INPUT -s 10.77.16.67 -p tcp --sport 2181 -j DROP
    iptables -A INPUT -s 10.77.16.60 -p tcp --sport 2181 -j DROP
    iptables -A INPUT -s 10.77.16.40 -p tcp --sport 2181 -j DROP

    上面的脚本,将发往ZooKeeper和来自ZooKeeper的报文进行丢弃,来达到使会话失效的目的。在进行相关配置后,可以观察到ZooKeeper Client相应的日志:

    2018-08-21 16:36:18,961:28937(0x7ffb0affd700):ZOO_ERROR@handle_socket_error_msg@1643: Socket [10.77.16.40:2181] zk retcode=-7, errno=110(Connection timed out): connection to 10.77.16.40:2181 timed out (exceeded timeout by 2ms)
    2018-08-21 16:36:22,294:28937(0x7ffb0affd700):ZOO_ERROR@handle_socket_error_msg@1643: Socket [10.77.16.60:2181] zk retcode=-7, errno=110(Connection timed out): connection to 10.77.16.60:2181 timed out (exceeded timeout by 0ms)
    2018-08-21 16:36:25,628:28937(0x7ffb0affd700):ZOO_ERROR@handle_socket_error_msg@1643: Socket [10.77.16.67:2181] zk retcode=-7, errno=110(Connection timed out): connection to 10.77.16.67:2181 timed out (exceeded timeout by 0ms)

    ZooKeeper上相应的临时节点被删除,版本号由83变为84,达到了使会话失效的目的。

    [zk: 10.77.16.40:2181(CONNECTED) 23] ls2 /wg/index_server/vertical_70/shard_0
    []
    cZxid = 0x206206d5d1c3
    ctime = Thu Aug 16 17:00:20 CST 2018
    mZxid = 0x206206d5d1c3
    mtime = Thu Aug 16 17:00:20 CST 2018
    pZxid = 0x2062070df904
    cversion = 84
    dataVersion = 0
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 0
    numChildren = 0

    在达到会话失效后,如何恢复网络呢?非常简单,只要执行下列命令删除防火墙的应用即可(更精细化的操作是逐条删除配置的规则):

    iptables -F

    网络恢复后,ZooKeeper Client重新建立会话:

    2018-08-21 17:03:56,671:28937(0x7ffb09ffb700):ZOO_INFO@zookeeper_close@2528: Freeing zookeeper resources for sessionId=0x6068ab7b8d1972
    
    I0821 17:03:57.669409 28946 naming_registry.cc:185] GET FROM ZK zk://10.77.16.40:2181,10.77.16.60:2181,10.77.16.67:2181/weigraph/mutation_proxy/*
    I0821 17:03:57.669440 28946 naming_registry.cc:380] ZKClient start to reconnect zookeeper
    2018-08-21 17:03:57,669:28937(0x7ffb1a595700):ZOO_INFO@log_env@712: Client environment:zookeeper.version=zookeeper C client 3.4.6
    2018-08-21 17:03:57,669:28937(0x7ffb1a595700):ZOO_INFO@log_env@716: Client environment:host.name=localhost.localdomain
    2018-08-21 17:03:57,669:28937(0x7ffb1a595700):ZOO_INFO@log_env@723: Client environment:os.name=Linux
    2018-08-21 17:03:57,669:28937(0x7ffb1a595700):ZOO_INFO@log_env@724: Client environment:os.arch=3.10.0-514.6.2.el7.toa.2.x86_64
    2018-08-21 17:03:57,669:28937(0x7ffb1a595700):ZOO_INFO@log_env@725: Client environment:os.version=#1 SMP Tue Oct 31 14:54:31 CST 2017
    2018-08-21 17:03:57,669:28937(0x7ffb1a595700):ZOO_INFO@log_env@733: Client environment:user.name=jinguang1
    2018-08-21 17:03:57,669:28937(0x7ffb1a595700):ZOO_INFO@log_env@741: Client environment:user.home=/root
    2018-08-21 17:03:57,669:28937(0x7ffb1a595700):ZOO_INFO@log_env@753: Client environment:user.dir=/data0/attempt_404_4_2/wgis
    2018-08-21 17:03:57,669:28937(0x7ffb1a595700):ZOO_INFO@zookeeper_init@786: Initiating client connection, host=10.77.16.40:2181,10.77.16.60:2181,10.77.16.67:2181 sessionTimeout=5000 watcher=0x7a0520 sessionId=0 sessionPasswd=<null> context=0x7ffb0c0008c0 flags=0
    [New Thread 0x7ffb09ffb700 (LWP 32334)]
    [New Thread 0x7ffb0affd700 (LWP 32335)]
    2018-08-21 17:03:57,674:28937(0x7ffb09ffb700):ZOO_INFO@check_events@1705: initiated connection to server [10.77.16.67:2181]
    2018-08-21 17:03:57,678:28937(0x7ffb09ffb700):ZOO_INFO@check_events@1752: session establishment complete on server [10.77.16.67:2181], sessionId=0x26068ab52881a66, negotiated timeout=5000

     

    展开全文
  • 会话 session 和 cookie Session 失效session 失效有如下几个原因: session.invalidate() 方法注销 session session 超时 <session-config> <!-- session的超时时间,以分钟为单位 --&...


    Session 失效

    session 失效有如下几个原因

    1. session.invalidate() 方法注销 session
      在这里插入图片描述
    2. session 超时
      <session-config>
        	<!-- session的超时时间,以分钟为单位 -->
        	<session-timeout>1</session-timeout>
      </session-config>
      
      在这里插入图片描述
    3. Cookie 被禁用

    如有错误,欢迎指正!

    展开全文
  • session会话

    2015-11-27 11:17:15
    首先概括几个概念:(1) session_name,也是cookie_name,实质是session文件前缀,和session_id构成针对不同用户的session文件,文件内存储了会话信息,会话信息主要是你存储到$_SESSION中的键值对;(2)session_id,...
  • springboot session会话超时设置

    万次阅读 2019-07-09 20:23:33
    springboot session会话超时设置(九)
  • Session会话机制

    2019-03-19 22:23:43
    Session的官方定义是:Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。 说白了Session就是一种可以维持服务器端的数据存储技术。 Session主要有...
  • 最近在研究SpringSecurity开始一切正常但是自定义过滤器后却发现对Session控制的会话控制失效了。网上说如果重写了User类要重写equals和hashCode方法。但是我没有重写User类也不好使,之后我重写了后也重写了equals...
  • 主要介绍了一个严格的PHP Session会话超时时间设置方法,着重点在于结合两种方法保证超时时间到,会话失效,需要的朋友可以参考下
  • Session 会话

    千次阅读 2011-11-07 20:30:25
    Session的跟踪机制 Sessionr的超时管理 HttpSession接口中的方法 HttpServletRequest接口中的Session的方法 application与session域范围的属性比较 利用Cookie实现Session跟踪 利用URL重写实现Session跟踪...
  • django session 会话

    2018-03-01 20:34:38
    如何使用session¶Django全面支持匿名session会话框架允许您以每个站点访问者为基础存储和检索任意...启用session会话通过一个中间件来实现。要启用会话功能,请执行以下操作: 编辑MIDDLEWARE设置并确保它 ...
  • Session会话跟踪技术
  • SESSION会话技术

    2013-07-21 23:06:18
    以下对session会话技术详解: 要了解点http协议理解更佳--->http请求头和http相应头 在session_start的时候,浏览器会向服务器发出请求 在请求的同时,如果是第一次apache会给浏览器分配一个session_ID便识别...
  • Session会话周期

    千次阅读 2018-02-01 21:03:57
    今天想和大家分享一个关于Session的话题: 当浏览器关闭时,Session就被销毁了? 我们知道Session是JSP的九大内置对象(也叫隐含对象)中的一个,它的作用是可以保 存当前用户的状态信息,初学它的时候,认为...
  • 负载均衡之session会话保持

    千次阅读 2019-08-23 20:44:45
    session会话保持原理 1. 什么是会话保持? 会话保持是负载均衡最常见的问题之一,也是一个相对比较复杂的问题。会话保持有时候又叫做粘滞会话(Sticky Sessions)。会话保持是指在负载均衡器上的一种机制,可以识别...
  • session会话过期时间设置

    千次阅读 2020-06-08 14:37:28
    参数900单位是秒,即在没有活动15分钟后,session失效。设置为-1将永不关闭。 这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。所以如果是在调试程序,应该是修改服务器端时间来测试,而不是...
  • 【Consul】Consul架构-Session会话

    千次阅读 2016-09-25 15:02:55
    Consul提供session会话机制——可以用于构建分布式锁,session可以绑定到节点、健康检查、KV数据
  • [44]session会话管理

    千次阅读 2018-06-11 09:03:26
    session会话和cookie一起被称为会话跟踪技术,主要通过保存在服务器端的session数据和客户端浏览器的cookie数据共同完成用户访问服务器的足迹记录。 1. 什么是会话 会话session通常情况下,当客户端浏览器打开...
  • putty设置会话失效时间使得客户端和服务端始终保持连接
  • shiro配置session会话过期时间,缓存

    万次阅读 2019-02-28 14:35:38
    这里只记录shiro-session会话过期时间及缓存的配置方法,不做整合shiro讨论,shiro整合请参考上篇文章: https://blog.csdn.net/qq_42944520/article/details/87864543 session会话过期时间设置: 在之前shiroConfig的...
  • 一、Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到...
  • Gookie与Session会话跟踪机制

    千次阅读 2017-09-22 19:33:30
    简介:Gookie与session是一种会话跟踪,web程序中用来跟踪用户的整个会话。 Gookie是通过客户端(浏览器)来记录用户的访问信息和确定用户的身份, 而session在服务端记录访问信息。
  • 关于session会话对象原理

    千次阅读 2012-09-26 17:33:29
    其他知识: 浏览器访问某站点时,会自动取出与该站点对应的cookie...1.session会话对象是运行于服务器端的服务器对象,不同的客户端访问可以在服务器端同时创建与之对应的session对象。 2.通过request.getSession
  • 实现会话控制,权限控制,免登陆的spring security完整项目 博文链接:https://abc08010051.iteye.com/blog/1995886
  • 有关什么情况下session失效

    万次阅读 2018-05-06 06:33:48
    以前发了一个帖子,觉得好奇很多人竟然认为关闭浏览器session失效了 或者认为session失效和关闭浏览器有关系很多评论 让我很诧异啊这边统一回复一下吧 可以肯定的说session失效和浏览器是没有任何关系的session...
  • 其实是session会话失效了。layer去请求的时候,经过拦截器,经过判断。session会话失效了。返回一段登录页面跳转。但是ajax不能执行跳转。所以经过前端调试,能看到一段response响应 那针对这种问题,要怎么做呢?...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,320
精华内容 22,928
关键字:

session会话失效