如果不接受cookie,则配置WildFly / Undertow将JSESSIONID放在URL上

时间:2014-12-16 08:53:39

标签: wildfly wildfly-8 jsessionid undertow

我们之前使用过JBoss 7.1.2,并且如果不接受cookie或者请求中没有JSESSIONID cookie,则使用JSESSIONID作为回退的行为。

迁移到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作为后备解决方案。

1 个答案:

答案 0 :(得分: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中有一个bug (UNDERTOW-396)可以防止使用后备版。该错误已被标记为Undertow 1.2.0-Beta10已修复,但Wildfly 8.1.0.Final和8.2.Final都使用旧版本。因此,目前您可能需要在Wildfly安装中更新Undertow才能获得修复。

这是关于此主题的另一个有用的blog-post

更新:Wildfly 9.0.2.Final使用Undertow 1.2.9,因此应该再次使用(尚未测试)。