点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)晚上好。 我正在努力完成以下任务...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)晚上好。 我正在努力完成以下任务...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
晚上好。 我正在努力完成以下任务,希望能对此提供帮助。
设置为Proxy-> SOAP,问题出在SOAP接收器通道的模块链中。
我必须满足我需要使用的外部WebService的安全性要求。 在我的方案中,我已经配置了以下步骤:
1。 在上一个调用中(使用X.509证书对请求进行签名)从另一个服务中获取SAML安全令牌,并将其保存在ABAP后端中。
2。 将此安全令牌和请求数据一起从ABAP发送到PO。
3。 在PO中,首先在ICO的"接口确定"部分中执行XSLT映射,以创建SOAP头并将安全令牌放入该头中。 (并绘制一些其他内容,在这里并不重要。)
4。 然后,将其传递到选中了"不使用SOAP信封"的SOAP接收器通道。
我配置了以下模块链:
我需要AxInvokerBean调用WSAllSender来添加时间戳,并使用密钥库中的证书对时间戳和正文进行签名。 这很好。
然后有效载荷如下:
信封
-标头
--安全性
---签名
---时间戳
--SAML令牌
-身体
但是我需要这个:
信封
-标头
--安全性
---SAML令牌
---签名
---时间戳
-身体
换句话说:我必须将SAML令牌放入"安全性"节点内。 为此,我创建了一个小的XSLT映射,并使用MessageTransformBean对其进行了调用:
<?xml version =" 1.0" encoding =" UTF-8"?>
(我删除了所有名称空间声明,以使其更易于阅读,但在现实生活中,它们在那里)。 在开发过程中,我使用AxInvokerBean和LogHandler在每个模块调用之前保存有效负载。
此映射是我需要调用此WebService的最后一步。 如果我将AxInvoker产生的有效负载放入Eclipse的xslt中,它将产生我想要的内容。 这不是xslt问题。
最后是我的问题:
在此模块链中,xslt根本不执行任何操作,有效负载在调用之前和之后看起来相同(某些空格除外)。 我在xpi_inspector中可以看到已找到并调用了该转换,并且该转换已"成功执行",但是它什么也没做,我不知道为什么。
谢谢!
modules.jpg (28.6 kB)
嗨,基督徒!
在这种情况下很难建议。 我会尝试首先在模板中的"选择"属性中使用"//saml:Assertion",以确保在运行时模块处理过程中以正确的方式评估XPath表达式。
Evgeniy。/p>
一周热门 更多>