问题标签 [wsse]

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 投票
0 回答
225 浏览

php - PHP设置多个SOAP标头创建错误

我需要在 PHP 中构建以下 XML。

现在我可以使用以下类连接到服务。

API 服务的登录工作完美。它会返回正确的令牌。

但是对于进一步的请求,例如下订单,有必要在 SOAP 标头内发送令牌。

出于任何原因,如果我尝试下订单或尝试接收可用产品列表,API 的响应是:

“处理时发生故障。”

如果有人可以帮助我解决问题,那将是一个很大的帮助。

供您参考:有关身份验证和下订单的文档摘录。

SOAP 标头还用于验证 ProfiParcelService 门户中的相关服务。在 SOAP 标头中,传输了一个加密的 UserToken,其中包含必要的身份验证详细信息。此 UserToken 必须由 propsUserLogin 服务请求。该服务预计活动门户用户帐户的用户名和密码,并提供加密的 UserToken。UserToken 的有效期为六个月。

3.1。服务启动时的身份验证

在每次服务启动时,必须在 SOAP 标头中传输合作伙伴 ID 和 API 密码。仅当服务需要在 ProfiParcelService 门户进行身份验证时才需要填写 UserToken。服务的每次启动都包含以下 SOAP 标头:

4.5. propsOrderSave 服务

此服务用于创建新的运输订单或编辑现有订单。运输订单包括收件人地址、客户参考、货到付款的详细信息和包裹尺寸。发件人地址是查询ProfiParcelService 客户的收件地址。此地址在注册 ProfiParcelService 门户时存储,并且在创建或编辑订单时可能不再修改。只能在 ProfiParcelService 门户中修改此默认收件地址。是创建发货订单还是编辑现有订单取决于是否输入了订单号。如果转移了订单号,则会加载具有此编号的装运订单以进行编辑,否则会添加新订单。

4.5.1。propsOrder保存输入参数

除了 SOAP 标头中的身份验证详细信息合作伙伴 ID、API 密码和用户令牌(参见第 3 节)之外,SOAP 正文还需要运输订单的详细信息作为输入参数。这些取自 PropsOrder(参见 4.2.2)。

4.2.2. 道具订单

这种类型的数据表示运输订单的数据。此数据类型用于创建新订单或编辑现有订单。

4.2.1。地址

在运输订单中,“地址”数据用作收件人的地址。邮政信箱和包装站都不能用作收件人地址。

0 投票
0 回答
628 浏览

powershell - 在powershell中设置soap WSSE Header

这几天我一直在用头撞桌子。

当我从 Active Directory 获取信息时,我必须使用 Powershell 拨打肥皂电话。

拨打电话不是问题,我打了一个没有问题的模拟服务,问题在于我打了真正的端点并且它需要一个 WSSE 安全标头......

我在用着

我找不到设置标题的方法我尝试单独设置凭据,但它什么也没做

他们希望格式是

也试过

0 投票
0 回答
62 浏览

c# - 添加 wsse 标头以通过 .net 使用 axis2 服务

我们正在尝试开发一个客户端来使用 Axis2 服务。

这是我们试图获取数据的方法:

目前我们收到此错误:

WSDoAllReceiver:传入消息不包含必需的安全标头

.Net框架版本为4.0,基于VS 2012开发

我们无法为其实现自定义标头,是否有任何其他解决方法或好的文档来实现 WSSE 安全自定义标头?

感谢您的时间

0 投票
1 回答
1867 浏览

java - javax.xml.soap.SOAPException:找不到前缀的命名空间:wsse HEADER Security

当我尝试使用安全性对标头进行编码时出现以下错误:

javax.xml.soap.SOAPException:无法找到前缀的命名空间:wsse at weblogic.xml.saaj.SOAPElementImpl.addChildElement(SOAPElementImpl.java:357) at pr.com.prt.eppaSapInt.ws.SecurityHeader.doWithMessage(SecurityHeader.爪哇:48)

这是我的代码:

0 投票
1 回答
382 浏览

gsoap - gSOAP - 有没有办法指定soap_wsse_add_UsernameTokenDigest 的时间?

我正在尝试使用 gSOAP 与支持ONVIF的网络摄像机通信,并且我需要一种方法来指定soap_wsse_add_UsernameTokenDigest 在散列密码时使用的时间。

目前我无法确保相机和我的客户端都具有正确的 NTP 时间同步。因此,我想采用python-onvif等工具使用的方法,并简单地将偏移量应用于生成 UsernameToken 所用的时间。无需身份验证即可检索相机的日期/时间,因此计算这样的偏移量是微不足道的。

我的问题是我看不到任何方法可以让soap_wsse_add_UsernameTokenDigest 使用除了计算密码哈希的当前时间之外的任何内容。

除了更改系统时钟之外,有什么方法可以更改soap_wsse_add_UsernameTokenDigest 使用的时间?

0 投票
0 回答
151 浏览

c# - C# WSSE SoapHttpClientProtocol

我在我的 C# 应用程序中使用了第 3 方 Web 服务。在 WSSE 方面,我完全是个菜鸟。

创建 Web 服务时,它使用 SoapHttpClientProtocol 作为其基类。如何向其中添加 WSSE 标头?

我试图将基类更改为 WebServicesClientProtocol (Microsoft.web.services3)(因为某些网站建议使用它来将 usernametoken 转换为soapcontext),但这会导致“不支持操作”异常错误。

我完全迷失在这里。如何使用 SoapHttpClientProtocol 将 WSSE 标头消息(如果需要)添加到 soap 消息中?

如果有人有一些他们想分享的代码,那就太棒了。

0 投票
1 回答
2389 浏览

python - 如何使用zeep为签名添加时间戳?

我正在尝试创建一个使用 WSDL 文件并生成正确 SOAP 消息的客户端。这就是我创建客户端的方式:

zeep 代码中的注释说它应该生成类似于以下内容的 XML:

但是它不添加mustUnderstand属性并且TimeStamp是空白的。有谁知道如何确保这些字段设置正确?

0 投票
1 回答
269 浏览

wsse - WS-Security-SOAP X509PKIPathv1

我尝试使用 wsse 安全实现连接到一个肥皂网络服务。

我使用nodejs客户端soap来处理这个。

但我不知道如何在下面的示例中产生价值

我在 npmjs 上找到了几个示例,但所有示例都使用了 #X509v3 代表公共 x509 ssl 密钥。

我试图找到一种使用开放 ssl 生成 x509v1 的方法,但没有成功。

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 回答
743 浏览

c# - 从 WSSE 安全标头 C# ASMX/WCF 服务中删除时间戳

我在我的项目中添加了一个 Java WSDL 作为 Web 参考。我正在使用它来调用端点上的服务。我在 ASMX 文件中添加了一个 WebMethod 并在那里调用该服务。要求是使用 WSE 安全性并使用 X509 证书签署请求。

不幸的是,时间戳正在产生问题,我收到响应“处理标头时发现错误”。如果我从中删除 TimeStamp 元素,SoapUI 中的相同请求将起作用。 这就是请求的样子

这是创建安全元素的代码

================

使用 WCF

即使我使用 WCF 执行此操作,问题仍然存在。只要我添加 IncludeTimestamp = false; 请求未发送并将其设置为 true 可以创建请求。

这是 WCF 代码 -

这是使用上面的代码生成的请求 任何对此的帮助将不胜感激。