【问题标题】:set custom session id java (apache tomcat)设置自定义会话 id java (apache tomcat)
【发布时间】:2013-04-11 11:19:01
【问题描述】:

我想为我的网络应用程序设置自定义会话 ID,我有生成会话 ID 的算法,我的网络应用程序应该使用该算法生成会话 ID。 请建议我如何将我的算法设置为tomcat中的会话ID生成..

会话管理器 --> 我试过了,但它提供了完整的会话行为修改控制,我只想根据我的算法设置会话 ID,没有会话行为更改

实现 com.sun.entrprises.uui.uuidgenerator ---> 也尝试过,但无法准确理解如何做到这一点

请建议我最简单的解决方案,将我的算法设置为会话生成算法

注意:您可能建议不要这样做,但我的项目需要它

【问题讨论】:

    标签: java session jakarta-ee tomcat


    【解决方案1】:

    扩展 org.apache.catalina.session.StandardManager 应该做你想做的事。 做这样的事情:

    public class MySessionManager extends StandardManager {
    
        @Override
        protected synchronized String generateSessionId() { 
            String sessionId = <Your session id generation algo>;
            return sessionId;
        }
    }
    

    拥有会话管理器后,请关注this answer

    【讨论】:

    • 谢谢,我在上面编写了我的算法来生成 sessionid,但是在 Context.xml 中,当我设置 给出错误原因:java.lang.ClassNotFoundException: tomcatdata.MySessionManager 我把 MysessionManger 类放在我的 webapplication /Src/tomcatdata/MySessionManager
    • 看起来好像 tomcat 找不到您的会话管理器 impl。您是否已将自定义会话管理器部署到 $CATALINA_HOME?也看看这个答案:stackoverflow.com/a/10935726/1686330
    • 顺便说一句:我看过你提到的玻璃鱼的另一个问题(stackoverflow.com/q/15933744/1686330)。我不确定这是否适用于玻璃鱼。对于 Glassfish,您可以查看 java.net/jira/browse/GLASSFISH-18994
    • 非常感谢您解决了我的问题 :)
    • 导入StandardManager需要哪个依赖?
    猜你喜欢
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 2011-10-05
    • 2012-01-30
    • 1970-01-01
    相关资源
    最近更新 更多