This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ws-wss4j.git


The following commit(s) were added to refs/heads/master by this push:
     new 83d35ab  Picking up latest Santuario fixes
83d35ab is described below

commit 83d35ab878fdacdf60f3ab06856d9f72a373dbeb
Author: Colm O hEigeartaigh <[email protected]>
AuthorDate: Wed Jan 22 13:12:26 2020 +0000

    Picking up latest Santuario fixes
---
 .../transform/AttachmentContentSignatureTransform.java  |  3 +--
 .../org/apache/wss4j/dom/transform/STRTransform.java    | 17 +++++++----------
 2 files changed, 8 insertions(+), 12 deletions(-)

diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/transform/AttachmentContentSignatureTransform.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/transform/AttachmentContentSignatureTransform.java
index 5809876..6f3c39a 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/transform/AttachmentContentSignatureTransform.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/transform/AttachmentContentSignatureTransform.java
@@ -199,10 +199,9 @@ public class AttachmentContentSignatureTransform extends 
TransformService {
                  * attribute SHOULD be empty or not present.
                  */
                 Canonicalizer canon = 
Canonicalizer.getInstance(WSConstants.C14N_EXCL_OMIT_COMMENTS);
-                canon.setWriter(outputStream);
 
                 XMLSignatureInput xmlSignatureInput = new 
XMLSignatureInput(inputStream);
-                canon.canonicalizeXPathNodeSet(xmlSignatureInput.getNodeSet());
+                canon.canonicalizeXPathNodeSet(xmlSignatureInput.getNodeSet(), 
outputStream);
 
             } else if (mimeType != null && mimeType.matches("(?i)(text/).*")) {
                 CRLFOutputStream crlfOutputStream = new 
CRLFOutputStream(outputStream);
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/transform/STRTransform.java
 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/transform/STRTransform.java
index abb9223..4e1ecbd 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/transform/STRTransform.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/transform/STRTransform.java
@@ -20,8 +20,8 @@
 package org.apache.wss4j.dom.transform;
 
 import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.OutputStream;
-import java.nio.charset.StandardCharsets;
 import java.security.InvalidAlgorithmParameterException;
 import java.security.spec.AlgorithmParameterSpec;
 import java.util.Iterator;
@@ -177,8 +177,6 @@ public class STRTransform extends TransformService {
 
             Canonicalizer canon = Canonicalizer.getInstance(canonAlgo);
 
-            byte[] buf = null;
-
             //
             // Third and fourth step are performed by dereferenceSTR()
             //
@@ -214,16 +212,15 @@ public class STRTransform extends TransformService {
             //
             // C14n with specified algorithm. According to WSS Specification.
             //
-            buf = canon.canonicalizeSubtree(dereferencedToken, "#default", 
true);
-            if (LOG.isDebugEnabled()) {
-                LOG.debug("after c14n: " + new String(buf, 
StandardCharsets.UTF_8));
-            }
-
             if (os != null) {
-                os.write(buf);
+                canon.canonicalizeSubtree(dereferencedToken, "#default", true, 
os);
                 return null;
             }
-            return new OctetStreamData(new ByteArrayInputStream(buf));
+
+            try (ByteArrayOutputStream writer = new ByteArrayOutputStream()) {
+                canon.canonicalizeSubtree(dereferencedToken, "#default", true, 
writer);
+                return new OctetStreamData(new 
ByteArrayInputStream(writer.toByteArray()));
+            }
         } catch (Exception ex) {
             throw new TransformException(ex);
         }

Reply via email to