【问题标题】:WSO2 BPS Shared HTTP CookiesWSO2 BPS 共享 HTTP Cookie
【发布时间】:2012-05-15 19:35:22
【问题描述】:

考虑我们需要编排 WSO2 Carbon 管理服务的场景:AuthenticationAdmin 和 UserAdmin(通过 WSO2 BPS BPEL 流程)。已验证用户的 AuthenticationAdmin 服务返回 JSESSIONID cookie,该 cookie 应在后续调用(listUsers() in UserAdmin 为例)。然而,HTTP cookie 似乎不共享并用于同一域中的 Web 服务:

http://localhost:9443/services/AuthenticationAdmin
http://localhost:9443/services/UserAdmin 

对这个问题有什么意见或解决方案吗?

【问题讨论】:

    标签: cookies wso2 bpel


    【解决方案1】:

    我认为这里的问题是 WSO2 BPS 当前只能在服务绑定为 SOAP 时访问(获取/设置)消息的 SOAP 标头(而不是 HTTP 标头)。因此,您可以在 BPS 前面使用 ESB,以便从 carbon 返回的 cookie 可以从 HTTP 标头复制到自定义 SOAP 标头。然后,您将能够通过 BPS 访问它并可以将其存储为变量。稍后 BPS 可以使用 SOAP 标头中的此 cookie 进行管理调用,ESB 可以将其复制到 HTTP 标头。您可以在this 线程中阅读有关在 Apache ODE/WSO2 BPS 中访问 HTTP 标头的更多信息。

    【讨论】:

    • 我们正在研究解决方案 s.t. BPEL 流程可以通过 BasicAuth 调用碳管理流程,并且可以在 BPEL 工件本身中配置用户名和密码。因此,此解决方案将提供一种无需面对 ESB 即可调用碳管理服务的方法。您可以从wso2.org/jira/browse/CARBON-13111 跟踪这项工作的进度
    • 嗨,丹尼斯,感谢您的回复。 Apache ODE 文档说他们正在通过 BPEL 扩展处理线头。所以,当我切换到 HTTPS 服务端点(登录和 listUsers)时,为什么这个 BPEL 复制操作不交换 JSESSIONID cookie:<bpel:copy> <bpel:from variable="loginResponse" header="Set-Cookie"/> <bpel:to variable="listUsersRequest" header="Cookie"/> </bpel:copy>
    • 我认为它在我上面发布的线程中提到..“赋值的标头属性在消息的抽象表示上设置标头。用于发送此消息的表示取决于服务绑定. SOAP 绑定 -> SOAP 头 ; HTTP 绑定 -> HTTP 头(这是绑定和传输相同的特定情况) 因此,如果您调用的服务使用 SOAP 绑定,请不要期望 HTTP 头设置。”
    • 是的,我尝试了 HTTP 绑定,但没有使用上述复制过程(Set-Cookie ->Cookie)设置 JSESSIOND cookie。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多