首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OSB -分割连接调用安全的web服务

OSB -分割连接调用安全的web服务
EN

Stack Overflow用户
提问于 2014-01-07 20:23:45
回答 2查看 1.3K关注 0票数 1

我创建了一个新的拆分连接(在OSB车间应用程序中)。然后,我使用一个操作“调用服务”来调用一个不安全的业务服务。到目前为止没问题。当我向业务服务分配安全策略时,OSB不接受。以下是OSB车间中的错误消息:并行、范围、调用服务--不支持BusinessService的WSDL绑定"OSB/1_0/BusinessServices/TestBS“:不支持服务特性”WS“。如何在splitJoin中调用安全的业务服务?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-05 05:28:39

YOu永远不能调用在WSDL中定义了WS_POLICY的基于WSDL的代理/业务服务。您需要有一个中间业务/代理,才能将消息传递给包含WSDL服务的WS策略。

票数 0
EN

Stack Overflow用户

发布于 2014-06-12 01:54:10

我将提供一个user2364825正确答案的更多扩展版本。

拆分-连接实际上是一个进入旧产品的“窗口”(这就是为什么它的外观和行为与OSB不同)。该产品有一些局限性,包括无法使用WS_POLICY。

有两种常用的解决办法。

方法1.制作一个去掉WS_POLICY的同一个WSDL版本,并在拆分连接中使用它。从拆分连接中,调用中间代理,其中包含已剥离的WSDL,后者反过来使用原始WSDL调用业务服务。

代码语言:javascript
运行
复制
BizService(Stripped WSDL)->Split-Join->Proxy2(Stripped WSDL)->BizService(Real WSDL)

只有当WS_POLICY头由OSB代码创建时,这种方法才能起作用。

如果通过拆分连接传递的消息已经有一些SOAP头(包括策略),那么这些消息将丢失,并且方法#1无法工作。

方法2.创建一个自定义WSDL,它用它的所有SOAP头和其他东西包装原始消息。将WSDL用于拆分连接,将包装好的消息传递给展开代理,然后调用真正的代理/biz。

代码语言:javascript
运行
复制
BizService(Wrapper WSDL)->Split-Join->Proxy2(Wrapper WSDL)->BizService(Real WSDL)

第二种方法更复杂,但也更强大。例如,它可以很容易地扩展到支持用户头(拆分-连接也不支持它们),传递调试信息和几乎任何其他东西。

这种方法是在我的GenericParallel服务中实现的,上面所做的以及更多的工作。

我也有一篇博客文章概述了通过拆分连接传递SOAP头。的更多细节。(毕竟,WS_Policy只是一个SOAP头)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20981139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档