1

伙计们,

我的 webapp 需要 URL 安全的会话 ID。那些由 JBoss 7 生成的(在 JBoss 中嵌入了 Tomcat 7)有像“+”这样的字符,这让我们有些心痛。我正在探索的途径之一是生成 URL 安全会话 ID。有人知道 J2EE Web 应用程序中的正确连接点,我可以在其中插入我的自定义会话 id 生成器吗?

理想情况下,这个挂钩点来自 servlet API 本身。如果没有,我也对 Tomcat/JBoss 特定的解决方案感到满意。

谢谢。

-拉吉

4

1 回答 1

0

我知道这是 10 多年前提出的问题,但是,我刚刚有机会使用自定义会话 ID 生成器,并在我的 RND 中发现了这个悬而未决的问题。

这是一个Tomcat特定的解决方案。(雄猫 10.0)

您可以按照以下步骤在 Tomcat 中插入自定义会话 ID 生成器:

  1. 实现org.apache.catalina.SessionIdGenerator接口。
  2. 为此实现创建 jar 文件并将其放在 {CATALINA_HOME}\lib 文件夹中(此步骤很重要,因为如果您不执行此步骤,您将获得 ClassNotFoundException)
  3. 在应用程序的 WEB-INF/context.xml 文件中添加会话 ID 生成器的配置。例如
<Context>
    <Manager>
       <SessionIdGenerator className="com.yourpackage.MySessionIdGenerator"/>
    </Manager>
</Context>
于 2021-11-17T06:02:10.070 回答