Wildfly 10.1.0中的会话问题

时间:2017-09-27 12:26:01

标签: java session cookies wildfly session-cookies

我有两个网络应用程序 test.war 2. birt.war

我在birt url的

Cookie cookie = new Cookie(GlobalConstants.JSESSIONID, request.getSession(false).getId());
cookie.setPath("/birt");
response.addCookie(cookie);

然后我在javascript中用适当的url参数打开birt url,如

window.open(url);

但是来自birt的下一个请求我得到了新的JSESSIONID。这适用于JBoss6 AS。

我可以在开发者控制台中看到Cookie

**Request 1**
http://192.168.10.7:8080/test

Cookies are 
Response Cookie :
JSESSIONID : 
value = 9G6bzvsF-ijbynGTmbWp7Ml4E5KFVHiEPlSflh16
Path = /birt

**Request 2**

http://192.168.10.7:8080/birt

Cookies are 
Response Cookie :
JSESSIONID : 
value = **xrLqLb5-8Vvqlkk2GKyapqwJZm5dJnyvFQOia9IM.node1** // new cookie
Path = /birt

Request Cookie :
JSESSIONID : 
value = 9G6bzvsF-ijbynGTmbWp7Ml4E5KFVHiEPlSflh16
Path = /birt

此外,我尝试在jboss-all.xml中添加两个战争,但即使这样也行不通。

<shared-session-config xmlns="urn:jboss:shared-session-config:1.0">
        <session-config>
            <cookie-config>
                <path>/</path>
            </cookie-config>
        </session-config>
</shared-session-config>

2 个答案:

答案 0 :(得分:2)

我相信您的部署模型与Undertow支持的部署模型不同:

  

Undertow允许您在明确配置的情况下分享战争中的会话之间的会话。请注意,如果您使用此功能,您的应用程序可能无法移植,因为这不是标准的servlet功能。

     

为了启用此功能,您必须在耳朵的META-INF目录中的 jboss-all.xml文件中包含shared-session-config元素

请参考https://docs.jboss.org/author/display/WFLY10/Web+(Undertow)+Reference+Guide

答案 1 :(得分:2)

通过在underow子系统(domain.xml / standalone.xml)中配置单点登录属性,我们在Wildfly 10.1中的战争之间共享相同的会话。像这样:

<subsystem xmlns="urn:jboss:domain:undertow:3.1">
    <buffer-cache name="default"/>
    <server name="default-server">
        <http-listener max-post-size="1073741824" name="default" socket-binding="http"/>

        <host alias="localhost" name="default-host">
            <single-sign-on path="/"/>
        </host>
    </server>
    .
    .
    .
</subsystem>

在jboss-web.xml中,在war文件中,我们将disable-cross-context属性设置为false:

<jboss-web>
    <context-root>/test</context-root>
    <disable-cross-context>false</disable-cross-context>
    .
    .
    .
</jboss-web>

如果这不起作用,请提供您的战争文件。