Luigi De Masi created WSS-699: --------------------------------- Summary: org.apache.wss4j.dom.transform.STRTransform not compliant with Oracle spec Key: WSS-699 URL: https://issues.apache.org/jira/browse/WSS-699 Project: WSS4J Issue Type: Bug Components: WSS4J Core Affects Versions: 2.4.1 Reporter: Luigi De Masi Assignee: Colm O hEigeartaigh
According to Oracle specification, implementor of transform method of class javax.xml.crypto.dsig.Transform should return null if the data was written to the OutputStream parameter: https://docs.oracle.com/en/java/javase/17/docs/api/java.xml.crypto/javax/xml/crypto/dsig/Transform.html#transform(javax.xml.crypto.Data,javax.xml.crypto.XMLCryptoContext,java.io.OutputStream) but this commit break the specification, changing the return value from null to an empty XMLSignatureInput object: https://github.com/apache/ws-wss4j/commit/20e8e4e0406b3053cf26f82b39e882d8dd33da9a This is causing some issues during signature validation: {{code}} Caused by: javax.xml.crypto.dsig.XMLSignatureException: javax.xml.crypto.dsig.TransformException: java.lang.RuntimeException: unrecoverable error retrieving nodeset at java.xml.crypto/org.jcp.xml.dsig.internal.dom.DOMReference.transform(DOMReference.java:552) at java.xml.crypto/org.jcp.xml.dsig.internal.dom.DOMReference.validate(DOMReference.java:385) at java.xml.crypto/org.jcp.xml.dsig.internal.dom.DOMXMLSignature.validate(DOMXMLSignature.java:278) at my.company.test.SignatureValidator.validateSignature(SignatureValidator.java:148) at my.company.test.SignatureValidator.validateSecurityHeader(SignatureValidator.java:125) at my.company.test.SignatureValidator.validate(SignatureValidator.java:82) at my.company.test.SignatureValidatorTest.testSaml1Original(SignatureValidatorTest.java:66) ... 70 more Caused by: javax.xml.crypto.dsig.TransformException: java.lang.RuntimeException: unrecoverable error retrieving nodeset at java.xml.crypto/org.jcp.xml.dsig.internal.dom.ApacheCanonicalizer.canonicalize(ApacheCanonicalizer.java:174) at java.xml.crypto/org.jcp.xml.dsig.internal.dom.ApacheCanonicalizer.canonicalize(ApacheCanonicalizer.java:108) at java.xml.crypto/org.jcp.xml.dsig.internal.dom.DOMCanonicalXMLC14NMethod.transform(DOMCanonicalXMLC14NMethod.java:73) at java.xml.crypto/org.jcp.xml.dsig.internal.dom.DOMReference.transform(DOMReference.java:493) ... 76 more Caused by: java.lang.RuntimeException: unrecoverable error retrieving nodeset at org.apache.jcp.xml.dsig.internal.dom.ApacheNodeSetData.iterator(ApacheNodeSetData.java:53) at java.xml.crypto/org.jcp.xml.dsig.internal.dom.ApacheCanonicalizer.canonicalize(ApacheCanonicalizer.java:159) ... 79 more Caused by: java.lang.RuntimeException: getNodeSet() called but no input data present at org.apache.xml.security.signature.XMLSignatureInput.getNodeSet(XMLSignatureInput.java:228) at org.apache.xml.security.signature.XMLSignatureInput.getNodeSet(XMLSignatureInput.java:190) at org.apache.jcp.xml.dsig.internal.dom.ApacheNodeSetData.iterator(ApacheNodeSetData.java:50) ... 80 more {{code}} -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@ws.apache.org For additional commands, e-mail: dev-h...@ws.apache.org