我們有一個正在構建的Web應用程序可以爲多個區域網站頂級域名服務。另外,該Web應用程序還支持數千個動態子域。實例包括:GlassFish v3 JSESSIONID多個子域名和頂級域名
www.example.com
www.example.co.uk
www.example.com.ar
fred123.example.co.uk <== Thousands of this form
fred123.p.example.us <== Thousands of this form
雖然我們可以理解,不同的域的TLD導致新會話的問題開始出現與後者2個以上示例這也導致新的會話實例。例如,如果用戶:
- 轉到:www.example.co.uk一個新的會話創建,然後...
- 點擊一個鏈接:fred123.example.co.uk一個新的會話創建,然後...
- 點擊一個鏈接:創建sam99.example.co.uk一個新的會話...
3次點擊== >> 3屆!!!!
該問題似乎是由於GlassFish v3自動將JSESSIONID的域設置爲主機請求的FQDN。
所需要的是主機名部分至少是被剝離的域值有域值,如:
.example.com
.example.co.uk
.example.com.ar
.example.co.uk <== Thousands of this form
.p.example.us <== Thousands of this form
有誰知道如何可以做到這一點。我發現以下是問答&一但在我們的情況下,子域名的頂級域名並不都匹配:
An issue dealing with JSP Session
人機工程學的靜態配置的sun-web.xml中,或使用一個Servlet 3.0解決方案不會出現在解決方案幫助。同時創建過濾器響應包裝器也不起作用,因爲JSESSIONID cookie分配在應用程序服務器的較低級別中,並且未暴露給Web應用程序攔截。
只有其他兩個選項,我認爲我已經是:
一)補丁,設置JSESSIONID Cookie域值FQDN了GlassFish v3的代碼,使一些發生剝離的或
B)做的事Sun Web Server 7.0反向代理層,我們必須重新編寫set-cookie頭中返回的JSESSIONID cookie域值,但是我一直無法找到關於如何執行此操作的示例。
任何人都可以幫助解決此問題?任何線索/幫助將非常感謝!
是否所有這些URL映射到一個獨特的Web應用程序? – 2010-07-10 21:48:36
是的。他們都映射到一個Web應用程序。 最初將會有8個區域頂級域名,隨後會增加更多,因爲我們將有6個glassfish實例的LB'd服務器,爲了允許不同的JSESSIONID域cookie值而部署單獨的webapps開始變得非常自由。另外,無論單獨的web應用程序是否仍然是動態域的問題。思考??? – nikolaosinlight 2010-07-10 23:19:36
我正在看的兩個領域: 1)一些如何獲得Sun Web Server 7。0 RP來重寫從GlassFish v3服務器返回的標題響應中設置的JSESSIONID cookie域值。任何人都知道嗎? 2)在GlassFish v3中編寫該類的修改版本,該版本確定JSESSIONID cookie域值的FQDN,以便更好地設置值。事實上,這正是我們當前代碼中的cookie如何計算其cookie值域以設置所選/確定的域語言環境。 任何人都知道我應該將代碼放入哪個類中? – nikolaosinlight 2010-07-11 01:10:43