Tomcat 7/JBoss7 的自定义会话 ID 生成器

发布于 2024-12-02 14:40:21 字数 264 浏览 2 评论 0原文

各位,

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

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

谢谢。

-拉吉

Folks,

My webapp needs URL-safe session ids. Those generated by JBoss 7 (embedded Tomcat 7 inside JBoss) have characters like "+" which cause us some heartache. One of the avenues I am exploring is the generate URL-safe session ids. Does someone know the correct hook point in a J2EE web application where I can plug in my custom session id generator?

Ideally this hook point comes from the servlet API itself. If not, am happy with a Tomcat/JBoss specific solution too.

Thanks.

-Raj

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

扛起拖把扫天下 2024-12-09 14:40:21

我知道十多年前就有人问过这个问题,但是,我刚刚有机会研究自定义会话 ID 生成器,并在我的 RND 期间发现了这个悬而未决的问题。

这是Tomcat特定的解决方案。 (Tomcat 10.0)

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

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

I know this was asked more than 10 years ago but, I just had a chance of working on Custom Session Id Generator and found this unanswered question during my RND.

Here is a Tomcat specific solution. (Tomcat 10.0)

You can plug-in your Custom Session Id Generator in Tomcat by following the steps given below:

  1. Implement org.apache.catalina.SessionIdGenerator interface.
  2. Create jar file for this implementation and place it in {CATALINA_HOME}\lib folder (This step is important as you will get ClassNotFoundException in case you don't perform this step)
  3. Add configuration for your session id generator in WEB-INF/context.xml file of your application. e.g.
<Context>
    <Manager>
       <SessionIdGenerator className="com.yourpackage.MySessionIdGenerator"/>
    </Manager>
</Context>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文