1

我已经使用 IBM HTTPServer 设置了 IBM MobileFirst 7.0。HTTPServer 仅侦听 443 上的 SSL 流量(不处理端口 80 上的 http 请求)。plugin-cfg.xml 将 /appcenterconsole URL 定向到运行 MobileFirst 应用程序的 WebSphere Liberty 服务器。

起初,App Center 控制台已加载,我可以登录,但对 /appcenterconsole/services/* 的任何调用都会收到证书链错误。我通过将 http 服务器的证书添加到 Liberty 密钥库来解决此问题。执行此更改后,行为发生了变化,因此在登录 App Center 时,用户立即收到“您的会话已过期”消息并被发送回登录页面。

为什么我的会话会丢失?HTTP 服务器有一个 JSESIONID 用于对 /appcenterconsole/* 的请求。

HTTP 插件能否通过 http 将流量发送到 Liberty 服务器以避免 SSL 链问题?

4

1 回答 1

0

这看起来像一个 SSO(单点登录)问题。有两个 Web 应用程序,AppCenterConsole 和 AppCenterServices,它们都需要身份验证,因此它们应该使用 SSO 进行设置。您似乎到达了 AppCenterConsole,但没有到达 AppCenterService。

Liberty 默认具有 SSO,但如果您使用多个服务器,请确保您已按照Websphere Liberty Profile 文档中的在 Liberty Profile上配置 LTPA的说明进行操作。

或者,您可以将 AppCenterConsole 的 JNDI 属性ibm.appcenter.ui.cors设置为 false。这将避免将请求从 AppCenterConsole 重定向到 AppCenterService。如果它还没有解决问题,那么至少它会产生一个更好的错误消息,其中包含指向真正问题的堆栈跟踪。

于 2015-07-10T13:37:35.217 回答