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/cxf.git


The following commit(s) were added to refs/heads/master by this push:
     new 4e981b1  Picking up some Santuario changes
4e981b1 is described below

commit 4e981b1f5bb19bc85e3b92e325216148ef043e8c
Author: Colm O hEigeartaigh <[email protected]>
AuthorDate: Tue Jan 28 13:40:57 2020 +0000

    Picking up some Santuario changes
---
 .../java/org/apache/cxf/ws/security/wss4j/StaxSerializer.java    | 9 +++++++--
 .../org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java     | 8 +++++++-
 .../org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptor.java    | 3 ++-
 .../security/wss4j/policyhandlers/AsymmetricBindingHandler.java  | 3 ++-
 .../security/wss4j/policyhandlers/SymmetricBindingHandler.java   | 3 ++-
 5 files changed, 20 insertions(+), 6 deletions(-)

diff --git 
a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/StaxSerializer.java
 
b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/StaxSerializer.java
index 7d2428f..e82493c 100644
--- 
a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/StaxSerializer.java
+++ 
b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/StaxSerializer.java
@@ -50,6 +50,8 @@ import org.apache.cxf.helpers.DOMUtils;
 import org.apache.cxf.helpers.LoadingByteArrayOutputStream;
 import org.apache.cxf.staxutils.OverlayW3CDOMStreamWriter;
 import org.apache.cxf.staxutils.StaxUtils;
+import org.apache.xml.security.c14n.Canonicalizer;
+import org.apache.xml.security.c14n.InvalidCanonicalizerException;
 import org.apache.xml.security.encryption.AbstractSerializer;
 import org.apache.xml.security.encryption.XMLEncryptionException;
 
@@ -62,15 +64,18 @@ public class StaxSerializer extends AbstractSerializer {
     private XMLInputFactory factory;
     private boolean validFactory;
 
+    public StaxSerializer() throws InvalidCanonicalizerException {
+        super(Canonicalizer.ALGO_ID_C14N_PHYSICAL, true);
+    }
+
     /**
      * @param source
      * @param ctx
-     * @param secureValidation
      * @return the Node resulting from the parse of the source
      * @throws XMLEncryptionException
      */
     @Override
-    public Node deserialize(byte[] source, Node ctx, boolean secureValidation) 
throws XMLEncryptionException {
+    public Node deserialize(byte[] source, Node ctx) throws 
XMLEncryptionException {
         XMLStreamReader reader = createWstxReader(source, ctx);
         if (reader != null) {
             return deserialize(ctx, reader, false);
diff --git 
a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java
 
b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java
index 16a993c..9c863cc 100644
--- 
a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java
+++ 
b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java
@@ -85,6 +85,7 @@ import org.apache.wss4j.dom.processor.Processor;
 import org.apache.wss4j.dom.util.WSSecurityUtil;
 import org.apache.wss4j.dom.validate.NoOpValidator;
 import org.apache.wss4j.dom.validate.Validator;
+import org.apache.xml.security.c14n.InvalidCanonicalizerException;
 
 /**
  * Performs WS-Security inbound actions.
@@ -238,7 +239,6 @@ public class WSS4JInInterceptor extends 
AbstractWSS4JInterceptor {
             config = engine.getWssConfig();
         }
         reqData.setWssConfig(config);
-        reqData.setEncryptionSerializer(new StaxSerializer());
 
         // Add Audience Restrictions for SAML
         reqData.setAudienceRestrictions(SAMLUtils.getAudienceRestrictions(msg, 
true));
@@ -248,6 +248,12 @@ public class WSS4JInInterceptor extends 
AbstractWSS4JInterceptor {
         boolean doDebug = LOG.isLoggable(Level.FINE);
 
         SoapVersion version = msg.getVersion();
+        try {
+            reqData.setEncryptionSerializer(new StaxSerializer());
+        } catch (InvalidCanonicalizerException e) {
+            throw new SoapFault(new Message("SECURITY_FAILED", LOG), e, 
version.getReceiver());
+        }
+
         if (doDebug) {
             LOG.fine("WSS4JInInterceptor: enter handleMessage()");
         }
diff --git 
a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptor.java
 
b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptor.java
index c96c841..c052412 100644
--- 
a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptor.java
+++ 
b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptor.java
@@ -53,6 +53,7 @@ import org.apache.wss4j.dom.handler.HandlerAction;
 import org.apache.wss4j.dom.handler.RequestData;
 import org.apache.wss4j.dom.handler.WSHandlerConstants;
 import org.apache.wss4j.dom.util.WSSecurityUtil;
+import org.apache.xml.security.c14n.InvalidCanonicalizerException;
 
 public class WSS4JOutInterceptor extends AbstractWSS4JInterceptor {
 
@@ -268,7 +269,7 @@ public class WSS4JOutInterceptor extends 
AbstractWSS4JInterceptor {
                 if (doDebug) {
                     LOG.fine("WSS4JOutInterceptor: exit handleMessage()");
                 }
-            } catch (WSSecurityException e) {
+            } catch (InvalidCanonicalizerException | WSSecurityException e) {
                 throw new SoapFault(new Message("SECURITY_FAILED", LOG), e, 
version
                         .getSender());
             } finally {
diff --git 
a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AsymmetricBindingHandler.java
 
b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AsymmetricBindingHandler.java
index ff716f1..18e452d 100644
--- 
a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AsymmetricBindingHandler.java
+++ 
b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AsymmetricBindingHandler.java
@@ -80,6 +80,7 @@ import 
org.apache.wss4j.policy.model.AlgorithmSuite.AlgorithmSuiteType;
 import org.apache.wss4j.policy.model.AsymmetricBinding;
 import org.apache.wss4j.policy.model.IssuedToken;
 import org.apache.wss4j.policy.model.SamlToken;
+import org.apache.xml.security.c14n.InvalidCanonicalizerException;
 import org.opensaml.saml.common.SAMLVersion;
 
 /**
@@ -572,7 +573,7 @@ public class AsymmetricBindingHandler extends 
AbstractBindingBuilder {
             }
 
             return encr;
-        } catch (WSSecurityException e) {
+        } catch (InvalidCanonicalizerException | WSSecurityException e) {
             LOG.log(Level.FINE, e.getMessage(), e);
             unassertPolicy(recToken, e);
         }
diff --git 
a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/SymmetricBindingHandler.java
 
b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/SymmetricBindingHandler.java
index 263982d..15ba85a 100644
--- 
a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/SymmetricBindingHandler.java
+++ 
b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/SymmetricBindingHandler.java
@@ -86,6 +86,7 @@ import org.apache.wss4j.policy.model.SpnegoContextToken;
 import org.apache.wss4j.policy.model.SymmetricBinding;
 import org.apache.wss4j.policy.model.UsernameToken;
 import org.apache.wss4j.policy.model.X509Token;
+import org.apache.xml.security.c14n.InvalidCanonicalizerException;
 import org.apache.xml.security.utils.XMLUtils;
 
 /**
@@ -643,7 +644,7 @@ public class SymmetricBindingHandler extends 
AbstractBindingBuilder {
             addAttachmentsForEncryption(atEnd, refList, attachments);
 
             return encr;
-        } catch (WSSecurityException e) {
+        } catch (InvalidCanonicalizerException | WSSecurityException e) {
             LOG.log(Level.FINE, e.getMessage(), e);
             unassertPolicy(recToken, e);
         }

Reply via email to