[java-opensaml] branch main updated: OSJ-348: SAML Assertion signature validation should evaluate ...

Brent Putman putmanb at georgetown.edu
Wed Mar 2 23:37:48 UTC 2022


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

putmanb pushed a commit to branch main
in repository java-opensaml.

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

The following commit(s) were added to refs/heads/main by this push:
     new 990a79516 OSJ-348: SAML Assertion signature validation should evaluate ...
990a79516 is described below

commit 990a79516885076a8f226f2ff9b42be02bc7d179
Author: Brent Putman <putmanb at georgetown.edu>
AuthorDate: Wed Mar 2 18:36:20 2022 -0500

    OSJ-348: SAML Assertion signature validation should evaluate ...
    
    SAML Assertion signature validation should evaluate algorithm policy
---
 .../impl/DefaultAssertionValidationContextBuilder.java       | 12 ++++++++++++
 .../impl/DefaultSAML20AssertionValidationContextBuilder.java | 11 +++++++++++
 2 files changed, 23 insertions(+)

diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/DefaultAssertionValidationContextBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/DefaultAssertionValidationContextBuilder.java
index 825c897e0..aae79eccf 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/DefaultAssertionValidationContextBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/DefaultAssertionValidationContextBuilder.java
@@ -66,6 +66,7 @@ import org.opensaml.security.criteria.UsageCriterion;
 import org.opensaml.security.messaging.ServletRequestX509CredentialAdapter;
 import org.opensaml.security.x509.X509Credential;
 import org.opensaml.xmlsec.context.SecurityParametersContext;
+import org.opensaml.xmlsec.signature.support.SignatureValidationParametersCriterion;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -855,6 +856,7 @@ public class DefaultAssertionValidationContextBuilder
      * @param criteriaSet the criteria set to populate
      * @param inboundContext the inbound message context
      */
+    // Checkstyle: CyclomaticComplexity OFF
     protected void populateSignatureCriteriaFromInboundContext(@Nonnull final CriteriaSet criteriaSet,
             @Nonnull final MessageContext inboundContext) {
 
@@ -879,7 +881,17 @@ public class DefaultAssertionValidationContextBuilder
                 && protocolContext != null && protocolContext.getProtocol() != null) {
             criteriaSet.add(new ProtocolCriterion(protocolContext.getProtocol()));
         }
+        
+        if (!criteriaSet.contains(SignatureValidationParametersCriterion.class)) {
+            final SecurityParametersContext secParamsContext =
+                    inboundContext.getSubcontext(SecurityParametersContext.class);
+            if (secParamsContext != null && secParamsContext.getSignatureValidationParameters() != null) {
+                criteriaSet.add(new SignatureValidationParametersCriterion(
+                        secParamsContext.getSignatureValidationParameters()));
+            }
+        }
     }
+    // Checkstyle: CyclomaticComplexity ON
 
     /**
      * Get the attesting entity's {@link X509Certificate}.
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/wssecurity/messaging/impl/DefaultSAML20AssertionValidationContextBuilder.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/wssecurity/messaging/impl/DefaultSAML20AssertionValidationContextBuilder.java
index b1e080d53..72e02c59d 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/wssecurity/messaging/impl/DefaultSAML20AssertionValidationContextBuilder.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/wssecurity/messaging/impl/DefaultSAML20AssertionValidationContextBuilder.java
@@ -48,6 +48,8 @@ import org.opensaml.security.credential.UsageType;
 import org.opensaml.security.criteria.UsageCriterion;
 import org.opensaml.security.messaging.ServletRequestX509CredentialAdapter;
 import org.opensaml.security.x509.X509Credential;
+import org.opensaml.xmlsec.context.SecurityParametersContext;
+import org.opensaml.xmlsec.signature.support.SignatureValidationParametersCriterion;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -217,6 +219,15 @@ public class DefaultSAML20AssertionValidationContextBuilder
             criteriaSet.add(new UsageCriterion(UsageType.SIGNING));
         }
         
+        if (!criteriaSet.contains(SignatureValidationParametersCriterion.class)) {
+            final SecurityParametersContext secParamsContext =
+                    input.getMessageContext().getSubcontext(SecurityParametersContext.class);
+            if (secParamsContext != null && secParamsContext.getSignatureValidationParameters() != null) {
+                criteriaSet.add(new SignatureValidationParametersCriterion(
+                        secParamsContext.getSignatureValidationParameters()));
+            }
+        }
+        
         log.debug("Resolved Signature validation CriteriaSet: {}", criteriaSet);
         
         return criteriaSet;

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


More information about the commits mailing list