配置Wildfly / Undertow将jsessionid作为HTTP标头交换?

时间:2014-12-22 14:04:05

标签: java-ee wildfly-8 jsessionid

管理会话的jsessionid可以在模式cookie或URL模式下使用跟踪模式进行配置。

示例jsessionid模式cookie:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: es-ES,es;q=0.8,en;q=0.6
Cache-Control: max-age=0
Connection: keep-alive
Cookie: jsessionid=WuscHxD4eZCkPXDPubheV9MC.mbp-de-sadsad
Host: localhost:8080
User-Agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36

示例jsessionid模式网址:

http://www.example.com/home;jsessionid=BB69F0DEF79877629096AFEFFB53D478

有没有办法配置或扩展wildfly的行为(8.0.1用于通过HTTP Header共享jsessionid?

我需要的例子:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch
Accept-Language: es-ES,es;q=0.8,en;q=0.6
Cache-Control: max-age=0
Connection: keep-alive
jsessionid: WuscHxD4eZCkPXDPubheV9MC.mbp-de-kdslsd
Host: localhost:8080
User-Agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36

是否可以配置Wildfly(8.1.0 / 8.2.0)/ Undertow将jsessionid作为HTTP标头交换?

由于

1 个答案:

答案 0 :(得分:0)

我很确定只有配置才能实现。你可以用代码来做。但是以可移植的方式访问sessionId-suffix是不可能的,因为它不是servlet规范的一部分。因此,当我遇到同样的问题时,我使用了负载均衡器的请求/响应重写功能。

sessionId后缀是" .mbp-de-kdslsd"部分。 Wildfly uses the jboss.node.name for this.

如果您想使用代码执行此操作,则应hook the sending of a response并添加标题there。可以使用@WebListenerHttpSessionListener获取sessionId。我不知道如何访问jboss.node.name属性,但我非常确定quickstart-samples会为您提供一些代码。