[java-opensaml] branch master updated: IDP-1275 - Deferred decryption of private key

Scott Cantor cantor.2 at osu.edu
Mon Jul 30 20:18:41 EDT 2018


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch master
in repository java-opensaml.

View the commit online:
http://git.shibboleth.net/view/?p=java-opensaml.git;a=commit;h=80cea7be23c7aff7e71cd97b2070f804f4c08914

The following commit(s) were added to refs/heads/master by this push:
       new  80cea7b   IDP-1275 - Deferred decryption of private key
80cea7b is described below

commit 80cea7be23c7aff7e71cd97b2070f804f4c08914
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Jul 30 20:18:39 2018 -0400

    IDP-1275 - Deferred decryption of private key
    
    https://issues.shibboleth.net/jira/browse/IDP-1275
    
    Allow lack of signing key to cause a fatal error.
---
 .../PopulateSignatureSigningParametersHandler.java | 24 ++++++++++++++++++++-
 .../impl/PopulateSignatureSigningParameters.java   | 25 ++++++++++++++++++++--
 2 files changed, 46 insertions(+), 3 deletions(-)

diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/PopulateSignatureSigningParametersHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/PopulateSignatureSigningParametersHandler.java
index 10a67a8..b391202 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/PopulateSignatureSigningParametersHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/PopulateSignatureSigningParametersHandler.java
@@ -75,6 +75,9 @@ public class PopulateSignatureSigningParametersHandler extends AbstractMessageHa
     /** Resolver for parameters to store into context. */
     @NonnullAfterInit private SignatureSigningParametersResolver resolver;
     
+    /** Whether failure to resolve parameters should be raised as an error. */
+    private boolean noResultIsError;
+    
     /**
      * Constructor.
      */
@@ -150,6 +153,21 @@ public class PopulateSignatureSigningParametersHandler extends AbstractMessageHa
         
         resolver = Constraint.isNotNull(newResolver, "SignatureSigningParametersResolver cannot be null");
     }
+
+    /**
+     * Set whether a failure to resolve any parameters should be raised as an exception.
+     * 
+     * <p>Defaults to false.</p>
+     * 
+     * @param flag flag to set
+     * 
+     * @since 3.4.0
+     */
+    public void setNoResultIsError(final boolean flag) {
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        
+        noResultIsError = flag;
+    }
     
     /** {@inheritDoc} */
     @Override
@@ -223,9 +241,13 @@ public class PopulateSignatureSigningParametersHandler extends AbstractMessageHa
         
         try {
             final SignatureSigningParameters params = resolver.resolveSingle(criteria);
-            paramsCtx.setSignatureSigningParameters(params);
+            if (params == null && noResultIsError) {
+                log.error("Failed to resolve SignatureSigningParameters");
+                throw new MessageHandlerException("Failed to resolve SignatureSigningParameters");
+            }
             log.debug("{} {} SignatureSigningParameters", getLogPrefix(),
                     params != null ? "Resolved" : "Failed to resolve");
+            paramsCtx.setSignatureSigningParameters(params);
         } catch (final ResolverException e) {
             log.error("{} Error resolving SignatureSigningParameters", getLogPrefix(), e);
             throw new MessageHandlerException("Error resolving SignatureSigningParameters", e);
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/profile/impl/PopulateSignatureSigningParameters.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/profile/impl/PopulateSignatureSigningParameters.java
index 6bbc337..9713b46 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/profile/impl/PopulateSignatureSigningParameters.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/profile/impl/PopulateSignatureSigningParameters.java
@@ -53,7 +53,7 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
  * 
  * @event {@link EventIds#PROCEED_EVENT_ID}
  * @event {@link EventIds#INVALID_MSG_CTX}
- * @event {@link EventIds#MESSAGE_PROC_ERROR}
+ * @event {@link EventIds#INVALID_SEC_CFG}
  */
 public class PopulateSignatureSigningParameters 
         extends AbstractHandlerDelegatingProfileAction<PopulateSignatureSigningParametersHandler> {
@@ -77,6 +77,9 @@ public class PopulateSignatureSigningParameters
     /** Resolver for parameters to store into context. */
     @NonnullAfterInit private SignatureSigningParametersResolver resolver;
     
+    /** Whether failure to resolve parameters should be raised as an error. */
+    private boolean noResultIsError;
+    
     /**
      * Constructor.
      */
@@ -92,6 +95,8 @@ public class PopulateSignatureSigningParameters
                 new ChildContextLookup<>(SAMLMetadataContext.class),
                 Functions.compose(new ChildContextLookup<>(SAMLPeerEntityContext.class),
                         new OutboundMessageContextLookup()));
+        
+        setErrorEvent(EventIds.INVALID_SEC_CFG);
     }
 
     /**
@@ -156,7 +161,22 @@ public class PopulateSignatureSigningParameters
         
         resolver = Constraint.isNotNull(newResolver, "SignatureSigningParametersResolver cannot be null");
     }
-    
+
+    /**
+     * Set whether a failure to resolve any parameters should be raised as an exception.
+     * 
+     * <p>Defaults to false.</p>
+     * 
+     * @param flag flag to set
+     * 
+     * @since 3.4.0
+     */
+    public void setNoResultIsError(final boolean flag) {
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+        
+        noResultIsError = flag;
+    }
+
     /** {@inheritDoc} */
     @Override
     protected void doInitialize() throws ComponentInitializationException {
@@ -174,6 +194,7 @@ public class PopulateSignatureSigningParameters
         }
 
         final PopulateSignatureSigningParametersHandler delegate = getDelegate();
+        delegate.setNoResultIsError(noResultIsError);
         delegate.setSignatureSigningParametersResolver(resolver);
         delegate.setConfigurationLookupStrategy(adapt(configurationLookupStrategy));
         delegate.setSecurityParametersContextLookupStrategy(adapt(securityParametersContextLookupStrategy));

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list