2017-03-31 83 views
0

最近我們從WPS v7.0升級到v8.5。我們更新了Portlet和代碼的幾個部分,以使它們兼容並在新平臺上工作(v8.5)。然而,我們發現了一些奇怪的行爲,我們正在尋找一些信息。這裏有雲:WebSphere Portal 8.5 + Action URL +包含上下文路徑中的cookie值

前提:這些portlet使用cookies爲地區代碼的形式,例如俄亥俄州,紐約紐約等

在WPS V7早些時候。 0時,生成的Portlet動作URL的格式如下:

http://<host>:<port>/wps/portal/!ut/p/b1/04_SjzQ0M....等等。

現在,在新的平臺(v8.5)上,URL與下面的表單有點不同。

http://<host>:<port>/wps/portal/oh/!ut/p/z1/pZBNCsIwE...(在俄亥俄州的情況下)

http://<host>:<port>/wps/portal/ny/!ut/p/z1/pZBNCsIwE...(在紐約的情況下)

現在來到奇特的一部分。作爲上下文的一部分,8.5上的URL包含cookie值(在這種情況下爲俄亥俄州的哦)。

我跟蹤並檢查了ActionURL標記和其他URL實現類(如BasicURLImpl, BaseURLImpl, PortletURLProviderImpl)的日誌,但未發現cookie值如何在生成時成爲操作url的一部分。

編輯: 我能夠解碼URL(以下這篇文章:WebSphere Portal decode url),只見那cookie的值都上來爲共享參數(全球)(參考:IBM WebSphere Portal Remote State Service and Fragment Service),我把他們視爲公共呈現參數。從這裏以下網址解碼輸出樣本摘錄:

<shared-parameters id="global"> 
    <shared-parameter nsuri="http://www.ibm.com/xmlns/prod/websphere/portal/publicparams" localpart="path-info"> 
     <value>oh</value> 
    </shared-parameter> 
</shared-parameters> 

在這一點上,我認爲是某種值被設置爲公共呈現參數,但不知道如何該cookie。

我們的目標不是將cookie的值作爲URL的一部分。讚賞任何設置,配置或任何有助於獲得首選結果的線索的線索。

謝謝。

回答

0

在通過actionURL創建進行調試之後,觀察到cookie值在以下觀察路徑中作爲友好路徑傳遞。到目前爲止,對於如何將這些價值觀作爲一條友好的道路傳遞,我們並不知情。

PortletURLImpl 
    .provider 
        .request (PortletRequestWRapper). 
            .request(ExtendedLocaleRequest). 
                .request(ExtendedLocaleRequest). 
                    .request(FriendlySelectionHttpServletRequestWrapper) 
                        .friendlyPath= /oh 
                        .contextPath = /wps 
                        .originalPathInfo =  / 
                        .pathInfo =/
                        .servletPath= /portal 
                        .request (MappingURLRequestWrapper) 
                            .contextPath = /wps 
                            .servletPath= /portal 
                            .originalPathInfo = /oh 

最後的問題通過在加入以下屬性現在固定WAS管理控制檯:

資源環境提供>WP ConfigService的>自定義屬性

添加物業

名稱:friendly.pathinfo .enabled

值:false

說明:無論URL映射和友好的網址可能包含路徑信息的內容項作爲URL的一部分。