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 deed5a3  Picking up some fixes from Santuario
deed5a3 is described below

commit deed5a3c90cc22f3c90638cdaabaf35bab5306a1
Author: Colm O hEigeartaigh <cohei...@apache.org>
AuthorDate: Fri Apr 3 16:12:55 2020 +0100

    Picking up some fixes from Santuario
---
 .../transform/AttachmentContentSignatureTransform.java    |  5 ++---
 .../java/org/apache/wss4j/dom/util/EncryptionUtils.java   | 15 +++++++++------
 2 files changed, 11 insertions(+), 9 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 6f3c39a..f0c9e03 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
@@ -29,8 +29,8 @@ import org.apache.wss4j.dom.WSConstants;
 import org.apache.xml.security.c14n.CanonicalizationException;
 import org.apache.xml.security.c14n.Canonicalizer;
 import org.apache.xml.security.c14n.InvalidCanonicalizerException;
+import org.apache.xml.security.parser.XMLParserException;
 import org.apache.xml.security.signature.XMLSignatureInput;
-import org.xml.sax.SAXException;
 
 import javax.security.auth.callback.Callback;
 import javax.security.auth.callback.CallbackHandler;
@@ -42,7 +42,6 @@ import javax.xml.crypto.XMLStructure;
 import javax.xml.crypto.dsig.TransformException;
 import javax.xml.crypto.dsig.TransformService;
 import javax.xml.crypto.dsig.spec.TransformParameterSpec;
-import javax.xml.parsers.ParserConfigurationException;
 
 import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
@@ -239,7 +238,7 @@ public class AttachmentContentSignatureTransform extends 
TransformService {
             }
             return null;
         } catch (IOException | InvalidCanonicalizerException | 
CanonicalizationException
-            | ParserConfigurationException | SAXException e) {
+            | XMLParserException e) {
             throw new TransformException(e);
         }
     }
diff --git 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/EncryptionUtils.java 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/EncryptionUtils.java
index b0a0063..98615c2 100644
--- 
a/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/EncryptionUtils.java
+++ 
b/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/EncryptionUtils.java
@@ -33,6 +33,7 @@ import org.apache.xml.security.algorithms.JCEMapper;
 import org.apache.xml.security.encryption.Serializer;
 import org.apache.xml.security.encryption.XMLCipher;
 import org.apache.xml.security.encryption.XMLEncryptionException;
+import org.apache.xml.security.parser.XMLParserException;
 import org.apache.xml.security.utils.JavaUtils;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
@@ -360,7 +361,7 @@ public final class EncryptionUtils {
        SecretKey symmetricKey, String symEncAlgo, CallbackHandler 
attachmentCallbackHandler,
        String xopURI, Element encData
    ) throws WSSecurityException, IOException, UnsupportedCallbackException, 
NoSuchAlgorithmException,
-        NoSuchPaddingException, ParserConfigurationException, SAXException {
+        NoSuchPaddingException, ParserConfigurationException, 
XMLParserException {
 
         if (attachmentCallbackHandler == null) {
             throw new 
WSSecurityException(WSSecurityException.ErrorCode.FAILED_CHECK);
@@ -395,11 +396,13 @@ public final class EncryptionUtils {
         Document document = null;
         try {
             document = org.apache.xml.security.utils.XMLUtils.read(new 
ByteArrayInputStream(bytes), true);
-        } catch (SAXException ex) {
-            // A prefix may not have been bound, try to fix the DOM Element in 
this case.
-            String fixedElementStr = setParentPrefixes(encData, new 
String(bytes));
-            document = org.apache.xml.security.utils.XMLUtils.read(
-                new ByteArrayInputStream(fixedElementStr.getBytes()), true);
+        } catch (XMLParserException ex) {
+            if (ex.getCause() instanceof SAXException) {
+                // A prefix may not have been bound, try to fix the DOM 
Element in this case.
+                String fixedElementStr = setParentPrefixes(encData, new 
String(bytes));
+                document = org.apache.xml.security.utils.XMLUtils.read(
+                    new ByteArrayInputStream(fixedElementStr.getBytes()), 
true);
+            }
         }
 
         Node decryptedNode =

Reply via email to