You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by co...@apache.org on 2011/05/06 14:15:00 UTC

svn commit: r1100185 - in /santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security: ./ algorithms/ c14n/ keys/keyresolver/ transforms/ utils/ utils/resolver/

Author: coheigea
Date: Fri May  6 12:14:59 2011
New Revision: 1100185

URL: http://svn.apache.org/viewvc?rev=1100185&view=rev
Log:
[SANTUARIO-269] - Register default algorithms/implementations dynamically

Modified:
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/Init.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/JCEMapper.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/c14n/Canonicalizer.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/keys/keyresolver/KeyResolver.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/Transform.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/utils/ElementProxy.java
    santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/utils/resolver/ResourceResolver.java

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/Init.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/Init.java?rev=1100185&r1=1100184&r2=1100185&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/Init.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/Init.java Fri May  6 12:14:59 2011
@@ -22,63 +22,20 @@ import java.io.InputStream;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 
 import org.apache.xml.security.algorithms.JCEMapper;
-import org.apache.xml.security.algorithms.MessageDigestAlgorithm;
 import org.apache.xml.security.algorithms.SignatureAlgorithm;
-import org.apache.xml.security.algorithms.SignatureAlgorithmSpi;
-import org.apache.xml.security.algorithms.implementations.IntegrityHmac;
-import org.apache.xml.security.algorithms.implementations.SignatureBaseRSA;
-import org.apache.xml.security.algorithms.implementations.SignatureDSA;
-import org.apache.xml.security.algorithms.implementations.SignatureECDSA;
 import org.apache.xml.security.c14n.Canonicalizer;
-import org.apache.xml.security.c14n.CanonicalizerSpi;
-import org.apache.xml.security.c14n.implementations.Canonicalizer11_OmitComments;
-import org.apache.xml.security.c14n.implementations.Canonicalizer11_WithComments;
-import org.apache.xml.security.c14n.implementations.Canonicalizer20010315ExclOmitComments;
-import org.apache.xml.security.c14n.implementations.Canonicalizer20010315ExclWithComments;
-import org.apache.xml.security.c14n.implementations.Canonicalizer20010315OmitComments;
-import org.apache.xml.security.c14n.implementations.Canonicalizer20010315WithComments;
-import org.apache.xml.security.encryption.XMLCipher;
 import org.apache.xml.security.keys.keyresolver.KeyResolver;
-import org.apache.xml.security.keys.keyresolver.KeyResolverSpi;
-import org.apache.xml.security.keys.keyresolver.implementations.DSAKeyValueResolver;
-import org.apache.xml.security.keys.keyresolver.implementations.RSAKeyValueResolver;
-import org.apache.xml.security.keys.keyresolver.implementations.RetrievalMethodResolver;
-import org.apache.xml.security.keys.keyresolver.implementations.X509CertificateResolver;
-import org.apache.xml.security.keys.keyresolver.implementations.X509IssuerSerialResolver;
-import org.apache.xml.security.keys.keyresolver.implementations.X509SKIResolver;
-import org.apache.xml.security.keys.keyresolver.implementations.X509SubjectNameResolver;
-import org.apache.xml.security.signature.XMLSignature;
 import org.apache.xml.security.transforms.Transform;
-import org.apache.xml.security.transforms.TransformSpi;
-import org.apache.xml.security.transforms.Transforms;
-import org.apache.xml.security.transforms.implementations.TransformBase64Decode;
-import org.apache.xml.security.transforms.implementations.TransformC14N;
-import org.apache.xml.security.transforms.implementations.TransformC14N11;
-import org.apache.xml.security.transforms.implementations.TransformC14N11_WithComments;
-import org.apache.xml.security.transforms.implementations.TransformC14NExclusive;
-import org.apache.xml.security.transforms.implementations.TransformC14NExclusiveWithComments;
-import org.apache.xml.security.transforms.implementations.TransformC14NWithComments;
-import org.apache.xml.security.transforms.implementations.TransformEnvelopedSignature;
-import org.apache.xml.security.transforms.implementations.TransformXPath;
-import org.apache.xml.security.transforms.implementations.TransformXPath2Filter;
-import org.apache.xml.security.transforms.implementations.TransformXSLT;
 import org.apache.xml.security.utils.ElementProxy;
 import org.apache.xml.security.utils.I18n;
 import org.apache.xml.security.utils.XMLUtils;
 import org.apache.xml.security.utils.resolver.ResourceResolver;
-import org.apache.xml.security.utils.resolver.ResourceResolverSpi;
-import org.apache.xml.security.utils.resolver.implementations.ResolverDirectHTTP;
-import org.apache.xml.security.utils.resolver.implementations.ResolverFragment;
-import org.apache.xml.security.utils.resolver.implementations.ResolverLocalFilesystem;
-import org.apache.xml.security.utils.resolver.implementations.ResolverXPointer;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -100,314 +57,9 @@ public class Init {
     private static org.apache.commons.logging.Log log = 
         org.apache.commons.logging.LogFactory.getLog(Init.class);
 
-    /** Field _initialized */
+    /** Field alreadyInitialized */
     private static boolean alreadyInitialized = false;
     
-    private static Map<String, String> defaultNamespacePrefixes = new HashMap<String, String>();
-    private static Map<String, Class<? extends TransformSpi>> defaultTransforms = 
-        new HashMap<String, Class<? extends TransformSpi>>();
-    private static Map<String, Class<? extends SignatureAlgorithmSpi>> defaultSignatures = 
-        new HashMap<String, Class<? extends SignatureAlgorithmSpi>>();
-    private static Map<String, JCEMapper.Algorithm> defaultAlgorithms = 
-        new HashMap<String, JCEMapper.Algorithm>();
-    private static Map<String, Class<? extends CanonicalizerSpi>> defaultC14nAlgorithms = 
-        new HashMap<String, Class<? extends CanonicalizerSpi>>();
-    private static List<ResourceResolverSpi> defaultResolverList = 
-        new ArrayList<ResourceResolverSpi>();
-    private static List<KeyResolverSpi> defaultKeyResolverList = 
-        new ArrayList<KeyResolverSpi>();
-    
-    static {
-        //
-        // Default Namespace-prefix pairs
-        //
-        defaultNamespacePrefixes.put("http://www.w3.org/2000/09/xmldsig#", "ds");
-        defaultNamespacePrefixes.put("http://www.w3.org/2001/04/xmlenc#", "xenc");
-        defaultNamespacePrefixes.put("http://www.xmlsecurity.org/experimental#", "experimental");
-        defaultNamespacePrefixes.put("http://www.w3.org/2002/04/xmldsig-filter2", "dsig-xpath-old");
-        defaultNamespacePrefixes.put("http://www.w3.org/2002/06/xmldsig-filter2", "dsig-xpath");
-        defaultNamespacePrefixes.put("http://www.w3.org/2001/10/xml-exc-c14n#", "ec");
-        defaultNamespacePrefixes.put(
-            "http://www.nue.et-inf.uni-siegen.de/~geuer-pollmann/#xpathFilter", "xx"
-        );
-        
-        //
-        // Default URI-TransformSpi class pairs
-        //
-        defaultTransforms.put(
-            Transforms.TRANSFORM_BASE64_DECODE, TransformBase64Decode.class
-        );
-        defaultTransforms.put(
-            Transforms.TRANSFORM_C14N_OMIT_COMMENTS, TransformC14N.class
-        );
-        defaultTransforms.put(
-            Transforms.TRANSFORM_C14N_WITH_COMMENTS, TransformC14NWithComments.class
-        );
-        defaultTransforms.put(
-            Transforms.TRANSFORM_C14N11_OMIT_COMMENTS, TransformC14N11.class
-        );
-        defaultTransforms.put(
-            Transforms.TRANSFORM_C14N11_WITH_COMMENTS, TransformC14N11_WithComments.class
-        );
-        defaultTransforms.put(
-            Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS, TransformC14NExclusive.class
-        );
-        defaultTransforms.put(
-            Transforms.TRANSFORM_C14N_EXCL_WITH_COMMENTS, TransformC14NExclusiveWithComments.class
-        );
-        defaultTransforms.put(
-            Transforms.TRANSFORM_XPATH, TransformXPath.class
-        );
-        defaultTransforms.put(
-            Transforms.TRANSFORM_ENVELOPED_SIGNATURE, TransformEnvelopedSignature.class
-        );
-        defaultTransforms.put(
-            Transforms.TRANSFORM_XSLT, TransformXSLT.class
-        );
-        defaultTransforms.put(
-            Transforms.TRANSFORM_XPATH2FILTER, TransformXPath2Filter.class
-        );
-        defaultTransforms.put(
-            Transforms.TRANSFORM_XPATH2FILTER04, TransformXPath2Filter.class
-        );
-        
-        //
-        // default URI-SignatureAlgorithmSpi class pairs
-        //
-        defaultSignatures.put(SignatureDSA.URI, SignatureDSA.class);
-        defaultSignatures.put(
-            XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA1, SignatureBaseRSA.SignatureRSASHA1.class
-        );
-        defaultSignatures.put(
-            XMLSignature.ALGO_ID_MAC_HMAC_SHA1, IntegrityHmac.IntegrityHmacSHA1.class
-        );
-        defaultSignatures.put(
-            XMLSignature.ALGO_ID_SIGNATURE_NOT_RECOMMENDED_RSA_MD5, 
-            SignatureBaseRSA.SignatureRSAMD5.class
-        );
-        defaultSignatures.put(
-            XMLSignature.ALGO_ID_SIGNATURE_RSA_RIPEMD160, 
-            SignatureBaseRSA.SignatureRSARIPEMD160.class
-        );
-        defaultSignatures.put(
-            XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA256, SignatureBaseRSA.SignatureRSASHA256.class
-        );
-        defaultSignatures.put(
-            XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA384, SignatureBaseRSA.SignatureRSASHA384.class
-        );
-        defaultSignatures.put(
-            XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA512, SignatureBaseRSA.SignatureRSASHA512.class
-        );
-        defaultSignatures.put(
-            XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA1, SignatureECDSA.SignatureECDSASHA1.class
-        );
-        defaultSignatures.put(
-            XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA256, SignatureECDSA.SignatureECDSASHA256.class
-        );
-        defaultSignatures.put(
-            XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA384, SignatureECDSA.SignatureECDSASHA384.class
-        );
-        defaultSignatures.put(
-            XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA512, SignatureECDSA.SignatureECDSASHA512.class
-        );
-        defaultSignatures.put(
-            XMLSignature.ALGO_ID_MAC_HMAC_NOT_RECOMMENDED_MD5, IntegrityHmac.IntegrityHmacMD5.class
-        );
-        defaultSignatures.put(
-            XMLSignature.ALGO_ID_MAC_HMAC_RIPEMD160, IntegrityHmac.IntegrityHmacRIPEMD160.class
-        );
-        defaultSignatures.put(
-            XMLSignature.ALGO_ID_MAC_HMAC_SHA256, IntegrityHmac.IntegrityHmacSHA256.class
-        );
-        defaultSignatures.put(
-            XMLSignature.ALGO_ID_MAC_HMAC_SHA384, IntegrityHmac.IntegrityHmacSHA384.class
-        );
-        defaultSignatures.put(
-            XMLSignature.ALGO_ID_MAC_HMAC_SHA512, IntegrityHmac.IntegrityHmacSHA512.class
-        );
-        
-        //
-        // Default URI-Algorithm object pairs
-        //
-        defaultAlgorithms.put(
-            MessageDigestAlgorithm.ALGO_ID_DIGEST_NOT_RECOMMENDED_MD5, 
-            new JCEMapper.Algorithm(null, "MD5")
-        );
-        defaultAlgorithms.put(
-            MessageDigestAlgorithm.ALGO_ID_DIGEST_RIPEMD160, 
-            new JCEMapper.Algorithm(null, "RIPEMD160")
-        );
-        defaultAlgorithms.put(
-            MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA1, 
-            new JCEMapper.Algorithm(null, "SHA-1")
-        );
-        defaultAlgorithms.put(
-            MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA256, 
-            new JCEMapper.Algorithm(null, "SHA-256")
-        );
-        defaultAlgorithms.put(
-            MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA384, 
-            new JCEMapper.Algorithm(null, "SHA-384")
-        );
-        defaultAlgorithms.put(
-            MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA512, 
-            new JCEMapper.Algorithm(null, "SHA-512")
-        );
-        defaultAlgorithms.put(
-            XMLSignature.ALGO_ID_SIGNATURE_DSA, 
-            new JCEMapper.Algorithm(null, "SHA1withDSA")
-        );
-        defaultAlgorithms.put(
-            XMLSignature.ALGO_ID_SIGNATURE_NOT_RECOMMENDED_RSA_MD5, 
-            new JCEMapper.Algorithm(null, "MD5withRSA")
-        );
-        defaultAlgorithms.put(
-            XMLSignature.ALGO_ID_SIGNATURE_RSA_RIPEMD160, 
-            new JCEMapper.Algorithm(null, "RIPEMD160withRSA")
-        );
-        defaultAlgorithms.put(
-            XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA1, 
-            new JCEMapper.Algorithm(null, "SHA1withRSA")
-        );
-        defaultAlgorithms.put(
-            XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA256, 
-            new JCEMapper.Algorithm(null, "SHA256withRSA")
-        );
-        defaultAlgorithms.put(
-            XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA384, 
-            new JCEMapper.Algorithm(null, "SHA384withRSA")
-        );
-        defaultAlgorithms.put(
-            XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA512, 
-            new JCEMapper.Algorithm(null, "SHA512withRSA")
-        );
-        defaultAlgorithms.put(
-            XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA1, 
-            new JCEMapper.Algorithm(null, "SHA1withECDSA")
-        );
-        defaultAlgorithms.put(
-            XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA256, 
-            new JCEMapper.Algorithm(null, "SHA256withECDSA")
-        );
-        defaultAlgorithms.put(
-            XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA384, 
-            new JCEMapper.Algorithm(null, "SHA384withECDSA")
-        );
-        defaultAlgorithms.put(
-            XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA512, 
-            new JCEMapper.Algorithm(null, "SHA512withECDSA")
-        );
-        defaultAlgorithms.put(
-            XMLSignature.ALGO_ID_MAC_HMAC_NOT_RECOMMENDED_MD5, 
-            new JCEMapper.Algorithm(null, "HmacMD5")
-        );
-        defaultAlgorithms.put(
-            XMLSignature.ALGO_ID_MAC_HMAC_RIPEMD160, 
-            new JCEMapper.Algorithm(null, "HMACRIPEMD160")
-        );
-        defaultAlgorithms.put(
-            XMLSignature.ALGO_ID_MAC_HMAC_SHA1, 
-            new JCEMapper.Algorithm(null, "HmacSHA1")
-        );
-        defaultAlgorithms.put(
-            XMLSignature.ALGO_ID_MAC_HMAC_SHA256, 
-            new JCEMapper.Algorithm(null, "HmacSHA256")
-        );
-        defaultAlgorithms.put(
-            XMLSignature.ALGO_ID_MAC_HMAC_SHA384, 
-            new JCEMapper.Algorithm(null, "HmacSHA384")
-        );
-        defaultAlgorithms.put(
-            XMLSignature.ALGO_ID_MAC_HMAC_SHA512, 
-            new JCEMapper.Algorithm(null, "HmacSHA512")
-        );
-        defaultAlgorithms.put(
-            XMLCipher.TRIPLEDES, 
-            new JCEMapper.Algorithm("DESede", "DESede/CBC/ISO10126Padding")
-        );
-        defaultAlgorithms.put(
-            XMLCipher.AES_128, 
-            new JCEMapper.Algorithm("AES", "AES/CBC/ISO10126Padding")
-        );
-        defaultAlgorithms.put(
-            XMLCipher.AES_192, 
-            new JCEMapper.Algorithm("AES", "AES/CBC/ISO10126Padding")
-        );
-        defaultAlgorithms.put(
-            XMLCipher.AES_256, 
-            new JCEMapper.Algorithm("AES", "AES/CBC/ISO10126Padding")
-        );
-        defaultAlgorithms.put(
-            XMLCipher.RSA_v1dot5, 
-            new JCEMapper.Algorithm("RSA", "RSA/ECB/PKCS1Padding")
-        );
-        defaultAlgorithms.put(
-            XMLCipher.RSA_OAEP, 
-            new JCEMapper.Algorithm("RSA", "RSA/ECB/OAEPWithSHA1AndMGF1Padding")
-        );
-        defaultAlgorithms.put(
-            XMLCipher.DIFFIE_HELLMAN, 
-            new JCEMapper.Algorithm(null, null)
-        );
-        defaultAlgorithms.put(
-            XMLCipher.TRIPLEDES_KeyWrap, 
-            new JCEMapper.Algorithm("DESede", "DESedeWrap")
-        );
-        defaultAlgorithms.put(
-            XMLCipher.AES_128_KeyWrap, 
-            new JCEMapper.Algorithm("AES", "AESWrap")
-        );
-        defaultAlgorithms.put(
-            XMLCipher.AES_192_KeyWrap, 
-            new JCEMapper.Algorithm("AES", "AESWrap")
-        );
-        defaultAlgorithms.put(
-            XMLCipher.AES_256_KeyWrap, 
-            new JCEMapper.Algorithm("AES", "AESWrap")
-        );
-        
-        //
-        // Default URI-Canonicalizer class pairs
-        //
-        defaultC14nAlgorithms.put(
-            Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS, Canonicalizer20010315OmitComments.class
-        );
-        defaultC14nAlgorithms.put(
-            Canonicalizer.ALGO_ID_C14N_WITH_COMMENTS, Canonicalizer20010315WithComments.class
-        );
-        defaultC14nAlgorithms.put(
-            Canonicalizer.ALGO_ID_C14N_EXCL_OMIT_COMMENTS, Canonicalizer20010315ExclOmitComments.class
-        );
-        defaultC14nAlgorithms.put(
-            Canonicalizer.ALGO_ID_C14N_EXCL_WITH_COMMENTS, Canonicalizer20010315ExclWithComments.class
-        );
-        defaultC14nAlgorithms.put(
-            Canonicalizer.ALGO_ID_C14N11_OMIT_COMMENTS, Canonicalizer11_OmitComments.class
-        );
-        defaultC14nAlgorithms.put(
-            Canonicalizer.ALGO_ID_C14N11_WITH_COMMENTS, Canonicalizer11_WithComments.class
-        );
-        
-        //
-        // Default Resolvers
-        //
-        defaultResolverList.add(new ResolverFragment());
-        defaultResolverList.add(new ResolverLocalFilesystem());
-        defaultResolverList.add(new ResolverXPointer());
-        defaultResolverList.add(new ResolverDirectHTTP());
-        
-        //
-        // Default KeyResolvers
-        //
-        defaultKeyResolverList.add(new RSAKeyValueResolver());
-        defaultKeyResolverList.add(new DSAKeyValueResolver());
-        defaultKeyResolverList.add(new X509CertificateResolver());
-        defaultKeyResolverList.add(new X509SKIResolver());
-        defaultKeyResolverList.add(new RetrievalMethodResolver());
-        defaultKeyResolverList.add(new X509SubjectNameResolver());
-        defaultKeyResolverList.add(new X509IssuerSerialResolver());
-    }
-    
     /**
      * Method isInitialized
      * @return true if the library is already initialized.     
@@ -424,7 +76,87 @@ public class Init {
         if (alreadyInitialized) {
             return;
         }
+        
+        InputStream is = 
+            AccessController.doPrivileged(
+                new PrivilegedAction<InputStream>() {
+                    public InputStream run() {
+                        String cfile = 
+                            System.getProperty("org.apache.xml.security.resource.config");
+                        if (cfile == null) {
+                            return null;
+                        }
+                        return getClass().getResourceAsStream(cfile);
+                    }
+                });
+        if (is == null) {
+            dynamicInit();
+        } else {
+            fileInit(is);
+        }
 
+        alreadyInitialized = true;
+    }
+    
+    /**
+     * Dynamically initialise the library by registering the default algorithms/implementations
+     */
+    private static void dynamicInit() {
+        //
+        // Load the Resource Bundle - the default is the English resource bundle.
+        // To load another resource bundle, call I18n.init(...) before calling this
+        // method.
+        //
+        I18n.init("en", "US");
+        
+        if (log.isDebugEnabled()) {
+            log.debug("Registering default algorithms");
+        }
+        try {
+            //
+            // Bind the default prefixes
+            //
+            ElementProxy.registerDefaultPrefixes();
+            
+            //
+            // Set the default Transforms
+            //
+            Transform.registerDefaultAlgorithms();
+            
+            //
+            // Set the default signature algorithms
+            //
+            SignatureAlgorithm.registerDefaultAlgorithms();
+            
+            //
+            // Set the default JCE algorithms
+            //
+            JCEMapper.registerDefaultAlgorithms();
+            
+            //
+            // Set the default c14n algorithms
+            //
+            Canonicalizer.registerDefaultAlgorithms();
+            
+            //
+            // Register the default resolvers
+            //
+            ResourceResolver.registerDefaultResolvers();
+            
+            //
+            // Register the default key resolvers
+            //
+            KeyResolver.registerDefaultResolvers();
+        } catch (Exception ex) {
+            log.error(ex);
+            ex.printStackTrace();
+        }
+    }
+    
+    /**
+     * Initialise the library from a configuration file
+     */
+    private static void fileInit(InputStream is) {
         try {
             /* read library configuration file */
             DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
@@ -433,17 +165,6 @@ public class Init {
             dbf.setValidating(false);
 
             DocumentBuilder db = dbf.newDocumentBuilder();
-            InputStream is = 
-                AccessController.doPrivileged(
-                    new PrivilegedAction<InputStream>() {
-                        public InputStream run() {
-                            String cfile = 
-                                System.getProperty("org.apache.xml.security.resource.config");
-                            return getClass().getResourceAsStream
-                                (cfile != null ? cfile : "resource/config.xml");
-                        }
-                    });
-
             Document doc = db.parse(is);
             Node config = doc.getFirstChild();
             for (; config != null; config = config.getNextSibling()) {
@@ -635,82 +356,6 @@ public class Init {
             log.error("Bad: ", e);
             e.printStackTrace();
         }
-        alreadyInitialized = true;
-    }
-    
-    /**
-     * TODO
-     */
-    @SuppressWarnings("unchecked")
-    public synchronized static void dynamicInit() {
-        if (alreadyInitialized) {
-            return;
-        }
-        
-        //
-        // Load the Resource Bundle - the default is the English resource bundle.
-        // To load another resource bundle, call I18n.init(...) before calling this
-        // method.
-        //
-        I18n.init("en", "US");
-        
-        try {
-            //
-            // Bind the default prefixes
-            // TODO possibly move the default Map into ElementProxy?
-            //
-            for (String key : defaultNamespacePrefixes.keySet()) {
-                ElementProxy.setDefaultPrefix(key, defaultNamespacePrefixes.get(key));
-            }
-            
-            //
-            // Set the default Transforms
-            //
-            for (String key : defaultTransforms.keySet()) {
-                Transform.register(key, (Class<TransformSpi>)defaultTransforms.get(key));
-            }
-            
-            //
-            // Set the default signature algorithms
-            //
-            for (String key : defaultSignatures.keySet()) {
-                SignatureAlgorithm.register(
-                    key, (Class<SignatureAlgorithmSpi>)defaultSignatures.get(key)
-                );
-            }
-            
-            //
-            // Set the default JCE algorithms
-            //
-            for (String key : defaultAlgorithms.keySet()) {
-                JCEMapper.register(key, defaultAlgorithms.get(key));
-            }
-            
-            //
-            // Set the default c14n algorithms
-            //
-            for (String key : defaultC14nAlgorithms.keySet()) {
-                Canonicalizer.register(
-                    key, (Class<CanonicalizerSpi>)defaultC14nAlgorithms.get(key)
-                );
-            }
-            
-            //
-            // Register the default resolvers
-            //
-            for (ResourceResolverSpi resourceResolverSpi : defaultResolverList) {
-                ResourceResolver.register(resourceResolverSpi, false);
-            }
-            
-            //
-            // Register the default key resolvers
-            //
-            KeyResolver.register(defaultKeyResolverList);
-        } catch (Exception ex) {
-            log.error(ex);
-            ex.printStackTrace();
-        }
-        alreadyInitialized = true;
     }
 
 }

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/JCEMapper.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/JCEMapper.java?rev=1100185&r1=1100184&r2=1100185&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/JCEMapper.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/JCEMapper.java Fri May  6 12:14:59 2011
@@ -21,6 +21,8 @@ package org.apache.xml.security.algorith
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
+import org.apache.xml.security.encryption.XMLCipher;
+import org.apache.xml.security.signature.XMLSignature;
 import org.w3c.dom.Element;
 
 
@@ -42,11 +44,119 @@ public class JCEMapper {
      * Method register
      *
      * @param element
-     * @throws Exception
      */
-    public static void register(String id, Algorithm algorithm) throws Exception {
+    public static void register(String id, Algorithm algorithm) {
         algorithmsMap.put(id, algorithm);
     }
+    
+    /**
+     * This method registers the default algorithms.
+     */
+    public static void registerDefaultAlgorithms() {
+        algorithmsMap.put(
+            MessageDigestAlgorithm.ALGO_ID_DIGEST_NOT_RECOMMENDED_MD5, new Algorithm("", "MD5")
+        );
+        algorithmsMap.put(
+            MessageDigestAlgorithm.ALGO_ID_DIGEST_RIPEMD160, new Algorithm("", "RIPEMD160")
+        );
+        algorithmsMap.put(
+            MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA1, new Algorithm("", "SHA-1")
+        );
+        algorithmsMap.put(
+            MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA256, new Algorithm("", "SHA-256")
+        );
+        algorithmsMap.put(
+            MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA384, new Algorithm("", "SHA-384")
+        );
+        algorithmsMap.put(
+            MessageDigestAlgorithm.ALGO_ID_DIGEST_SHA512, new Algorithm("", "SHA-512")
+        );
+        algorithmsMap.put(
+            XMLSignature.ALGO_ID_SIGNATURE_DSA, new Algorithm("", "SHA1withDSA")
+        );
+        algorithmsMap.put(
+            XMLSignature.ALGO_ID_SIGNATURE_NOT_RECOMMENDED_RSA_MD5, 
+            new Algorithm("", "MD5withRSA")
+        );
+        algorithmsMap.put(
+            XMLSignature.ALGO_ID_SIGNATURE_RSA_RIPEMD160, new Algorithm("", "RIPEMD160withRSA")
+        );
+        algorithmsMap.put(
+            XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA1, new Algorithm("", "SHA1withRSA")
+        );
+        algorithmsMap.put(
+            XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA256, new Algorithm("", "SHA256withRSA")
+        );
+        algorithmsMap.put(
+            XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA384, new Algorithm("", "SHA384withRSA")
+        );
+        algorithmsMap.put(
+            XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA512, new Algorithm("", "SHA512withRSA")
+        );
+        algorithmsMap.put(
+            XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA1, new Algorithm("", "SHA1withECDSA")
+        );
+        algorithmsMap.put(
+            XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA256, new Algorithm("", "SHA256withECDSA")
+        );
+        algorithmsMap.put(
+            XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA384, new Algorithm("", "SHA384withECDSA")
+        );
+        algorithmsMap.put(
+            XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA512, new Algorithm("", "SHA512withECDSA")
+        );
+        algorithmsMap.put(
+            XMLSignature.ALGO_ID_MAC_HMAC_NOT_RECOMMENDED_MD5, new Algorithm("", "HmacMD5")
+        );
+        algorithmsMap.put(
+            XMLSignature.ALGO_ID_MAC_HMAC_RIPEMD160, new Algorithm("", "HMACRIPEMD160")
+        );
+        algorithmsMap.put(
+            XMLSignature.ALGO_ID_MAC_HMAC_SHA1, new Algorithm("", "HmacSHA1")
+        );
+        algorithmsMap.put(
+            XMLSignature.ALGO_ID_MAC_HMAC_SHA256, new Algorithm("", "HmacSHA256")
+        );
+        algorithmsMap.put(
+            XMLSignature.ALGO_ID_MAC_HMAC_SHA384, new Algorithm("", "HmacSHA384")
+        );
+        algorithmsMap.put(
+            XMLSignature.ALGO_ID_MAC_HMAC_SHA512, new Algorithm("", "HmacSHA512")
+        );
+        algorithmsMap.put(
+            XMLCipher.TRIPLEDES, new Algorithm("DESede", "DESede/CBC/ISO10126Padding")
+        );
+        algorithmsMap.put(
+            XMLCipher.AES_128, new Algorithm("AES", "AES/CBC/ISO10126Padding")
+        );
+        algorithmsMap.put(
+            XMLCipher.AES_192, new Algorithm("AES", "AES/CBC/ISO10126Padding")
+        );
+        algorithmsMap.put(
+            XMLCipher.AES_256, new Algorithm("AES", "AES/CBC/ISO10126Padding")
+        );
+        algorithmsMap.put(
+            XMLCipher.RSA_v1dot5, new Algorithm("RSA", "RSA/ECB/PKCS1Padding")
+        );
+        algorithmsMap.put(
+            XMLCipher.RSA_OAEP, new Algorithm("RSA", "RSA/ECB/OAEPWithSHA1AndMGF1Padding")
+        );
+        algorithmsMap.put(
+            XMLCipher.DIFFIE_HELLMAN, new Algorithm("", "")
+        );
+        algorithmsMap.put(
+            XMLCipher.TRIPLEDES_KeyWrap, new Algorithm("DESede", "DESedeWrap")
+        );
+        algorithmsMap.put(
+            XMLCipher.AES_128_KeyWrap, new Algorithm("AES", "AESWrap")
+        );
+        algorithmsMap.put(
+            XMLCipher.AES_192_KeyWrap, new Algorithm("AES", "AESWrap")
+        );
+        algorithmsMap.put(
+            XMLCipher.AES_256_KeyWrap, new Algorithm("AES", "AESWrap")
+        );
+    }
 
     /**
      * Method translateURItoJCEID
@@ -73,6 +183,9 @@ public class JCEMapper {
      * @return The KeyAlgorithm for the given URI.
      */
     public static String getJCEKeyAlgorithmFromURI(String algorithmURI) {
+        if (log.isDebugEnabled()) {
+            log.debug("Request for URI " + algorithmURI);
+        }
         Algorithm algorithm = algorithmsMap.get(algorithmURI);
         if (algorithm != null) {
             return algorithm.requiredKey;

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java?rev=1100185&r1=1100184&r2=1100185&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/algorithms/SignatureAlgorithm.java Fri May  6 12:14:59 2011
@@ -25,8 +25,12 @@ import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.xml.security.algorithms.implementations.IntegrityHmac;
+import org.apache.xml.security.algorithms.implementations.SignatureBaseRSA;
+import org.apache.xml.security.algorithms.implementations.SignatureDSA;
+import org.apache.xml.security.algorithms.implementations.SignatureECDSA;
 import org.apache.xml.security.exceptions.AlgorithmAlreadyRegisteredException;
 import org.apache.xml.security.exceptions.XMLSecurityException;
+import org.apache.xml.security.signature.XMLSignature;
 import org.apache.xml.security.signature.XMLSignatureException;
 import org.apache.xml.security.utils.ClassLoaderUtils;
 import org.apache.xml.security.utils.Constants;
@@ -46,8 +50,8 @@ public class SignatureAlgorithm extends 
         org.apache.commons.logging.LogFactory.getLog(SignatureAlgorithm.class);
 
     /** All available algorithm classes are registered here */
-    private static Map<String, Class<SignatureAlgorithmSpi>> algorithmHash = 
-        new ConcurrentHashMap<String, Class<SignatureAlgorithmSpi>>();
+    private static Map<String, Class<? extends SignatureAlgorithmSpi>> algorithmHash = 
+        new ConcurrentHashMap<String, Class<? extends SignatureAlgorithmSpi>>();
    
     /** Field signatureAlgorithm */
     private final SignatureAlgorithmSpi signatureAlgorithm;
@@ -111,7 +115,8 @@ public class SignatureAlgorithm extends 
     private static SignatureAlgorithmSpi getSignatureAlgorithmSpi(String algorithmURI) 
         throws XMLSignatureException {
         try {
-            Class<SignatureAlgorithmSpi> implementingClass = algorithmHash.get(algorithmURI);
+            Class<? extends SignatureAlgorithmSpi> implementingClass = 
+                algorithmHash.get(algorithmURI);
             if (log.isDebugEnabled()) {
                 log.debug("Create URI \"" + algorithmURI + "\" class \""
                    + implementingClass + "\"");
@@ -296,7 +301,7 @@ public class SignatureAlgorithm extends 
         }
 
         // are we already registered?
-        Class<SignatureAlgorithmSpi> registeredClass = algorithmHash.get(algorithmURI);
+        Class<? extends SignatureAlgorithmSpi> registeredClass = algorithmHash.get(algorithmURI);
         if (registeredClass != null) {
             Object exArgs[] = { algorithmURI, registeredClass };
             throw new AlgorithmAlreadyRegisteredException(
@@ -304,8 +309,8 @@ public class SignatureAlgorithm extends 
             );
         }
         try {
-            Class<SignatureAlgorithmSpi> clazz = 
-                (Class<SignatureAlgorithmSpi>)
+            Class<? extends SignatureAlgorithmSpi> clazz = 
+                (Class<? extends SignatureAlgorithmSpi>)
                     ClassLoaderUtils.loadClass(implementingClass, SignatureAlgorithm.class);
             algorithmHash.put(algorithmURI, clazz);
         } catch (NullPointerException ex) {
@@ -331,7 +336,7 @@ public class SignatureAlgorithm extends 
         }
 
         // are we already registered?
-        Class<SignatureAlgorithmSpi> registeredClass = algorithmHash.get(algorithmURI);
+        Class<? extends SignatureAlgorithmSpi> registeredClass = algorithmHash.get(algorithmURI);
         if (registeredClass != null) {
             Object exArgs[] = { algorithmURI, registeredClass };
             throw new AlgorithmAlreadyRegisteredException(
@@ -340,6 +345,63 @@ public class SignatureAlgorithm extends 
         }
         algorithmHash.put(algorithmURI, implementingClass);
     }
+    
+    /**
+     * This method registers the default algorithms.
+     */
+    public static void registerDefaultAlgorithms() {
+        algorithmHash.put(SignatureDSA.URI, SignatureDSA.class);
+        algorithmHash.put(
+            XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA1, SignatureBaseRSA.SignatureRSASHA1.class
+        );
+        algorithmHash.put(
+            XMLSignature.ALGO_ID_MAC_HMAC_SHA1, IntegrityHmac.IntegrityHmacSHA1.class
+        );
+        algorithmHash.put(
+            XMLSignature.ALGO_ID_SIGNATURE_NOT_RECOMMENDED_RSA_MD5, 
+            SignatureBaseRSA.SignatureRSAMD5.class
+        );
+        algorithmHash.put(
+            XMLSignature.ALGO_ID_SIGNATURE_RSA_RIPEMD160, 
+            SignatureBaseRSA.SignatureRSARIPEMD160.class
+        );
+        algorithmHash.put(
+            XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA256, SignatureBaseRSA.SignatureRSASHA256.class
+        );
+        algorithmHash.put(
+            XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA384, SignatureBaseRSA.SignatureRSASHA384.class
+        );
+        algorithmHash.put(
+            XMLSignature.ALGO_ID_SIGNATURE_RSA_SHA512, SignatureBaseRSA.SignatureRSASHA512.class
+        );
+        algorithmHash.put(
+            XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA1, SignatureECDSA.SignatureECDSASHA1.class
+        );
+        algorithmHash.put(
+            XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA256, SignatureECDSA.SignatureECDSASHA256.class
+        );
+        algorithmHash.put(
+            XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA384, SignatureECDSA.SignatureECDSASHA384.class
+        );
+        algorithmHash.put(
+            XMLSignature.ALGO_ID_SIGNATURE_ECDSA_SHA512, SignatureECDSA.SignatureECDSASHA512.class
+        );
+        algorithmHash.put(
+            XMLSignature.ALGO_ID_MAC_HMAC_NOT_RECOMMENDED_MD5, IntegrityHmac.IntegrityHmacMD5.class
+        );
+        algorithmHash.put(
+            XMLSignature.ALGO_ID_MAC_HMAC_RIPEMD160, IntegrityHmac.IntegrityHmacRIPEMD160.class
+        );
+        algorithmHash.put(
+            XMLSignature.ALGO_ID_MAC_HMAC_SHA256, IntegrityHmac.IntegrityHmacSHA256.class
+        );
+        algorithmHash.put(
+            XMLSignature.ALGO_ID_MAC_HMAC_SHA384, IntegrityHmac.IntegrityHmacSHA384.class
+        );
+        algorithmHash.put(
+            XMLSignature.ALGO_ID_MAC_HMAC_SHA512, IntegrityHmac.IntegrityHmacSHA512.class
+        );
+    }
 
     /**
      * Method getBaseNamespace

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/c14n/Canonicalizer.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/c14n/Canonicalizer.java?rev=1100185&r1=1100184&r2=1100185&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/c14n/Canonicalizer.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/c14n/Canonicalizer.java Fri May  6 12:14:59 2011
@@ -28,6 +28,12 @@ import java.util.concurrent.ConcurrentHa
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 
+import org.apache.xml.security.c14n.implementations.Canonicalizer11_OmitComments;
+import org.apache.xml.security.c14n.implementations.Canonicalizer11_WithComments;
+import org.apache.xml.security.c14n.implementations.Canonicalizer20010315ExclOmitComments;
+import org.apache.xml.security.c14n.implementations.Canonicalizer20010315ExclWithComments;
+import org.apache.xml.security.c14n.implementations.Canonicalizer20010315OmitComments;
+import org.apache.xml.security.c14n.implementations.Canonicalizer20010315WithComments;
 import org.apache.xml.security.exceptions.AlgorithmAlreadyRegisteredException;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
@@ -81,8 +87,8 @@ public class Canonicalizer {
     public static final String ALGO_ID_C14N11_WITH_COMMENTS = 
         ALGO_ID_C14N11_OMIT_COMMENTS + "#WithComments";
 
-    private static Map<String, Class<CanonicalizerSpi>> canonicalizerHash = 
-        new ConcurrentHashMap<String, Class<CanonicalizerSpi>>();
+    private static Map<String, Class<? extends CanonicalizerSpi>> canonicalizerHash = 
+        new ConcurrentHashMap<String, Class<? extends CanonicalizerSpi>>();
     
     private final CanonicalizerSpi canonicalizerSpi;
 
@@ -94,7 +100,8 @@ public class Canonicalizer {
      */
     private Canonicalizer(String algorithmURI) throws InvalidCanonicalizerException {
         try {
-            Class<CanonicalizerSpi> implementingClass = canonicalizerHash.get(algorithmURI);
+            Class<? extends CanonicalizerSpi> implementingClass = 
+                canonicalizerHash.get(algorithmURI);
 
             canonicalizerSpi = implementingClass.newInstance();
             canonicalizerSpi.reset = true;
@@ -129,7 +136,8 @@ public class Canonicalizer {
     public static void register(String algorithmURI, String implementingClass)
         throws AlgorithmAlreadyRegisteredException, ClassNotFoundException {
         // check whether URI is already registered
-        Class<CanonicalizerSpi> registeredClass = canonicalizerHash.get(algorithmURI);
+        Class<? extends CanonicalizerSpi> registeredClass = 
+            canonicalizerHash.get(algorithmURI);
 
         if (registeredClass != null)  {
             Object exArgs[] = { algorithmURI, registeredClass };
@@ -137,7 +145,7 @@ public class Canonicalizer {
         }
 
         canonicalizerHash.put(
-            algorithmURI, (Class<CanonicalizerSpi>)Class.forName(implementingClass)
+            algorithmURI, (Class<? extends CanonicalizerSpi>)Class.forName(implementingClass)
         );
     }
     
@@ -151,7 +159,7 @@ public class Canonicalizer {
     public static void register(String algorithmURI, Class<CanonicalizerSpi> implementingClass)
         throws AlgorithmAlreadyRegisteredException, ClassNotFoundException {
         // check whether URI is already registered
-        Class<CanonicalizerSpi> registeredClass = canonicalizerHash.get(algorithmURI);
+        Class<? extends CanonicalizerSpi> registeredClass = canonicalizerHash.get(algorithmURI);
 
         if (registeredClass != null)  {
             Object exArgs[] = { algorithmURI, registeredClass };
@@ -160,6 +168,36 @@ public class Canonicalizer {
 
         canonicalizerHash.put(algorithmURI, implementingClass);
     }
+    
+    /**
+     * This method registers the default algorithms.
+     */
+    public static void registerDefaultAlgorithms() {
+        canonicalizerHash.put(
+            Canonicalizer.ALGO_ID_C14N_OMIT_COMMENTS, 
+            Canonicalizer20010315OmitComments.class
+        );
+        canonicalizerHash.put(
+            Canonicalizer.ALGO_ID_C14N_WITH_COMMENTS, 
+            Canonicalizer20010315WithComments.class
+        );
+        canonicalizerHash.put(
+            Canonicalizer.ALGO_ID_C14N_EXCL_OMIT_COMMENTS, 
+            Canonicalizer20010315ExclOmitComments.class
+        );
+        canonicalizerHash.put(
+            Canonicalizer.ALGO_ID_C14N_EXCL_WITH_COMMENTS, 
+            Canonicalizer20010315ExclWithComments.class
+        );
+        canonicalizerHash.put(
+            Canonicalizer.ALGO_ID_C14N11_OMIT_COMMENTS, 
+            Canonicalizer11_OmitComments.class
+        );
+        canonicalizerHash.put(
+            Canonicalizer.ALGO_ID_C14N11_WITH_COMMENTS, 
+            Canonicalizer11_WithComments.class
+        );
+    }
 
     /**
      * Method getURI

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/keys/keyresolver/KeyResolver.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/keys/keyresolver/KeyResolver.java?rev=1100185&r1=1100184&r2=1100185&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/keys/keyresolver/KeyResolver.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/keys/keyresolver/KeyResolver.java Fri May  6 12:14:59 2011
@@ -27,6 +27,13 @@ import java.util.concurrent.CopyOnWriteA
 
 import javax.crypto.SecretKey;
 
+import org.apache.xml.security.keys.keyresolver.implementations.DSAKeyValueResolver;
+import org.apache.xml.security.keys.keyresolver.implementations.RSAKeyValueResolver;
+import org.apache.xml.security.keys.keyresolver.implementations.RetrievalMethodResolver;
+import org.apache.xml.security.keys.keyresolver.implementations.X509CertificateResolver;
+import org.apache.xml.security.keys.keyresolver.implementations.X509IssuerSerialResolver;
+import org.apache.xml.security.keys.keyresolver.implementations.X509SKIResolver;
+import org.apache.xml.security.keys.keyresolver.implementations.X509SubjectNameResolver;
 import org.apache.xml.security.keys.storage.StorageResolver;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -254,22 +261,19 @@ public class KeyResolver {
     }
     
     /**
-     * This method is used for registering {@link KeyResolverSpi}s which are
-     * available to <I>all</I> {@link org.apache.xml.security.keys.KeyInfo} objects. This means that
-     * personalized {@link KeyResolverSpi}s should only be registered directly
-     * to the {@link org.apache.xml.security.keys.KeyInfo} using 
-     * {@link org.apache.xml.security.keys.KeyInfo#registerInternalKeyResolver}.
-     *
-     * @param keyResolverSpi a KeyResolverSpi instance to register
-     * @param start whether to register the KeyResolverSpi at the start of the list or not
+     * This method registers the default resolvers.
      */
-    public static void register(
-        List<KeyResolverSpi> keyResolverSpiList
-    ) {
-        List<KeyResolver> keyResolverList = new ArrayList<KeyResolver>(keyResolverSpiList.size());
-        for (KeyResolverSpi keyResolverSpi : keyResolverSpiList) {
-            keyResolverList.add(new KeyResolver(keyResolverSpi));
-        }
+    public static void registerDefaultResolvers() {
+        
+        List<KeyResolver> keyResolverList = new ArrayList<KeyResolver>();
+        keyResolverList.add(new KeyResolver(new RSAKeyValueResolver()));
+        keyResolverList.add(new KeyResolver(new DSAKeyValueResolver()));
+        keyResolverList.add(new KeyResolver(new X509CertificateResolver()));
+        keyResolverList.add(new KeyResolver(new X509SKIResolver()));
+        keyResolverList.add(new KeyResolver(new RetrievalMethodResolver()));
+        keyResolverList.add(new KeyResolver(new X509SubjectNameResolver()));
+        keyResolverList.add(new KeyResolver(new X509IssuerSerialResolver()));
+        
         resolverVector.addAll(keyResolverList);
     }
 

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/Transform.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/Transform.java?rev=1100185&r1=1100184&r2=1100185&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/Transform.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/transforms/Transform.java Fri May  6 12:14:59 2011
@@ -29,6 +29,17 @@ import org.apache.xml.security.c14n.Inva
 import org.apache.xml.security.exceptions.AlgorithmAlreadyRegisteredException;
 import org.apache.xml.security.exceptions.XMLSecurityException;
 import org.apache.xml.security.signature.XMLSignatureInput;
+import org.apache.xml.security.transforms.implementations.TransformBase64Decode;
+import org.apache.xml.security.transforms.implementations.TransformC14N;
+import org.apache.xml.security.transforms.implementations.TransformC14N11;
+import org.apache.xml.security.transforms.implementations.TransformC14N11_WithComments;
+import org.apache.xml.security.transforms.implementations.TransformC14NExclusive;
+import org.apache.xml.security.transforms.implementations.TransformC14NExclusiveWithComments;
+import org.apache.xml.security.transforms.implementations.TransformC14NWithComments;
+import org.apache.xml.security.transforms.implementations.TransformEnvelopedSignature;
+import org.apache.xml.security.transforms.implementations.TransformXPath;
+import org.apache.xml.security.transforms.implementations.TransformXPath2Filter;
+import org.apache.xml.security.transforms.implementations.TransformXSLT;
 import org.apache.xml.security.utils.ClassLoaderUtils;
 import org.apache.xml.security.utils.Constants;
 import org.apache.xml.security.utils.HelperNodeList;
@@ -59,8 +70,8 @@ public final class Transform extends Sig
         org.apache.commons.logging.LogFactory.getLog(Transform.class);
 
     /** All available Transform classes are registered here */
-    private static Map<String, Class<TransformSpi>> transformSpiHash = 
-        new ConcurrentHashMap<String, Class<TransformSpi>>();
+    private static Map<String, Class<? extends TransformSpi>> transformSpiHash = 
+        new ConcurrentHashMap<String, Class<? extends TransformSpi>>();
     
     private final TransformSpi transformSpi;
     
@@ -143,7 +154,7 @@ public final class Transform extends Sig
             throw new TransformationException("xml.WrongContent", exArgs);
         }
      
-        Class<TransformSpi> transformSpiClass = transformSpiHash.get(algorithmURI);
+        Class<? extends TransformSpi> transformSpiClass = transformSpiHash.get(algorithmURI);
         if (transformSpiClass == null) {
             Object exArgs[] = { algorithmURI };
             throw new InvalidTransformException("signature.Transform.UnknownTransform", exArgs);
@@ -179,13 +190,14 @@ public final class Transform extends Sig
         throws AlgorithmAlreadyRegisteredException, ClassNotFoundException, 
             InvalidTransformException {
         // are we already registered?
-        Class<TransformSpi> transformSpi = transformSpiHash.get(algorithmURI);
+        Class<? extends TransformSpi> transformSpi = transformSpiHash.get(algorithmURI);
         if (transformSpi != null) {
             Object exArgs[] = { algorithmURI, transformSpi };
             throw new AlgorithmAlreadyRegisteredException("algorithm.alreadyRegistered", exArgs);
         }
-        Class<TransformSpi> transformSpiClass = 
-            (Class<TransformSpi>)ClassLoaderUtils.loadClass(implementingClass, Transform.class);
+        Class<? extends TransformSpi> transformSpiClass = 
+            (Class<? extends TransformSpi>)
+                ClassLoaderUtils.loadClass(implementingClass, Transform.class);
         transformSpiHash.put(algorithmURI, transformSpiClass);
     }
     
@@ -203,7 +215,7 @@ public final class Transform extends Sig
     public static void register(String algorithmURI, Class<TransformSpi> implementingClass)
         throws AlgorithmAlreadyRegisteredException {
         // are we already registered?
-        Class<TransformSpi> transformSpi = transformSpiHash.get(algorithmURI);
+        Class<? extends TransformSpi> transformSpi = transformSpiHash.get(algorithmURI);
         if (transformSpi != null) {
             Object exArgs[] = { algorithmURI, transformSpi };
             throw new AlgorithmAlreadyRegisteredException("algorithm.alreadyRegistered", exArgs);
@@ -212,6 +224,48 @@ public final class Transform extends Sig
     }
 
     /**
+     * This method registers the default algorithms.
+     */
+    public static void registerDefaultAlgorithms() {
+        transformSpiHash.put(
+            Transforms.TRANSFORM_BASE64_DECODE, TransformBase64Decode.class
+        );
+        transformSpiHash.put(
+            Transforms.TRANSFORM_C14N_OMIT_COMMENTS, TransformC14N.class
+        );
+        transformSpiHash.put(
+            Transforms.TRANSFORM_C14N_WITH_COMMENTS, TransformC14NWithComments.class
+        );
+        transformSpiHash.put(
+            Transforms.TRANSFORM_C14N11_OMIT_COMMENTS, TransformC14N11.class
+        );
+        transformSpiHash.put(
+            Transforms.TRANSFORM_C14N11_WITH_COMMENTS, TransformC14N11_WithComments.class
+        );
+        transformSpiHash.put(
+            Transforms.TRANSFORM_C14N_EXCL_OMIT_COMMENTS, TransformC14NExclusive.class
+        );
+        transformSpiHash.put(
+            Transforms.TRANSFORM_C14N_EXCL_WITH_COMMENTS, TransformC14NExclusiveWithComments.class
+        );
+        transformSpiHash.put(
+            Transforms.TRANSFORM_XPATH, TransformXPath.class
+        );
+        transformSpiHash.put(
+            Transforms.TRANSFORM_ENVELOPED_SIGNATURE, TransformEnvelopedSignature.class
+        );
+        transformSpiHash.put(
+            Transforms.TRANSFORM_XSLT, TransformXSLT.class
+        );
+        transformSpiHash.put(
+            Transforms.TRANSFORM_XPATH2FILTER, TransformXPath2Filter.class
+        );
+        transformSpiHash.put(
+            Transforms.TRANSFORM_XPATH2FILTER04, TransformXPath2Filter.class
+        );
+    }
+    
+    /**
      * Returns the URI representation of Transformation algorithm
      *
      * @return the URI representation of Transformation algorithm
@@ -285,7 +339,7 @@ public final class Transform extends Sig
 
         this.constructionElement.setAttributeNS(null, Constants._ATT_ALGORITHM, algorithmURI);
 
-        Class<TransformSpi> transformSpiClass = transformSpiHash.get(algorithmURI);
+        Class<? extends TransformSpi> transformSpiClass = transformSpiHash.get(algorithmURI);
         if (transformSpiClass == null) {
             Object exArgs[] = { algorithmURI };
             throw new InvalidTransformException("signature.Transform.UnknownTransform", exArgs);

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/utils/ElementProxy.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/utils/ElementProxy.java?rev=1100185&r1=1100184&r2=1100185&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/utils/ElementProxy.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/utils/ElementProxy.java Fri May  6 12:14:59 2011
@@ -488,6 +488,21 @@ public abstract class ElementProxy {
         }
         prefixMappings.put(namespace, prefix);
     }
+    
+    /**
+     * This method registers the default prefixes.
+     */
+    public static void registerDefaultPrefixes() throws XMLSecurityException {
+        setDefaultPrefix("http://www.w3.org/2000/09/xmldsig#", "ds");
+        setDefaultPrefix("http://www.w3.org/2001/04/xmlenc#", "xenc");
+        setDefaultPrefix("http://www.xmlsecurity.org/experimental#", "experimental");
+        setDefaultPrefix("http://www.w3.org/2002/04/xmldsig-filter2", "dsig-xpath-old");
+        setDefaultPrefix("http://www.w3.org/2002/06/xmldsig-filter2", "dsig-xpath");
+        setDefaultPrefix("http://www.w3.org/2001/10/xml-exc-c14n#", "ec");
+        setDefaultPrefix(
+            "http://www.nue.et-inf.uni-siegen.de/~geuer-pollmann/#xpathFilter", "xx"
+        );
+    }
 
     /**
      * Method getDefaultPrefix

Modified: santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/utils/resolver/ResourceResolver.java
URL: http://svn.apache.org/viewvc/santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/utils/resolver/ResourceResolver.java?rev=1100185&r1=1100184&r2=1100185&view=diff
==============================================================================
--- santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/utils/resolver/ResourceResolver.java (original)
+++ santuario/xml-security-java/trunk/src/main/java/org/apache/xml/security/utils/resolver/ResourceResolver.java Fri May  6 12:14:59 2011
@@ -23,6 +23,10 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.xml.security.signature.XMLSignatureInput;
+import org.apache.xml.security.utils.resolver.implementations.ResolverDirectHTTP;
+import org.apache.xml.security.utils.resolver.implementations.ResolverFragment;
+import org.apache.xml.security.utils.resolver.implementations.ResolverLocalFilesystem;
+import org.apache.xml.security.utils.resolver.implementations.ResolverXPointer;
 import org.w3c.dom.Attr;
 
 /**
@@ -206,6 +210,18 @@ public class ResourceResolver {
     }
     
     /**
+     * This method registers the default resolvers.
+     */
+    public static void registerDefaultResolvers() {
+        synchronized(resolverList) {
+            resolverList.add(new ResourceResolver(new ResolverFragment()));
+            resolverList.add(new ResourceResolver(new ResolverLocalFilesystem()));
+            resolverList.add(new ResourceResolver(new ResolverXPointer()));
+            resolverList.add(new ResourceResolver(new ResolverDirectHTTP()));
+        }
+    }
+    
+    /**
      * Method resolve
      *
      * @param uri