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);
}