You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by ra...@apache.org on 2006/02/26 18:36:36 UTC

svn commit: r381127 - in /xml/security/trunk/src/org/apache/xml/security/keys/keyresolver/implementations: X509SKIResolver.java X509SubjectNameResolver.java

Author: raul
Date: Sun Feb 26 09:36:35 2006
New Revision: 381127

URL: http://svn.apache.org/viewcvs?rev=381127&view=rev
Log:
Fixed BUG 38605.
Refactored the way keyresolver works instead of
calling canResolve/resolveX only resolveX is used 
and if it returns null it means it cannot resolve.

Modified:
    xml/security/trunk/src/org/apache/xml/security/keys/keyresolver/implementations/X509SKIResolver.java
    xml/security/trunk/src/org/apache/xml/security/keys/keyresolver/implementations/X509SubjectNameResolver.java

Modified: xml/security/trunk/src/org/apache/xml/security/keys/keyresolver/implementations/X509SKIResolver.java
URL: http://svn.apache.org/viewcvs/xml/security/trunk/src/org/apache/xml/security/keys/keyresolver/implementations/X509SKIResolver.java?rev=381127&r1=381126&r2=381127&view=diff
==============================================================================
--- xml/security/trunk/src/org/apache/xml/security/keys/keyresolver/implementations/X509SKIResolver.java (original)
+++ xml/security/trunk/src/org/apache/xml/security/keys/keyresolver/implementations/X509SKIResolver.java Sun Feb 26 09:36:35 2006
@@ -44,51 +44,7 @@
     static org.apache.commons.logging.Log log = 
         org.apache.commons.logging.LogFactory.getLog(X509SKIResolver.class.getName());
 
-   /** Field _x509childNodes */
-   private Element _x509childNodes[] = null;
-
-   /** Field _x509childObject[] */
-   private XMLX509SKI _x509childObject[] = null;
-
-   /**
-    * Method engineCanResolve
-    * @inheritDoc
-    * @param element
-    * @param BaseURI
-    * @param storage
-    *
-    */
-   public boolean engineCanResolve(Element element, String BaseURI,
-                                   StorageResolver storage) {
-      if (log.isDebugEnabled()) {
-      	log.debug("Can I resolve " + element.getTagName() + "?");
-      }
-      
-         if (!XMLUtils.elementIsInSignatureSpace(element,
-                 Constants._TAG_X509DATA)) {
-         log.debug("I can't");
-
-         return false;
-      }
-
-      
- 
-
-         this._x509childNodes = XMLUtils.selectDsNodes(element.getFirstChild(),
-                  Constants._TAG_X509SKI);
-
-         if ((this._x509childNodes != null)
-                 && (this._x509childNodes.length > 0)) {
-            log.debug("Yes Sir, I can");
-
-            return true;
-         }
-      
-      log.debug("I can't");
-
-      return false;
-   }
-
+   
    /**
     * Method engineResolvePublicKey
     *
@@ -124,17 +80,27 @@
    public X509Certificate engineResolveX509Certificate(
            Element element, String BaseURI, StorageResolver storage)
               throws KeyResolverException {
-
-      try {
-         if (this._x509childNodes == null) {
-            boolean weCanResolve = this.engineCanResolve(element, BaseURI,
-                                      storage);
-
-            if (!weCanResolve || (this._x509childNodes == null)) {
-               return null;
-            }
-         }
-
+	   if (log.isDebugEnabled()) {
+	     log.debug("Can I resolve " + element.getTagName() + "?");
+	   }	      
+	   if (!XMLUtils.elementIsInSignatureSpace(element,
+              Constants._TAG_X509DATA)) {
+	         log.debug("I can't");
+	         return null;
+	   }
+	   /** Field _x509childObject[] */
+	   XMLX509SKI x509childObject[] = null;
+	   
+	   Element x509childNodes[] = null;
+	   x509childNodes = XMLUtils.selectDsNodes(element.getFirstChild(),
+	                  Constants._TAG_X509SKI);
+
+	   if (!((x509childNodes != null)
+	                 && (x509childNodes.length > 0))) {
+		   log.debug("I can't");
+	        return null;
+	   }
+	   try {         
          if (storage == null) {
             Object exArgs[] = { Constants._TAG_X509SKI };
             KeyResolverException ex =
@@ -146,20 +112,19 @@
             throw ex;
          }
 
-         this._x509childObject =
-            new XMLX509SKI[this._x509childNodes.length];
+         x509childObject = new XMLX509SKI[x509childNodes.length];
 
-         for (int i = 0; i < this._x509childNodes.length; i++) {
-            this._x509childObject[i] =
-               new XMLX509SKI(this._x509childNodes[i], BaseURI);
+         for (int i = 0; i < x509childNodes.length; i++) {
+            x509childObject[i] =
+               new XMLX509SKI(x509childNodes[i], BaseURI);
          }
 
          while (storage.hasNext()) {
             X509Certificate cert = storage.next();
             XMLX509SKI certSKI = new XMLX509SKI(element.getOwnerDocument(), cert);
 
-            for (int i = 0; i < this._x509childObject.length; i++) {
-               if (certSKI.equals(this._x509childObject[i])) {
+            for (int i = 0; i < x509childObject.length; i++) {
+               if (certSKI.equals(x509childObject[i])) {
                   log.debug("Return PublicKey from "
                             + cert.getSubjectDN().getName());
 

Modified: xml/security/trunk/src/org/apache/xml/security/keys/keyresolver/implementations/X509SubjectNameResolver.java
URL: http://svn.apache.org/viewcvs/xml/security/trunk/src/org/apache/xml/security/keys/keyresolver/implementations/X509SubjectNameResolver.java?rev=381127&r1=381126&r2=381127&view=diff
==============================================================================
--- xml/security/trunk/src/org/apache/xml/security/keys/keyresolver/implementations/X509SubjectNameResolver.java (original)
+++ xml/security/trunk/src/org/apache/xml/security/keys/keyresolver/implementations/X509SubjectNameResolver.java Sun Feb 26 09:36:35 2006
@@ -43,51 +43,7 @@
         org.apache.commons.logging.LogFactory.getLog(
                     X509SubjectNameResolver.class.getName());
 
-   /** Field _x509childNodes */
-   private Element[] _x509childNodes = null;
-
-   /** Field _x509childObject[] */
-   private XMLX509SubjectName _x509childObject[] = null;
-
-   /**
-    * Method engineCanResolve
-    * @inheritDoc
-    * @param element
-    * @param BaseURI
-    * @param storage
-    *
-    */
-   public boolean engineCanResolve(Element element, String BaseURI,
-                                   StorageResolver storage) {
-      if (log.isDebugEnabled())
-      	log.debug("Can I resolve " + element.getTagName() + "?");
-
-      
-       if (!XMLUtils.elementIsInSignatureSpace(element,
-                 Constants._TAG_X509DATA) ) {      
-         log.debug("I can't");
-
-         return false;
-      }
-
-
-         
-         this._x509childNodes = XMLUtils.selectDsNodes(element.getFirstChild(),
-                 Constants._TAG_X509SUBJECTNAME);
-
-         if ((this._x509childNodes != null)
-                 && (this._x509childNodes.length > 0)) {
-            log.debug("Yes Sir, I can");
-
-            return true;
-         }
-     
-
-      log.debug("I can't");
-
-      return false;
-   }
-
+   
    /**
     * Method engineResolvePublicKey
     *
@@ -123,17 +79,26 @@
    public X509Certificate engineResolveX509Certificate(
            Element element, String BaseURI, StorageResolver storage)
               throws KeyResolverException {
+	   if (log.isDebugEnabled())
+	      	log.debug("Can I resolve " + element.getTagName() + "?");	   
+	   Element[] x509childNodes = null;	   
+	   XMLX509SubjectName x509childObject[] = null;
+      
+	   if (!XMLUtils.elementIsInSignatureSpace(element,
+	                 Constants._TAG_X509DATA) ) {      
+		   	log.debug("I can't");
+	         return null;
+	   }
+       x509childNodes = XMLUtils.selectDsNodes(element.getFirstChild(),
+                 Constants._TAG_X509SUBJECTNAME);
 
+        if (!((x509childNodes != null)
+                && (x509childNodes.length > 0))) {
+	            log.debug("I can't");
+	            return null;
+	    }
+	     
       try {
-         if (this._x509childNodes == null) {
-            boolean weCanResolve = this.engineCanResolve(element, BaseURI,
-                                      storage);
-
-            if (!weCanResolve || (this._x509childNodes == null)) {
-               return null;
-            }
-         }
-
          if (storage == null) {
             Object exArgs[] = { Constants._TAG_X509SUBJECTNAME };
             KeyResolverException ex =
@@ -145,12 +110,12 @@
             throw ex;
          }
 
-         this._x509childObject =
-            new XMLX509SubjectName[this._x509childNodes.length];
+         x509childObject =
+            new XMLX509SubjectName[x509childNodes.length];
 
-         for (int i = 0; i < this._x509childNodes.length; i++) {
-            this._x509childObject[i] =
-               new XMLX509SubjectName(this._x509childNodes[i],
+         for (int i = 0; i < x509childNodes.length; i++) {
+            x509childObject[i] =
+               new XMLX509SubjectName(x509childNodes[i],
                                       BaseURI);
          }
 
@@ -161,11 +126,11 @@
 
             log.debug("Found Certificate SN: " + certSN.getSubjectName());
 
-            for (int i = 0; i < this._x509childObject.length; i++) {
+            for (int i = 0; i < x509childObject.length; i++) {
                log.debug("Found Element SN:     "
-                         + this._x509childObject[i].getSubjectName());
+                         + x509childObject[i].getSubjectName());
 
-               if (certSN.equals(this._x509childObject[i])) {
+               if (certSN.equals(x509childObject[i])) {
                   log.debug("match !!! ");
 
                   return cert;