问题标签 [xop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
783 浏览

python - 无法使用 SUDS (python) 解密 MTOM/XOP 附件

我有一个从服务器下载文件的 SOAP 客户端。该请求的正文和附件(文件)使用两个单独的密钥进行加密。这两个键都包含在各自的<xenc:EncryptedKey>标签中。我可以使用其中一个密钥解密正文没有问题,但是附件给我带来了问题。

我的代码:

充其量我得到的结果是乱码,但通常它只是说Error while decrypting in CBC mode问题:有人遇到过这个问题吗?我愿意接受 Python、Java、PHP、Perl、C 以及几乎所有在 linux 上运行的东西的建议。MTOM/XOP 附件的加密方式有什么特别之处吗?

我已经看到了这个问题,但它没有正确的答案。八位字节/流是指内容类型,而不是传递机制,因此答案不正确。

编辑:服务器规范说他们使用带有 PKCS5 填充的 AES128-CBC 算法加密消息。对我来说,他们使用 DES 填充进行 AES 加密没有任何意义,但他们坚持这一点。

Edit2:有时附加的消息没有正确的 AES128 解密长度(例如 6023 字节或 4071 字节)。

作为参考,消息采用以下格式:

0 投票
1 回答
606 浏览

java - 在 apache cxf 3.0.X 中为 WSS4JOutInterceptor 设置 EXPAND_XOP_INCLUDE

当将 MTOM ENABLE 设置为 true 时,我想避免自动生成 apache cxf(版本 3.0.4)中包含的 xop 我该怎么做?例如,我有一个肥皂服务。它支持 mtom 但不支持 xop 包含注释,所以它拒绝了我的请求:

我该如何设置我的请求:

所以最后我只想替换:

怎样才能得到这个结果?在较新的版本中,此https://ws.apache.org/wss4j/apidocs/org/apache/wss4j/common/ConfigurationConstants.html#EXPAND_XOP_INCLUDE有一个参数,如何在旧版本中复制?

这是我使用的java代码:

0 投票
0 回答
402 浏览

php - 读取 SOAP MTOM/XOP 消息

我在读取 MTOM/XOP 中的 SOAP Web 服务中的消息时遇到了严重问题。我正在尝试反序列化但没有。我也尝试过使用 SOAP UI,但也没有。我正在使用 PHP 反序列化它。我知道这个答案“ PHP 中的 SOAP MTOM/XOP 支持”,但它对我不起作用。任何帮助或建议都会非常感谢它。

这是我收到的消息:

PK|!cK RECIBO.XML�X�n�6}/��n]m�/�^� vl���%�Qa���l����@g��D9�4m��n “噢!”\8“3|�|e�K/���D�7�jLu����!�2 x�C+P�s�; �jsk����yP�1L\�� 8�U�~�8�8t������2�}��Y��$�8�>�R�U�[v9��H��^�s�D�@��+ �8������F�>o�;�����LS�T��4��.�4�S��SO+eox ��e�ֵ=��o���O3�]���# o�_�6/ 6�ZHJ����c{����#nը��԰�g��&u�� ukb�����+7����������PKL8 ��/PK<|!cKL8��/RECIBO.XMLPK8�--MIMEBoundary_ ALPHANUMERICONTENT*-- "

0 投票
1 回答
708 浏览

java - JAX-WS CXF 空 XOP 多部分附件,文件大小 > ~210kb

我正在使用 jax-ws cxf 从 SOAP 接口加载文档。我可以通过 SoapUI (xop/multipart) 获得正确的文档。不幸的是,当我尝试通过代码加载附件时,CachedOutputStream大于~210kb 的文件为空。

我尝试了什么

  • 为我的 WebServiceClient 激活 MTOMFeature
  • 使用 JVM 参数CachedOutputStream.ThresholdCachedOutputStream.MaxSize
  • 使用不同版本的 apache-cxf (3.2.13.1.14)

调试时

PhaseInterceptorChain#doIntercept使用AttachmentInInterceptor(at currentInterceptor.handleMessage(message);) 加载附件LazyAttachmentCollection并将其添加到消息中。

  1. 快乐的情况:文档被加载到 CachedOutputStream 并且在 for 循环之后可用。

  2. 错误情况(文件太大?):调用 currentInterceptor.handleMessage 后文档直接可用,但循环结束后文档消失

    然而,在上述两种情况下,正确的 tmp 文件都会保存到我的磁盘中(与我的文档内容完全相同)。此外,即使循环完成,我也可以在这两种情况下加载该文件:((org.apache.cxf.attachment.LazyAttachmentCollection)(message.getAttachments())).loadAll();

0 投票
1 回答
608 浏览

node.js - node.js 肥皂附件文件/ cid href

我正在使用 node-soap 来使用 laposte Web 服务,该服务应该会向我发送带有 PDF 附件的响应。

但我得到的不是文件,而是一个 href,如下所示

href: 'cid:c482ea77-cc5b-406f-8596-295470ce8049-100134@cxf.apache.org'

在文档中,这个附件被描述为一个XOP 二进制文件:不明白这意味着什么,也不知道如何在节点中处理和打开它......

您对如何处理此类文件/href/cid 有提示吗?

额外的问题:到底为什么像 Laposte(法国的主要送货服务)这样的企业仍在使用这样的技术,而文档却如此之少,却被人群挪用?

最佳 <3

0 投票
0 回答
176 浏览

java - 使用 java 边界错误解析 XOP/MTOM 响应

我尝试了主题讨论中给出的解决方案https://stackoverflow.com/a/37503560/9623898但我收到错误 - javax.mail.MessagingException: Missing start boundary

0 投票
0 回答
198 浏览

soapui - SOAPUI - 响应中的 GZ 文件

我正在使用 SOAPUI。它调用 SOAP 调用,下载 gz 文件。响应包括一个 gz 文件。在响应的附件选项卡中,我确实看到了一个文件 abc.gz,其内容类型为 application/gzip,类型为 XOP。

我已尝试设置请求属性 - 我已启用 MTOM 为真。我还指定了一个转储文件。

转储文件不是 gzip 文件,而是 XOP 文件

我的问题是 - 我如何从中提取 gz 文件?

XOP 文件看起来像

0 投票
1 回答
154 浏览

assembly - VPERMIL2PS 和 VPERMIL2PD 所有 PERMIL2 指令都消失了 - 替换丢失的指令

如何使用 AVX2 中的等效指令替换丢失的VPERMIL2PS指令?

使用来自 ymm4/mem 的控件置换 ymm2 和 ymm3 中的单精度浮点值,结果存储在具有选择性零匹配控件的 ymm1 中。

英特尔 C/C++ 编译器内在等效项

VPERMIL2PS ymm1, ymm2, ymm3,ymm4/m256, imz2 描述 - 使用来自 ymm4/mem 的控件置换 ymm2 和 ymm3 中的单精度浮点值,结果存储在 ymm1 中,并带有选择性的零匹配控件。imz2:is4 立即字节的一部分,提供适用于双源置换指令的控制功能。

最接近的指令是 VPERMILPS .. 这个指令仍然有效

VPERMILPS ymm1、ymm2、ymm3/m256 描述 - RVM V/V AVX 使用来自 ymm3/mem 的控件在 ymm2 中置换单精度浮点值并将结果存储在 ymm1 中。

我很难说它如何正确,因为为了可靠性,您需要模拟指令VPERMIL2PS,因此我呼吁当地专家!

最近的英特尔(R) AVX 架构更改 2009 年 1 月 29 日 删除:VPERMIL2PS 和 VPERMIL2PD

所有 PERMIL2 指令都消失了——包括 128 位和 256 位版本。像下面的 FMA 一样,他们使用 VEX.W 位来选择来自内存的源——我们不再朝着使用 VEX.W 的方向发展。

英特尔编译器不理解此 VPERMIL2PS 指令。

AVX-512 指令需要最新的处理器,这不是一个通用的解决方案.. Visual Studio成功组装了该指令,但该指令无法在处理器上执行,抛出异常。

反汇编代码

指令的完整描述

手术

VPERMIL2PS(VEX.256 编码版本)

Bochs 模拟此指令的方式

0 投票
0 回答
416 浏览

python - 如何使用 Python 在 Mtom/xop 请求中发送 Content-id

我正在尝试使用 python 行为发送 mtom/xop 请求。我无法理解如何发送 Content-id

我正在使用 python3 和 xml 有效负载。

Python代码

错误

使用此代码在有效负载文件中发送标头并发送 POST 请求

0 投票
1 回答
98 浏览

java - WCF MTOM/XOP 客户端反序列化错误

这是我已经回答过的那些“问题”之一,但是我发布了 b/c,基于一周的谷歌搜索,那里的信息似乎接近于零。

TL;DR:WCF MTOM 将 BasicHttpBinding 客户端编码到外部/第 3 部分,非 .NET Web 服务在 MTOM 响应的 XOP 处理上阻塞 - 基本上 MTOM 编码器似乎期望二进制元素中的 base64 有效负载,但运行到.. . 指令并且无法将 SOAP/XML 反序列化为运行时对象,从而在此问题的标题中引发错误。

错误:应从命名空间“ http://mynamespace ”结束元素“MyBinaryData”。从命名空间“ http://www.w3.org/2004/08/xop/ ”中找到元素“xop:Include ”

如前所述,关于这个主题的内容并不多,我猜 b/c MS 基于服务开发编写了大部分 WCF 文档,而不是客户端(尽管有一些,公平地说)。

我不打算详细介绍初始设置 b/c 我将要回答我自己的问题,但我会在回答前先说这更类似于 WCF 的默认配置MTOM 比没有。

另外,我知道 WCF 是旧的、无聊的,并且不再由 MS 积极开发,但它仍然受到支持并且有很多用途。实际上,我没有太多选择,必须找到一种方法来完成这项工作。这就是为什么我要与其他必须处理这种头痛的人分享我的发现。