标准会话管理器——StandardManager

简介: 用于保存状态的会话对象已经有了,现在就需要一个管理器来管理所有会话,例如会话id生成、根据会话id找出对应的会话、对于过期的会话进行销毁等等操作。用一句话描述标准会话管理器:提供一个专门管理某个web应用所有会话的容器,并且会在web应用启动停止时刻进行会话重加载和持久化。

用于保存状态的会话对象已经有了,现在就需要一个管理器来管理所有会话,例如会话id生成、根据会话id找出对应的会话、对于过期的会话进行销毁等等操作。用一句话描述标准会话管理器:提供一个专门管理某个web应用所有会话的容器,并且会在web应用启动停止时刻进行会话重加载和持久化。

会话管理主要提供的功能包括会话ID生成器、后台处理(处理过期会话)、持久化模块及会话集的维护。

 

首先看会话ID生成器,它负责为每个会话生成分配一个唯一标识,例如最终会生成类似“326257DA6DB76F8D2E38F2C4540D1DEA”字符串的会话标识,具体的默认生成算法主要依靠jdk提供的SHA1PRNG算法,如果在集群环境中,为了方便识别会话归属,它最终生成的会话标识类似于“326257DA6DB76F8D2E38F2C4540D1DEA.tomcat1”,后面会加上tomcat集群标识jvmRoute变量值,这里假设其中一个集群标识配置为“tomcat1”。如果你想置换随机数生成算法,可以通过配置server.xmlmanager节点secureRandomAlgorithmsecureRandomClass属性达到修改算法的效果。

其次看下如何对过期会话进行处理。负责对会话是否过期的逻辑判断主要在backgroundProcess模块,在tomcat容器中会有一条线程专门用于执行后台处理,当然也包括标准会话管理器的backgroundProcess,不断循环判断所有的会话中是否有过期的,一旦过期则从会话集中删除此会话。

最后是关于持久化模块和会话集的维护,由于标准会话定位于提供一个简单便捷的管理器,所以持久化和重加载操作并不会太灵活且扩展性弱,tomcat会在每个StandardContextweb应用)停止时调用管理器将属于此web应用的所有会话持久化到磁盘,文件名为SESSIONS.ser,而目录路径则由server.xmlManager节点pathname指定或Javax.servlet.context.tempdir变量指定,默认存放路径为%CATALINA_HOME%/work/Catalina/localhost/web’name/SESSIONS.ser。当web应用启动时又会加载这些被持久化的会话,加载完成后SESSIONS.ser文件将会被删除,所以每次启动成功后就不会看到此文件的存在。另外会话集的维护是指提供创建新会话对象、删除指定会话对象及更新会话对象的功能。

标准会话管理器是我们常用的会话管理器,也是tomcat默认的一个会话管理器,对它进行深入了解有助于对tomcat会话功能的把握,同时对后面其他会话管理器的理解也更容易。


点击订购作者《Tomcat内核设计剖析》



目录
相关文章
|
5月前
|
存储 Java 关系型数据库
LDAP统一认证服务解决方案
LDAP统一认证服务解决方案
442 1
|
7月前
|
存储 安全 API
深入了解OAuth 2.0:探究身份验证与授权的新标准
OAuth 2.0是一种开放标准的协议,用于安全地授权第三方应用程序访问用户的资源,而无需共享用户的凭据。这一协议在互联网上广泛应用,为许多应用和服务提供了强大的身份验证和授权机制。本文将深入介绍OAuth 2.0,探讨其工作原理、关键概念和常见用途。
web开发的模式的介绍与身份认证
web开发的模式的介绍与身份认证
|
11月前
|
存储 安全 物联网
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(2)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(2)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(2)
|
11月前
|
安全 数据安全/隐私保护 物联网
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(1)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(1)
带你读《自主管理身份:分布式数字身份和可验证凭证》——第3章 用示例场景演示SSI工作原理(1)
|
API 数据安全/隐私保护
Yii2.0框架中如何进行身份验证和授权操作?支持哪些认证方式和授权方式?
Yii2.0框架中如何进行身份验证和授权操作?支持哪些认证方式和授权方式?
135 0
|
安全 JavaScript 前端开发
第二十一章 CSP Session 管理 - 身份验证和加密
第二十一章 CSP Session 管理 - 身份验证和加密
|
安全 Go API
第二十三章 CSP Session 管理 - 身份验证共享策略
第二十三章 CSP Session 管理 - 身份验证共享策略
|
JSON 监控 前端开发
OIDC协议会话管理相关技术介绍
## 介绍 > OpenID Connect 1.0 is a simple identity layer on top of the OAuth 2.0 [[RFC6749]](https://openid.net/specs/openid-connect-session-1_0.html#RFC6749) protocol. It enables Clients to verify the i
862 0
OIDC协议会话管理相关技术介绍
|
存储 JSON 运维
如何设计一套单点登录系统(上)
昨天介绍了API接口设计token鉴权方案,其实token鉴权最佳的实践场景就是在单点登录系统上。 在企业发展初期,使用的后台管理系统还比较少,一个或者两个。 以电商系统为例,在起步阶段,可能只有一个商城下单系统和一个后端管理产品和库存的系统。
如何设计一套单点登录系统(上)