我需要知道Tomcat(6.x)中的哪个类负责将SessionID放入cookie或将其附加到请求中。 这是在所有过滤器通过后完成的吗?
我需要在将响应发送到浏览器之前修改SessionID ...
答案 0 :(得分:5)
会话ID由Tomcat会话管理器设置 - 有许多不同的实现。如果在执行应用程序期间更改会话ID,则可能会破坏会话管理器所做的一些假设。
要更改ID,您必须实现自己的会话管理器。执行此操作的“标准”方法是扩展ManagerBase。您也可以延长StandardManager并覆盖generateSessionId()。要让Tomcat使用您的自定义会话管理器,请查看server.xml中的Context和Manager配置
在生成您自己的会话ID时要小心非常。服务器无法知道cookie中的ID是否有效。如果攻击者可以猜出您的ID序列,他可以通过在HTTP客户端中设置cookie值来窃取其他用户的会话。