我们之前使用过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作为后备解决方案。
答案 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,因此应该再次使用(尚未测试)。