更新时间:2020-11-16 15:52:06 来源:极悦 浏览1706次
Spring Session是Spring的项目之一,Spring Session把servlet容器实现的httpSession替换为spring-session,专注于解决session管理问题。Spring Session提供了集群Session(Clustered Sessions)功能,默认采用外置的Redis来存储Session数据,以此来解决Session共享的问题。
spring-session提供对用户session管理的一系列api和实现。提供了很多可扩展、透明的封装方式用于管理httpSession/WebSocket的处理。
支持功能
1)轻易把session存储到第三方存储容器,框架提供了redis、jvm的map、mongo、gemfire、hazelcast、jdbc等多种存储session的容器的方式。这样可以独立于应用服务器的方式提供高质量的集群。
2)同一个浏览器同一个网站,支持多个session问题。从而能够很容易地构建更加丰富的终端用户体验。
3)Restful API,不依赖于cookie。可通过header来传递jessionID。控制session id如何在客户端和服务器之间进行交换,这样的话就能很容易地编写Restful API,因为它可以从HTTP头信息中获取session id,而不必再依赖于cookie。
4)WebSocket和spring-session结合,同步生命周期管理。当用户使用WebSocket发送请求的时候,能够保持HttpSession处于活跃状态。
5)在非Web请求的处理代码中,能够访问session数据,比如在JMS消息的处理代码中。
需要说明的很重要的一点就是,Spring Session的核心项目并不依赖于Spring框架,所以,我们甚至能够将其应用于不使用Spring框架的项目中。Spring Session提供了一种独立于应用服务器的方案,这种方案能够在Servlet规范之内配置可插拔的session数据存储,不依赖于任何应用服务器的特定API。这就意味着Spring Session能够用于实现了servlet规范的所有应用服务器之中(Tomcat、Jetty、WebSphere、WebLogic、JBoss等),它能够非常便利地在所有应用服务器中以完全相同的方式进行配置。我们还可以选择任意最适应需求的外部session数据存储。这使得Spring Session成为一个很理想的迁移工具,帮助我们将传统的JavaEE应用转移到云中,使其成为满足如下:
每个用户有多个账号
假设我们在example.com上运行面向公众的Web应用,在这个应用中有些用户会创建多个账号。例如,用户Jeff Lebowski可能会有两个账户thedude example.com和lebowski example.com。和其他Java Web应用一样,我们会使用HttpSession来跟踪应用的状态,如当前登录的用户。所以,当用户希望从thedude example.com切换到lebowski example.com时,他必须要首先退出,然后再重新登录回来。
借助Spring Session,为每个用户配置多个HTTP session会非常容易,这样用户在thedude example.com和lebowski example.com之间切换的时候,就不需要退出和重新登录了。
多级别的安全预览
假设我们正在构建的Web应用有一个复杂、自定义的权限功能,其中应用的UI会基于用户所授予的角色和权限实现自适应。
例如,假设应用有四个安全级别:public、confidential、secret和top secret。当用户登录应用之后,系统会判断用户所具有的最高安全级别并且只会显示该级别和该级别之下的数据。所以,具有public权限的用户只能看到public级别的文档,具有secret权限的用户能够看到public、confidential和secret级别的文档,诸如此类。为了保证用户界面更加友好,应用程序应该允许用户预览在较低的安全级别条件下页面是什么样子的。例如,top secret权限的用户能够将应用从top secret模式切换到secret模式,这样就能站在具有secret权限用户的视角上,查看应用是什么样子的。
典型的Web应用会将当前用户的标识及其角色保存在HTTP session中,但因为在Web应用中,每个登录的用户只能有一个session,因此除了用户退出并重新登录进来,我们并没有办法在角色之间进行切换,除非我们为每个用户自行实现多个session的功能。
借助Spring Session,可以很容易地为每个登录用户创建多个session,这些session之间是完全独立的,因此实现上述的预览功能是非常容易的。例如,当前用户以top secret角色进行了登录,那么应用可以创建一个新的session,这个session的最高安全角色是secret而不是top secret,这样的话,用户就可以在secret模式预览应用了。
极悦springsession教程视频,本课程详细讲解Spring session如何解决集群模式/分布式/跨域环境下,实现session的同步共享问题,是构建大规模应用必须要考虑的一个问题。
课程学习目录
1.SpringSession:Session机制
2.SpringSession:Session机制存放过程
3.SpringSession:集群后丢失Session原因
4.SpringSession:Session共享方案介绍
5.SpringSession:SpringSession介绍
6.SpringSession:Session丢失演示
7.SpringSession:集成SpringSession实现Session共享
8.SpringSession:Redis中的Session数据存放结构
9.SpringSession:SpringSession使用场景
10.SpringSession:同域名下不同项目的Session共享
11.SpringSession:同根据域名不同二级子域名的Session共享
12.SpringSession:单点登录
13.SpringSession:P2P项目Session共享
14.SpringSession:SpringBoot集成SpringSession
以上就是极悦java培训机构的小编针对“Java分布式开发视频,springsession实战学习”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习