You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by co...@apache.org on 2011/11/04 13:25:27 UTC

svn commit: r1197531 - in /webservices/wss4j/trunk: ./ lib/ src/main/java/org/apache/ws/security/ src/main/java/org/apache/ws/security/message/ src/main/java/org/apache/ws/security/processor/ src/main/java/org/apache/ws/security/saml/ src/test/resources/

Author: coheigea
Date: Fri Nov  4 12:25:27 2011
New Revision: 1197531

URL: http://svn.apache.org/viewvc?rev=1197531&view=rev
Log:
Upgrading to Santuario 1.5.0-SNAPSHOT
 - Explicitly using Santuario provider now for JSR-105.
 - Also fixed a failing test with the IBM JDK.

Added:
    webservices/wss4j/trunk/lib/xmlsec-1.5.0-SNAPSHOT.jar
Removed:
    webservices/wss4j/trunk/lib/xmlsec-1.4.5.jar
Modified:
    webservices/wss4j/trunk/pom.xml
    webservices/wss4j/trunk/src/main/java/org/apache/ws/security/WSSConfig.java
    webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/WSSecDKSign.java
    webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/WSSecSignature.java
    webservices/wss4j/trunk/src/main/java/org/apache/ws/security/processor/SignatureProcessor.java
    webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/SAMLUtil.java
    webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/WSSecSignatureSAML.java
    webservices/wss4j/trunk/src/test/resources/alice.properties

Added: webservices/wss4j/trunk/lib/xmlsec-1.5.0-SNAPSHOT.jar
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/lib/xmlsec-1.5.0-SNAPSHOT.jar?rev=1197531&view=auto
==============================================================================
Files webservices/wss4j/trunk/lib/xmlsec-1.5.0-SNAPSHOT.jar (added) and webservices/wss4j/trunk/lib/xmlsec-1.5.0-SNAPSHOT.jar Fri Nov  4 12:25:27 2011 differ

Modified: webservices/wss4j/trunk/pom.xml
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/pom.xml?rev=1197531&r1=1197530&r2=1197531&view=diff
==============================================================================
--- webservices/wss4j/trunk/pom.xml (original)
+++ webservices/wss4j/trunk/pom.xml Fri Nov  4 12:25:27 2011
@@ -160,7 +160,7 @@
                               javax.xml.crypto.*,
                               org.apache.xml.security.*,
                               org.bouncycastle.*;resolution:=optional,
-                              org.jcp.xml.dsig.internal.dom.*,
+                              org.apache.jcp.xml.dsig.internal.dom.*,
                               org.opensaml.*;resolution:=optional,
                               *;resolution:=optional
                         </Import-Package>
@@ -353,7 +353,7 @@
     </profiles>
 
     <properties>
-        <xmlsec.version>1.4.6</xmlsec.version>
+        <xmlsec.version>1.5.0-SNAPSHOT</xmlsec.version>
         <opensaml.version>2.5.1-1</opensaml.version>
         <xml.apis.version>1.3.04</xml.apis.version>
         <bcprov.version>1.46</bcprov.version>
@@ -551,4 +551,20 @@
             </url>
         </site>
     </distributionManagement>
+
+    <!-- Temporarily adding in to get Santuario SNAPSHOT -->
+    <repositories>
+          <repository>
+              <id>apache.snapshots</id>
+              <url>http://repository.apache.org/snapshots/</url>
+              <name>Apache Snapshot Repo</name>
+             <snapshots>
+                 <enabled>true</enabled>
+             </snapshots>
+             <releases>
+                 <enabled>false</enabled>
+             </releases>
+         </repository>
+     </repositories>
+
 </project>

Modified: webservices/wss4j/trunk/src/main/java/org/apache/ws/security/WSSConfig.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/WSSConfig.java?rev=1197531&r1=1197530&r2=1197531&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/main/java/org/apache/ws/security/WSSConfig.java (original)
+++ webservices/wss4j/trunk/src/main/java/org/apache/ws/security/WSSConfig.java Fri Nov  4 12:25:27 2011
@@ -30,13 +30,13 @@ import java.util.Map;
 
 import javax.xml.namespace.QName;
 
+import org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI;
 import org.apache.ws.security.action.Action;
 import org.apache.ws.security.processor.Processor;
 import org.apache.ws.security.util.Loader;
 import org.apache.ws.security.util.UUIDGenerator;
 import org.apache.ws.security.validate.Validator;
 import org.apache.xml.security.utils.XMLUtils;
-import org.jcp.xml.dsig.internal.dom.XMLDSigRI;
 
 /**
  * WSSConfig <p/> Carries configuration data so the WSS4J spec compliance can be
@@ -401,7 +401,7 @@ public class WSSConfig {
             if (addJceProviders) {
                 AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
                     public Boolean run() {
-                        addXMLDSigRI();
+                        addJceProvider("ApacheXMLDSig", new XMLDSigRI());
                         addJceProvider("BC", "org.bouncycastle.jce.provider.BouncyCastleProvider");
                         Security.removeProvider("STRTransform");
                         appendJceProvider(
@@ -416,18 +416,6 @@ public class WSSConfig {
         }
     }
     
-    private static void addXMLDSigRI() {
-        try {
-            addXMLDSigRIInternal();
-        } catch (Throwable t) {
-            //ignore - may be a NoClassDefFound if XMLDSigRI isn't avail
-            return;
-        }
-    }
-    public static void addXMLDSigRIInternal() {
-        addJceProvider("XMLDSig", new XMLDSigRI());
-    }
-    
     /**
      * @return a new WSSConfig instance configured with the default values
      */

Modified: webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/WSSecDKSign.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/WSSecDKSign.java?rev=1197531&r1=1197530&r2=1197531&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/WSSecDKSign.java (original)
+++ webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/WSSecDKSign.java Fri Nov  4 12:25:27 2011
@@ -33,6 +33,7 @@ import org.apache.ws.security.util.WSSec
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
+import java.security.NoSuchProviderException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -72,19 +73,36 @@ public class WSSecDKSign extends WSSecDe
     private String strUri = null;
     private WSDocInfo wsDocInfo;
     
-    private KeyInfoFactory keyInfoFactory = KeyInfoFactory.getInstance("DOM");
-    private XMLSignatureFactory signatureFactory = XMLSignatureFactory.getInstance("DOM");
+    private KeyInfoFactory keyInfoFactory;
+    private XMLSignatureFactory signatureFactory;
     private XMLSignature sig;
     private KeyInfo keyInfo;
     private CanonicalizationMethod c14nMethod;
     private Element securityHeader = null;
 
-
     public WSSecDKSign() {
         super();
+        init();
     }
+    
     public WSSecDKSign(WSSConfig config) {
         super(config);
+        init();
+    }
+    
+    private void init() {
+        // Try to install the Santuario Provider - fall back to the JDK provider if this does
+        // not work
+        try {
+            signatureFactory = XMLSignatureFactory.getInstance("DOM", "ApacheXMLDSig");
+        } catch (NoSuchProviderException ex) {
+            signatureFactory = XMLSignatureFactory.getInstance("DOM");
+        }
+        try {
+            keyInfoFactory = KeyInfoFactory.getInstance("DOM", "ApacheXMLDSig");
+        } catch (NoSuchProviderException ex) {
+            keyInfoFactory = KeyInfoFactory.getInstance("DOM");
+        }
     }
     
     public Document build(Document doc, WSSecHeader secHeader)

Modified: webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/WSSecSignature.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/WSSecSignature.java?rev=1197531&r1=1197530&r2=1197531&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/WSSecSignature.java (original)
+++ webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/WSSecSignature.java Fri Nov  4 12:25:27 2011
@@ -42,6 +42,7 @@ import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
+import java.security.NoSuchProviderException;
 import java.security.cert.X509Certificate;
 import java.util.ArrayList;
 import java.util.List;
@@ -92,8 +93,8 @@ public class WSSecSignature extends WSSe
     protected String strUri = null;
     protected BinarySecurity bstToken = null;
     
-    protected KeyInfoFactory keyInfoFactory = KeyInfoFactory.getInstance("DOM");
-    protected XMLSignatureFactory signatureFactory = XMLSignatureFactory.getInstance("DOM");
+    protected KeyInfoFactory keyInfoFactory;
+    protected XMLSignatureFactory signatureFactory;
     protected KeyInfo keyInfo;
     protected CanonicalizationMethod c14nMethod;
     protected XMLSignature sig;
@@ -110,9 +111,27 @@ public class WSSecSignature extends WSSe
 
     public WSSecSignature() {
         super();
+        init();
     }
+    
     public WSSecSignature(WSSConfig config) {
         super(config);
+        init();
+    }
+    
+    private void init() {
+        // Try to install the Santuario Provider - fall back to the JDK provider if this does
+        // not work
+        try {
+            signatureFactory = XMLSignatureFactory.getInstance("DOM", "ApacheXMLDSig");
+        } catch (NoSuchProviderException ex) {
+            signatureFactory = XMLSignatureFactory.getInstance("DOM");
+        }
+        try {
+            keyInfoFactory = KeyInfoFactory.getInstance("DOM", "ApacheXMLDSig");
+        } catch (NoSuchProviderException ex) {
+            keyInfoFactory = KeyInfoFactory.getInstance("DOM");
+        }
     }
    
     /**

Modified: webservices/wss4j/trunk/src/main/java/org/apache/ws/security/processor/SignatureProcessor.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/processor/SignatureProcessor.java?rev=1197531&r1=1197530&r2=1197531&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/main/java/org/apache/ws/security/processor/SignatureProcessor.java (original)
+++ webservices/wss4j/trunk/src/main/java/org/apache/ws/security/processor/SignatureProcessor.java Fri Nov  4 12:25:27 2011
@@ -63,6 +63,7 @@ import javax.xml.crypto.dsig.keyinfo.Key
 import javax.xml.crypto.dsig.keyinfo.KeyValue;
 
 import java.security.Key;
+import java.security.NoSuchProviderException;
 import java.security.PublicKey;
 import java.security.Principal;
 import java.security.cert.X509Certificate;
@@ -75,9 +76,23 @@ public class SignatureProcessor implemen
     private static org.apache.commons.logging.Log LOG = 
         org.apache.commons.logging.LogFactory.getLog(SignatureProcessor.class);
     
-    private XMLSignatureFactory signatureFactory = XMLSignatureFactory.getInstance("DOM");
+    private XMLSignatureFactory signatureFactory;
+    private KeyInfoFactory keyInfoFactory;
     
-    private KeyInfoFactory keyInfoFactory = KeyInfoFactory.getInstance("DOM");
+    public SignatureProcessor() {
+        // Try to install the Santuario Provider - fall back to the JDK provider if this does
+        // not work
+        try {
+            signatureFactory = XMLSignatureFactory.getInstance("DOM", "ApacheXMLDSig");
+        } catch (NoSuchProviderException ex) {
+            signatureFactory = XMLSignatureFactory.getInstance("DOM");
+        }
+        try {
+            keyInfoFactory = KeyInfoFactory.getInstance("DOM", "ApacheXMLDSig");
+        } catch (NoSuchProviderException ex) {
+            keyInfoFactory = KeyInfoFactory.getInstance("DOM");
+        }
+    }
     
     public List<WSSecurityEngineResult> handleToken(
         Element elem,

Modified: webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/SAMLUtil.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/SAMLUtil.java?rev=1197531&r1=1197530&r2=1197531&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/SAMLUtil.java (original)
+++ webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/SAMLUtil.java Fri Nov  4 12:25:27 2011
@@ -49,6 +49,7 @@ import javax.xml.crypto.dsig.keyinfo.X50
 import javax.xml.crypto.dsig.keyinfo.X509IssuerSerial;
 import javax.xml.namespace.QName;
 
+import java.security.NoSuchProviderException;
 import java.security.PublicKey;
 import java.security.cert.X509Certificate;
 import java.util.List;
@@ -310,7 +311,12 @@ public class SAMLUtil {
         // (public key) credential
         //
         X509Certificate[] certs = null;
-        KeyInfoFactory keyInfoFactory = KeyInfoFactory.getInstance("DOM");
+        KeyInfoFactory keyInfoFactory = null;
+        try {
+            keyInfoFactory = KeyInfoFactory.getInstance("DOM", "ApacheXMLDSig");
+        } catch (NoSuchProviderException ex) {
+            keyInfoFactory = KeyInfoFactory.getInstance("DOM");
+        }
         XMLStructure keyInfoStructure = new DOMStructure(keyInfoElement);
 
         try {

Modified: webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/WSSecSignatureSAML.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/WSSecSignatureSAML.java?rev=1197531&r1=1197530&r2=1197531&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/WSSecSignatureSAML.java (original)
+++ webservices/wss4j/trunk/src/main/java/org/apache/ws/security/saml/WSSecSignatureSAML.java Fri Nov  4 12:25:27 2011
@@ -19,6 +19,20 @@
 
 package org.apache.ws.security.saml;
 
+import java.security.PublicKey;
+import java.security.cert.X509Certificate;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.crypto.XMLStructure;
+import javax.xml.crypto.dom.DOMStructure;
+import javax.xml.crypto.dsig.SignatureMethod;
+import javax.xml.crypto.dsig.SignedInfo;
+import javax.xml.crypto.dsig.XMLSignContext;
+import javax.xml.crypto.dsig.dom.DOMSignContext;
+import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
+import javax.xml.crypto.dsig.spec.ExcC14NParameterSpec;
+
 import org.apache.ws.security.WSConstants;
 import org.apache.ws.security.WSDocInfo;
 import org.apache.ws.security.WSEncryptionPart;
@@ -38,26 +52,9 @@ import org.apache.ws.security.saml.ext.A
 import org.apache.ws.security.saml.ext.OpenSAMLUtil;
 import org.apache.ws.security.transform.STRTransform;
 import org.apache.ws.security.util.WSSecurityUtil;
-
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
-import java.security.PublicKey;
-import java.security.cert.X509Certificate;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.crypto.XMLStructure;
-import javax.xml.crypto.dom.DOMStructure;
-import javax.xml.crypto.dsig.SignatureMethod;
-import javax.xml.crypto.dsig.SignedInfo;
-import javax.xml.crypto.dsig.XMLSignContext;
-import javax.xml.crypto.dsig.XMLSignatureFactory;
-import javax.xml.crypto.dsig.dom.DOMSignContext;
-import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory;
-import javax.xml.crypto.dsig.spec.C14NMethodParameterSpec;
-import javax.xml.crypto.dsig.spec.ExcC14NParameterSpec;
-
 public class WSSecSignatureSAML extends WSSecSignature {
 
     private static org.apache.commons.logging.Log log = 
@@ -72,8 +69,6 @@ public class WSSecSignatureSAML extends 
     private String issuerKeyPW = null;
     private boolean useDirectReferenceToAssertion = false;
     
-    private KeyInfoFactory keyInfoFactory = KeyInfoFactory.getInstance("DOM");
-
     /**
      * Constructor.
      */
@@ -211,9 +206,6 @@ public class WSSecSignatureSAML extends 
         issuerKeyName = iKeyName;
         issuerKeyPW = iKeyPW;
         
-        keyInfoFactory = KeyInfoFactory.getInstance("DOM");
-        signatureFactory = XMLSignatureFactory.getInstance("DOM");
-        
         samlToken = (Element) assertion.toDOM(doc);
 
         //

Modified: webservices/wss4j/trunk/src/test/resources/alice.properties
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/test/resources/alice.properties?rev=1197531&r1=1197530&r2=1197531&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/test/resources/alice.properties (original)
+++ webservices/wss4j/trunk/src/test/resources/alice.properties Fri Nov  4 12:25:27 2011
@@ -3,3 +3,4 @@ org.apache.ws.security.crypto.merlin.key
 org.apache.ws.security.crypto.merlin.keystore.password=password
 org.apache.ws.security.crypto.merlin.keystore.alias=alice
 org.apache.ws.security.crypto.merlin.keystore.file=keys/alice.p12
+org.apache.ws.security.crypto.merlin.keystore.private.password=password
\ No newline at end of file