`
eric_weitm
  • 浏览: 243620 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring session 原理

 
阅读更多

spring-session-core

1、抽象注解、session生命周期的事件、过期、rememberMe

2、借助WebApplicationInitializer 接入app初始化的逻辑

3、抽象Session、SessionRepository、MapSession

4、web socket的支持

5、DefaultCookieSerializer 通过cookie来传输sessionid

6、HttpSessionAdapter 修改了标准servlet的HttpSession

spring-session-data-redis:redis做后端存储

核心类是RedisOperationsSessionRepository

 

使用header传递session:

 @Bean

    public HeaderHttpSessionIdResolver headerHttpSessionIdResolver() {

        return new HeaderHttpSessionIdResolver("SESSION");//设置session名称

    }

 

 

原理:

1、WebApplicationInitializer.onStartup(ServletContext servletContext) 

注入SessionRepositoryFilter

2、SessionRepositoryFilter重写SessionRepositoryRequestWrapper和

SessionRepositoryResponseWrapper,

使得标准的getSession()变成hack过的HttpSessionAdapter

3、HttpSessionAdapter内部重写了HttpSession相关的所有方法

概括:

启动--filter--getSession--request.getSession().getAttribute

分享到:
评论

相关推荐

    spring-session简介及实现原理源码分析

    Spring-Session 实现原理源码分析 Spring-Session 是 Spring旗下的一个项目,旨在解决 Session 管理问题。它可以轻松快捷地集成到我们的应用程序中,并提供了多种存储 Session 的方式。下面是 Spring-Session 的...

    springboot 项目,基于springsession整合redis实现登录拦截功能

    Spring Session的工作原理是通过自定义过滤器替换默认的Servlet容器提供的Session管理。我们需要在Spring Boot的配置类中注册这个过滤器,例如`SpringSessionRepositoryFilter`。这个过滤器会在每次HTTP请求时处理...

    spring session实现分布式会话管理

    **Spring Session 的工作原理** 1. **会话注册与跟踪**:当客户端发起请求时,Spring Session 会拦截请求,创建或获取对应的 Session ID,并将其通过 Cookie 发送给客户端。这个 ID 在分布式环境中是唯一的,可以跨...

    SpringSession+Redis实现Session共享案例

    `SpringSession` 是一个优秀的框架,它提供了一种优雅的方式来进行Session管理,尤其是跨服务器的Session共享。配合`Redis`作为存储后端,我们可以构建高可用、可扩展的Session共享解决方案。下面将详细解释`Spring...

    spring-session

    2. **Spring Session 工作原理** Spring Session 使用基于 Redis、 Hazelcast 或者 JDBC 等后端存储来持久化 session 数据。这样,所有服务器都可以访问到同一个 session 存储,实现 session 共享。此外,Spring ...

    nginx+spring-session+redis 实现session共享

    标题 "nginx+spring-session+redis 实现session共享" 涉及到的是在分布式系统中如何处理会话(session)共享的问题。在分布式环境中,由于用户请求可能被路由到不同的服务器节点,传统的session存储方式(如JVM内存...

    SpringMVC整合SpringSession 实现sessiong

    SpringSession的工作原理是通过对servlet带的session进行封装,接管session,实现session共享。在Nginx下的tomcat集群中,也可以使用SpringSession实现session共享。 实现session共享的优点 使用SpringSession实现...

    springsecurity原理流程图.pdf

    认证成功后,Spring Security会将认证信息存储在session中,并通过调用sessionStrategy.onAuthentication方法来处理与session相关的操作。 b. 最终,会执行successfulAuthentication方法,该方法可以被子类覆盖以...

    详解SpringBoot中Session超时原理说明

    SpringBoot 中 Session 超时原理说明 在 SpringBoot 中,Session 超时是指在一定时间内没有任何操作,Session 就会超时失效,导致用户需要重新登录才可以继续访问页面。这是因为 Session 的超时时间是有限制的,...

    spring-session:spring session+redis实现分布式缓存

    **Spring Session的核心概念与工作原理** 1. **SessionRepository**: Spring Session提供了一个接口`SessionRepository<Session>`,用于存储和检索session数据。你可以自定义实现这个接口,但通常我们会选择使用...

    Hibernate、Spring和Struts工作原理及使用理由

    【标题】:“Hibernate、Spring和Struts工作原理及使用理由” 【内容】: Hibernate是一个流行的Java持久化框架,它的核心工作原理主要包括以下步骤: 1. **读取并解析配置文件**:Hibernate通过读取hibernate....

    spring ioc和aop原理流程图(详细)

    4. **Bean的作用域**:Spring提供了多种Bean的作用域,如单例(Singleton)、原型(Prototype)、请求(Request)、会话(Session)等,根据不同的需求选择合适的Bean作用域。 5. **Bean的生命周期**:Spring容器对...

    基于springcloud分布式session共享.docx.docx

    在分布式系统环境中,Session共享...以上是Spring Cloud环境下实现分布式Session共享的基本原理和常见问题的解决方案。正确配置和使用这些策略,能够确保用户在分布式系统中的体验一致性,提升系统的健壮性和可扩展性。

    spring-redis-session 自定义 key 和过期时间

    在本文中,我们将详细介绍 Spring-Redis-Session 的自定义 key 和过期时间的实现原理和配置方法。 自定义 Key 在 Spring-Redis-Session 中,默认的会话 key 是以 "spring:session:sessions:" 开头的,如果我们想...

    基于spring-cloud分布式session共享文档

    - **原理**:利用Spring Session接管Session管理,并结合Redis作为集中式的Session存储。 - **优点**: - 无缝集成Spring Boot/Cloud项目; - 支持海量Session数据存储; - 可以利用Redis的持久化特性保证数据的...

    Struts + Spring + Hibernate工作原理解析

    Struts、Spring和Hibernate是Java开发中非常著名的三个开源框架,它们共同构成了经典的"SSH...通过阅读《Struts + Spring + Hibernate工作原理解析》文档,你可以更系统地掌握这些知识,为你的项目开发带来极大的帮助。

    Springboot实现多服务器session共享

    Springboot提供了自动化session共享配置,需要添加spring-session-data-redis依赖项,Spring Session可以做到透明的替换掉应用中的Session容器。下面是一个基本的pom.xml配置文件: ```xml xsi:schemaLocation=...

    spring MVC No Session found for current thread

    在IT行业中,Spring MVC是一个广泛使用的轻量级Web...记住,理解Spring MVC的工作原理,以及HTTP请求和session的生命周期,对于定位和解决这类问题至关重要。同时,使用日志和调试工具可以帮助你跟踪和分析问题的根源。

    利用redis实现session共享

    2. 将Session存储到Redis:在Spring Boot应用中,可以通过集成Spring Session库来实现这个功能。Spring Session提供了一种简单的方法,将Session数据从服务器内存转移到外部存储,比如Redis。在`pom.xml`中添加依赖...

    springsessiondemo:Spring会议

    2. **Spring Session工作原理**:Spring Session通过将会话信息存储在外部存储(如Redis、MongoDB或数据库)中,而不是在单个服务器的内存里,实现了会话的跨服务器共享。 3. **配置Spring Session**:学习如何在...

Global site tag (gtag.js) - Google Analytics