支持weblogic中的多个cookie域

时间:2014-02-11 16:57:57

标签: java java-ee weblogic session-cookies weblogic12c

我们有一个weblogic应用程序,需要支持从多个域提供服务(例如“foo.com”和“bar.com”)。一旦用户在其中一个域上启动会话,他们就可以访问该主域外的子域(例如“a.foo.com”,“b.foo.com”)并在所有这些子域中共享该会话。如果用户从“foo.com”跳到“bar.com”,他们将失去会话,这很好。

我们能够在JBoss / Tomcat上成功实现这一点,方法是通过自定义'Valve'来重写会话cookie,使其始终位于所请求的serverName的顶级域(即request.getServerName())。

但是,我们目前正在将我们的应用程序从JBoss迁移到Weblogic,并试图找出如何支持相同的要求。我们发现weblogic允许通过在weblogic.xml中设置'cookie-domain'属性来跨单个域的多个子域共享会话:

<session-descriptor>
    <cookie-path>/store</cookie-path >
    <cookie-domain>.foo.com</cookie-domain>
</session-descriptor>

但是,我们还没有想出如何配置对多个域(即foo.com和bar.com)的支持。据我们所知,weblogic.xml文件不支持此功能。

如果我们只配置weblogic.xml中的一个域,则会话对于未配置的域(即每个请求都会导致新会话)无法正常工作。

关于如何在weblogic上为单个网络应用程序支持跨不同域的会话的任何想法?

我们正在使用Weblogic 12c。

2 个答案:

答案 0 :(得分:1)

从WebLogic 12c开始,Oracle确认目前尚未支持我们尝试执行的操作。目前还没有实施此类功能的计划。

我们选择实施的解决方法是使用mod_rewrite将HTTP服务器级别的JSESSIONID cookie的域重写为请求的域。

答案 1 :(得分:0)

我认为不应该支持这样的选择。如果允许,那么没有什么可以防止hotmail.com在其配置文件中配置yahoo.com(比如说)并获得对yahoo的JSESSIONID值的访问权。