SessionIdGenerator 组件

目录

简介

SessionIdGenerator 元素代表用于生成 Web 应用程序 HTTP 会话的会话 ID 的会话 ID 生成器

SessionIdGenerator 元素可以嵌套在 Manager 组件内部。如果未包含此元素,将自动创建一个默认的 SessionIdGenerator 配置,这足以满足大多数需求,— 有关此配置的详细信息,请参阅下面的标准 SessionIdGenerator 实现

属性

通用属性

所有 SessionIdGenerator 的实现都支持以下属性

属性描述
className

要使用的实现的 Java 类名。此类必须实现 org.apache.catalina.SessionIdGenerator 接口。如果未指定,将使用标准值(如下定义)。

jvmRoute

此 Tomcat 实例的路由标识符。它将被添加到会话 ID 中,以允许负载均衡器进行无状态粘性路由。jvmRoute 如何包含在 ID 中的详细信息取决于具体实现。有关默认行为,请参阅标准实现

注意 - 此属性的值将自动从 Engine 元素的 jvmRoute 属性继承。

sessionIdLength

此 SessionIdGenerator 生成的会话 ID 的长度。sessionIdLength 如何影响会话 ID 长度的详细信息取决于具体实现。有关默认行为,请参阅标准实现

标准实现

Tomcat 提供了 SessionIdGenerator 的标准实现以供使用。

标准 SessionIdGenerator 实现

SessionIdGenerator 的标准实现是 org.apache.catalina.util.StandardSessionIdGenerator。它支持以下属性

属性描述
jvmRoute

此 Tomcat 实例的路由标识符。它将以“.”分隔符添加到会话 ID 的末尾。

sessionIdLength

此 SessionIdGenerator 创建的会话 ID 的长度。更准确地说,会话 ID 长度是 sessionIdLength 值的两倍,再加上可选的尾随 jvmRoute 的长度。系数 2 是因为会话 ID 是使用 sessionIdLength 个随机字节构建的,每个字节在实际 ID 中编码为两个十六进制字符。默认值为 16。