[java-opensaml] 02/02: JSATTR-6: SAML AttributeQuery DataConnector

Brent Putman putmanb at georgetown.edu
Thu May 29 23:47:58 UTC 2025


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=d86d156a293d4e518e92cccf1331b9619fa51e21

commit d86d156a293d4e518e92cccf1331b9619fa51e21
Author: Brent Putman <putmanb at georgetown.edu>
AuthorDate: Thu May 29 19:26:46 2025 -0400

    JSATTR-6: SAML AttributeQuery DataConnector
    
    Refactor ValidateAssertions to use new variant of
    DefaultAssertionValidationContextBuilder.
    
    Deprecate existing DefaultAssertionValidationContextBuilder.
---
 .../DefaultAssertionValidationContextBuilder.java  |  8 +++++
 .../saml2/profile/impl/ValidateAssertions.java     | 35 +++++++++++++++-------
 .../MockAssertionValidationContextBuilder.java     |  2 +-
 3 files changed, 34 insertions(+), 11 deletions(-)

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 4cc0a6703..502b9dd7e 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
@@ -77,6 +77,8 @@ import net.shibboleth.shared.collection.Pair;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.logic.FunctionSupport;
 import net.shibboleth.shared.logic.PredicateSupport;
+import net.shibboleth.shared.primitive.DeprecationSupport;
+import net.shibboleth.shared.primitive.DeprecationSupport.ObjectType;
 import net.shibboleth.shared.primitive.LoggerFactory;
 import net.shibboleth.shared.primitive.StringSupport;
 import net.shibboleth.shared.resolver.CriteriaSet;
@@ -85,7 +87,10 @@ import net.shibboleth.shared.servlet.HttpServletSupport;
 /**
  *  Function which implements default behavior for building an instance of {@link ValidationContext}
  *  from an instance of {@link AssertionValidationInput}.
+ *  
+ *  @deprecated use {@link org.opensaml.saml.saml2.assertion.messaging.impl.DefaultAssertionValidationContextBuilder}.
  */
+ at Deprecated
 public class DefaultAssertionValidationContextBuilder 
         implements Function<AssertionValidationInput, ValidationContext> {
     
@@ -153,6 +158,9 @@ public class DefaultAssertionValidationContextBuilder
      * Constructor.
      */
     public DefaultAssertionValidationContextBuilder() {
+        DeprecationSupport.warn(ObjectType.CLASS, "DefaultAssertionValidationContextBuilder", null,
+                "org.opensaml.saml.saml2.assertion.messaging.impl.DefaultAssertionValidationContextBuilder}");
+
         signatureRequired = PredicateSupport.alwaysTrue();
         includeSelfEntityIDAsRecipient = PredicateSupport.alwaysFalse();
         checkAddress = PredicateSupport.alwaysTrue();
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/ValidateAssertions.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/ValidateAssertions.java
index b45e0a2eb..9d13be2d6 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/ValidateAssertions.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/profile/impl/ValidateAssertions.java
@@ -31,6 +31,7 @@ import org.opensaml.saml.common.assertion.ValidationProcessingData;
 import org.opensaml.saml.common.assertion.ValidationResult;
 import org.opensaml.saml.common.profile.SAMLEventIds;
 import org.opensaml.saml.saml2.assertion.SAML20AssertionValidator;
+import org.opensaml.saml.saml2.assertion.messaging.HttpServletRequestNetworkInformationSupplier;
 import org.opensaml.saml.saml2.core.Assertion;
 import org.opensaml.saml.saml2.core.Response;
 import org.slf4j.Logger;
@@ -43,6 +44,8 @@ import net.shibboleth.shared.collection.Pair;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.logic.FunctionSupport;
+import net.shibboleth.shared.primitive.DeprecationSupport;
+import net.shibboleth.shared.primitive.DeprecationSupport.ObjectType;
 import net.shibboleth.shared.primitive.LoggerFactory;
 
 /**
@@ -73,8 +76,9 @@ public class ValidateAssertions extends AbstractProfileAction {
     private Function<Pair<ProfileRequestContext, Assertion>, SAML20AssertionValidator> assertionValidatorLookup;
     
     /** Function that builds a {@link ValidationContext} instance based on a 
-     * {@link AssertionValidationInput} instance. */
-    @Nonnull private Function<AssertionValidationInput, ValidationContext> validationContextBuilder;
+     * {@link org.opensaml.saml.saml2.assertion.messaging.AssertionValidationInput} instance. */
+    @Nonnull private Function<org.opensaml.saml.saml2.assertion.messaging.AssertionValidationInput, ValidationContext>
+        validationContextBuilder;
     
     /** The resolver for the list of assertions to be validated. */
     @Nonnull private Function<ProfileRequestContext, List<Assertion>> assertionResolver;
@@ -87,7 +91,8 @@ public class ValidateAssertions extends AbstractProfileAction {
         setInvalidFatal(true);
         setCheckDuringInit(true);
         assertionValidatorLookup = FunctionSupport.constant(null);
-        validationContextBuilder = new DefaultAssertionValidationContextBuilder();
+        validationContextBuilder = 
+                new org.opensaml.saml.saml2.assertion.messaging.impl.DefaultAssertionValidationContextBuilder();
         assertionResolver = new DefaultAssertionResolver();
     }
 
@@ -112,31 +117,34 @@ public class ValidateAssertions extends AbstractProfileAction {
 
     /**
      * Get the function that builds a {@link ValidationContext} instance based on a 
-     * {@link AssertionValidationInput} instance.
+     * {@link org.opensaml.saml.saml2.assertion.messaging.AssertionValidationInput} instance.
      * 
      * <p>
-     * Defaults to an instance of {@link DefaultAssertionValidationContextBuilder}.
+     * Defaults to an instance of 
+     * {@link org.opensaml.saml.saml2.assertion.messaging.impl.DefaultAssertionValidationContextBuilder}.
      * </p>
      * 
      * @return the builder function
      */
     @Nonnull
-    public Function<AssertionValidationInput, ValidationContext> getValidationContextBuilder() {
+    public Function<org.opensaml.saml.saml2.assertion.messaging.AssertionValidationInput, ValidationContext>
+        getValidationContextBuilder() {
         return validationContextBuilder;
     }
 
     /**
      * Set the function that builds a {@link ValidationContext} instance based on a 
-     * {@link AssertionValidationInput} instance.
+     * {@link org.opensaml.saml.saml2.assertion.messaging.AssertionValidationInput} instance.
      * 
      * <p>
-     * Defaults to an instance of {@link DefaultAssertionValidationContextBuilder}.
+     * Defaults to an instance of
+     * {@link org.opensaml.saml.saml2.assertion.messaging.impl.DefaultAssertionValidationContextBuilder}.
      * </p>
      * 
      * @param builder the builder function
      */
     public void setValidationContextBuilder(
-            @Nonnull final Function<AssertionValidationInput, ValidationContext> builder) {
+            @Nonnull final Function<org.opensaml.saml.saml2.assertion.messaging.AssertionValidationInput, ValidationContext> builder) {
         checkSetterPreconditions();
         validationContextBuilder = Constraint.isNotNull(builder, "ValidationContext builder cannot be null");
     }
@@ -325,7 +333,8 @@ public class ValidateAssertions extends AbstractProfileAction {
         final HttpServletRequest servletRequest = getHttpServletRequest();
         assert servletRequest != null;
         final ValidationContext validationContext = getValidationContextBuilder().apply(
-                new AssertionValidationInput(profileContext, servletRequest, assertion));
+                new org.opensaml.saml.saml2.assertion.messaging.AssertionValidationInput(assertion, profileContext,
+                        new HttpServletRequestNetworkInformationSupplier(servletRequest)));
         
         if (validationContext == null) {
             log.warn("{} ValidationContext produced was null", getLogPrefix());
@@ -356,7 +365,10 @@ public class ValidateAssertions extends AbstractProfileAction {
     
     /**
      * Class which holds data relevant to validating a SAML 2.0 Assertion.
+     * 
+     * @deprecated Use {@link org.opensaml.saml.saml2.assertion.messaging.AssertionValidationInput}.
      */
+    @Deprecated
     public static class AssertionValidationInput {
         
         /** The profile request context input. */
@@ -380,6 +392,9 @@ public class ValidateAssertions extends AbstractProfileAction {
             profileContext = Constraint.isNotNull(context, "ProfileRequestContext may not be null");
             httpServletRequest = Constraint.isNotNull(request, "HttpServletRequest may not be null");
             assertion = Constraint.isNotNull(samlAssertion, "Assertion may not be null");
+            
+            DeprecationSupport.warn(ObjectType.CLASS, "AssertionValidationInput", null,
+                    "org.opensaml.saml.saml2.assertion.messaging.AssertionValidationInput");
         }
 
         /**
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/MockAssertionValidationContextBuilder.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/MockAssertionValidationContextBuilder.java
index 24f6d67da..85b9afbd6 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/MockAssertionValidationContextBuilder.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/profile/impl/MockAssertionValidationContextBuilder.java
@@ -21,7 +21,7 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import org.opensaml.saml.common.assertion.ValidationContext;
-import org.opensaml.saml.saml2.profile.impl.ValidateAssertions.AssertionValidationInput;
+import org.opensaml.saml.saml2.assertion.messaging.AssertionValidationInput;
 
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.logic.Constraint;

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


More information about the commits mailing list