gpt4 book ai didi

java - 使用 xml 签名时,整个 xml 文档是困惑的

转载 作者:行者123 更新时间:2023-11-29 06:00:52 24 4
gpt4 key购买 nike

我正在使用 xml 签名来验证 saml 请求:

签名前的初始 saml 请求:

<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID
="abc" Version="2.0" IssueInstant="2012-04-14T8:55:05:31" ProtocolBinding="urn:o
asis:names:tc:SAML:2.0:bindings:HTTP-POST" AssertionConsumerServiceURL="http://l
ocalhost:8080/consumer.jsp"><saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0
:assertion">http://localhost:8080/saml/SProvider.jsp</saml:Issuer></samlp:AuthnR
equest>

签署 xml 文档然后将其转换为字符串(使用转换器)后,我得到以下信息:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?><samlp:AuthnReques
t xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" AssertionConsumerServiceURL
="http://localhost:8080/consumer.jsp" ID="abc" IssueInstant="2012-04-14T8:55:05:
31" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Version="2.
0"><saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">http://localh
ost:8080/saml/SProvider.jsp</saml:Issuer><Signature xmlns="http://www.w3.org/200
0/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/
TR/2001/REC-xml-c14n-20010315#WithComments"/><SignatureMethod Algorithm="http://
www.w3.org/2000/09/xmldsig#rsa-sha1"/><Reference URI=""><Transforms><Transform A
lgorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></Transforms><
DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/><DigestValue>J
QV+Gff3C0PDb5zbaB62ItqWaJ/yIFgOVfANUehlJpQ=</DigestValue></Reference></SignedInf
o><SignatureValue>PJCFgkGUlQiOVn6g0hTgbbHkqOGAKB5sA8QjcdKrR5R9zuyn9ymfFZMo1jqpxU
//#here 3UOCz1BcxsWt6+
CSFSAS0SaQstuN8ns/5ltIYu3LFUrpIT4eRHxbYEjf+CFj0c08lFB+BLK3Tx3vEi7nQF+X1rUvZX
XZEUmaAMLqNdhRSqurY=</SignatureValue></Signature></samlp:AuthnRequest>


如您所见,初始字符串中的第一个属性是 ID 但是在签署第一个属性之后是 AssertionConsumerServiceURL。为什么越来越乱?此外,在签名文档中,请参阅#here(倒数第三行),有一个换行符。为什么会有换行符。我认为加密值不包含换行符。我不明白发生了什么。请帮忙。

最佳答案

为了计算签名,XML 文件必须是 canonicalized .它必须采用标准格式,以便接收应用程序验证签名。

但是,我认为它不需要规范化发送;因为接收应用程序还必须规范化 XML 以计算签名以进行验证。所以,你可以尝试reformat it签署后。但我不知道这是否有效,所以请彻底测试。

关于java - 使用 xml 签名时,整个 xml 文档是困惑的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10150745/

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