2012-05-15 30 views
0

考虑我们需要协调WSO2碳管理服务的场景:AuthenticationAdminUserAdmin(通过WSO2 BPS BPEL流程)。用于身份验证的用户的AuthenticationAdmin服务返回的后续调用JSESSIONID的cookie,必须使用这些(在HTTP请求注入)(在UserAdmin例如listUsers())。然而似乎HTTP cookie被不共享并在同一个域中使用的Web服务:WSO2 BPS共享的HTTP cookies

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

任何意见或解决问题的方案?

回答

0

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

+2

我们正在研究解决方案s.t. BPEL流程可以通过BasicAuth调用碳管理流程,用户名和密码可以在BPEL工件本身中配置。所以这个解决方案将提供一种调用碳管理服务的方式,而不需要面向ESB。你可以通过https://wso2.org/jira/browse/CARBON-13111 –

+0

来跟踪这项工作的进展。Hi Denis,谢谢你的回应。 Apache ODE文档说他们正在通过BPEL扩展来处理Wire Header。所以,当我切换到HTTPS服务端点(login和listUsers)时,为什么这个BPEL拷贝操作不会交换JSESSIONID cookie:' ' – user416472

+0

我认为它在我上面发布的线程中提到过。“分配的标题属性在消息的抽象表示中设置标题。用于发送此消息的表示取决于服务绑定。SOAP绑定 - > SOAP头; HTTP绑定 - > HTTP头(这是绑定和传输相同的特定情况)因此,如果您要调用的服务使用SOAP绑定,不要指望HTTP头被设置。“ – keheliya