WebSphere Portal 8.5 + 操作 URL + 在上下文路径中包含 cookie 值

WebSphere Portal 8.5 + Action URL + contains cookie value in context path

最近我们从 WPS v7.0 升级到了 v8.5。我们更新了 portlet 和部分代码,使它们兼容并在新平台 (v8.5) 上运行。但是,我们发现了一些特殊的行为,正在寻找一些信息。开始了:

前提:这些 portlet 以代码形式为区域使用 cookie,例如 oh 用于俄亥俄州,ny 代表纽约等

在 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 值(在本例中:oh for Ohio)作为上下文的一部分。

我跟踪并检查了 ActionURL 标记和其他 URL 实现 类 的日志,例如 BasicURLImpl, BaseURLImpl, PortletURLProviderImpl,但没有找到任何关于 cookie 值的线索在生成操作时成为操作的一部分 url。

编辑: 我能够解码 URL(在 post 之后:WebSphere Portal decode url) and saw that the cookie values are coming up as shared parameters (global) (ref: IBM WebSphere Portal Remote State Service and Fragment Service),我认为它们是 public 渲染参数。下面是解码 url 输出的示例摘录:

<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 值以某种方式设置为 public 呈现参数,但不确定如何设置。

我们的目标是不将 cookie 值作为 URL 的一部分。任何有关设置、配置或任何有助于获得首选结果的线索都将受到赞赏。

谢谢。

通过操作URL 创建进行调试后,观察到 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

值:假

说明:URL 映射和友好 URL 是否可以包含内容项的路径信息作为 URL 的一部分。