4

我们以前使用 JBoss 7.1.2 并利用 JSESSIONID 放在 URL 上的行为作为不接受 cookie 或请求中不存在 JSESSIONID cookie 的后备。

迁移到 WildFly 8.2.0 / Undertow 1.1.0 后,此 URL 重写不会发生。

是否可以配置 WildFly/Undertow 以将 JSESSIONID 放在 URL 上作为后备?我们知道将 session-config 放入的可能性web.xml,例如:

<session-config>
  <tracking-mode>URL</tracking-mode>
</session-config>

但我们只希望 URL 上的 JSESSIONID 作为后备解决方案。

4

1 回答 1

8

要使用基于 cookie 的会话跟踪(如果可用)和基于 URL 的会话跟踪作为后备,您应该web.xml像这样配置您的部署描述符:

<web-app ...>
  <session-config>
    <tracking-mode>COOKIE</tracking-mode>
    <tracking-mode>URL</tracking-mode>
  </session-config>
</web-app>

请注意,您至少需要 servlet 3.0 规范!

不幸的是,Wildfly/Undertow 中有一个错误 (UNDERTOW-396)会阻止使用回退。对于 Undertow 1.2.0-Beta10,该错误已被标记为已修复,但 Wildfly 8.1.0.Final 和 8.2.Final 都使用旧版本。因此,目前您可能需要在 Wildfly 安装中更新 Undertow 才能获得修复。

这是关于此主题的另一篇有用的博客文章。

更新:Wildfly 9.0.2.Final 使用 Undertow 1.2.9,所以这应该可以再次工作(尚未测试)。

于 2015-03-18T09:02:59.583 回答