未从camel规范化使用空元素签名的XML元素
我最近开始使用camel的xml安全组件来传递xml输入并对其进行签名。我发现输出XML是在非规范化XML上签名的。当my在response.xml中包含空元素时,就会出现这种情况。“direct:detachedSign”路由的输出显示签名是根据元素计算的 问:为什么签名路由输出有一个规范化方法和转换,但仍然有一个非规范元素 已使用的input response.xml未从camel规范化使用空元素签名的XML元素,xml,jaxb,apache-camel,xml-signature,canonicalization,Xml,Jaxb,Apache Camel,Xml Signature,Canonicalization,我最近开始使用camel的xml安全组件来传递xml输入并对其进行签名。我发现输出XML是在非规范化XML上签名的。当my在response.xml中包含空元素时,就会出现这种情况。“direct:detachedSign”路由的输出显示签名是根据元素计算的 问:为什么签名路由输出有一个规范化方法和转换,但仍然有一个非规范元素 已使用的input response.xml <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns3:response xmlns:ns2="http://www.w3.org/2000/09/xmldsig#"
xmlns:ns3="http://example.com">
<sampleHolder ID="myUniqueID">
<sample></sample>
</sampleHolder>
</ns3:response>
<?xml version="1.0" encoding="UTF-8"?>
<ns3:response xmlns:ns3="http://example.com" xmlns:ns2="http://www.w3.org/2000/09/xmldsig#">
<sampleHolder ID="myUniqueID">
<sample/>
</sampleHolder>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>
<SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
<Reference URI="#myUniqueID">
<Transforms>
<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<DigestValue>...</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>...</SignatureValue>
<KeyInfo>...</KeyInfo>
</Signature>
</ns3:response>
public class SignAndVerifiyXmlSignatureRoutes extends RouteBuilder {
@Override
public final void configure() throws Exception {
// Detached signature
from("direct:detachedSign")//
.to("xmlsecurity:sign://detached"//
+ "?keyAccessor=#jksKeyAccessor"//
+ "&xpathsToIdAttributes=#xpathsToIdAttributesBean"//
+ "&schemaResourceUri=xsd/response.xsd"//
+ "&signatureId="//
+ "&prefixForXmlSignatureNamespace=" //
+ "&canonicalizationMethod=#canonicalizationBean" //
+ "&signatureAlgorithm=http://www.w3.org/2001/04/xmldsig-more#rsa-sha256" //
+ "&digestAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256"//
+ "&transformMethods=#transformMethodsBean" //
+ "&clearHeaders=false"); //
from("direct:verify")//
.to("xmlsecurity:verify://detached?keySelector=#jksKeySelector" + //
"&schemaResourceUri=xsd/response.xsd");
}
}