WebSphere Portal 8.5 + Action URL +包含上下文路径中的cookie值
最近我们从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的一部分。赞赏任何设置,配置或任何有助于获得首选结果的线索的线索。
谢谢。
在通过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的一部分。