2017-03-31 80 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的一部分。