[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