[java-opensaml COMMIT] /trunk/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/keyinfo/NamedKeyInfoGeneratorMana...

noreply at shibboleth.net noreply at shibboleth.net
Fri Mar 14 19:33:23 EDT 2014


Author: putmanb
Date: Fri Mar 14 19:33:23 2014
New Revision: 3701

URL: http://svn.shibboleth.net/view/java-opensaml?rev=3701&view=rev
Log:
Adjust slightly KeyInfo manger lookup to conform with semantics of boolean flag.

Modified:
    trunk/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/keyinfo/NamedKeyInfoGeneratorManager.java

Modified: trunk/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/keyinfo/NamedKeyInfoGeneratorManager.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/keyinfo/NamedKeyInfoGeneratorManager.java?rev=3701&r1=3700&r2=3701&view=diff
==============================================================================
--- trunk/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/keyinfo/NamedKeyInfoGeneratorManager.java (original)
+++ trunk/opensaml-xmlsec-api/src/main/java/org/opensaml/xmlsec/keyinfo/NamedKeyInfoGeneratorManager.java Fri Mar 14 19:33:23 2014
@@ -27,12 +27,17 @@
 import net.shibboleth.utilities.java.support.collection.LazyMap;
 
 import org.opensaml.security.credential.Credential;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * A manager for named sets of {@link KeyInfoGeneratorFactory} instances. Each name key serves as an index to an
  * instance of {@link KeyInfoGeneratorManager}.
  */
 public class NamedKeyInfoGeneratorManager {
+    
+    /** Logger. */
+    private final Logger log = LoggerFactory.getLogger(NamedKeyInfoGeneratorManager.class);
     
     /** The set of named factory managers. */
     private final Map<String, KeyInfoGeneratorManager> managers;
@@ -159,12 +164,17 @@
             @Nonnull final Credential credential) {
         KeyInfoGeneratorManager manager = managers.get(name);
         if (manager == null) {
-            throw new IllegalArgumentException("Manager with name '" + name + "' does not exist");
+            if (useDefaultManager) {
+                log.debug("Manger with name '{}' was not registered, using default manager", name);
+                manager = defaultManager;
+            } else {
+                throw new IllegalArgumentException("Manager with name '" + name + "' does not exist");
+            }
         }
             
         KeyInfoGeneratorFactory factory = manager.getFactory(credential);
         if (factory == null) {
-            if (useDefaultManager) {
+            if (useDefaultManager && manager != defaultManager) {
                 factory = defaultManager.getFactory(credential);
             }
         }



More information about the commits mailing list