gpt4 book ai didi

java - 如何在Spring Web服务中为不同的客户端实现数字签名验证?

转载 作者:太空宇宙 更新时间:2023-11-04 11:57:09 27 4
gpt4 key购买 nike

我需要使用基于 Spring 的 Web 服务的 X509 证书来验证 SOAP 请求的数字签名,该 Web 服务接受来自多个供应商的请求。

实现这种安全性的总体策略是什么?我是否应该为每个供应商创建一个 Web 服务,以便我可以根据调用者的公钥验证数字签名?理想情况下,我希望只有一个 Web 服务,因为每个供应商请求的内容都具有相同的架构。

最佳答案

SOAP 消息的数字签名嵌入到消息的 SOAP header 中。这是消息的简化架构。 (查看完整示例 here )

<?xml version="1.0" encoding="UTF8"?>
<SOAP-ENV:Envelope>
<SOAP-ENV:Header>
<wsse:Security
<wsse:BinarySecurityToken />
<ds:Signature>
<ds:SignedInfo>
<ds:SignatureValue>
<ds:KeyInfo>
</ds:Signature>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

签名可以了解引用用于签名的 x509 证书的签名者的身份。

您不需要为每个供应商提供不同的 Web 服务。 要允许访问,请向将用于签署消息的供应商请求证书的公共(public)部分。收到肥皂消息后,将签名者证书与预期证书进行比较。

为了简化比较,您可以检查序列号+颁发者

关于java - 如何在Spring Web服务中为不同的客户端实现数字签名验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41274346/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com