[java-opensaml] branch main updated: OSJ-418 - Allow classes to skip servlet request check at init time

Scott Cantor cantor.2 at osu.edu
Wed Oct 2 18:18:36 UTC 2024


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

scantor 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=9b43a25e41302b75686810d6f97429ea7483e3a9

The following commit(s) were added to refs/heads/main by this push:
     new 9b43a25e4 OSJ-418 - Allow classes to skip servlet request check at init time
9b43a25e4 is described below

commit 9b43a25e41302b75686810d6f97429ea7483e3a9
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Wed Oct 2 14:18:16 2024 -0400

    OSJ-418 - Allow classes to skip servlet request check at init time
    
    https://shibboleth.atlassian.net/browse/OSJ-418
    
    Add flag to ValidateAssertions action.
---
 .../saml2/profile/impl/ValidateAssertions.java     | 37 ++++++++++++++++++++--
 1 file changed, 35 insertions(+), 2 deletions(-)

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 0d6efd607..33bd47f7d 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
@@ -62,7 +62,10 @@ public class ValidateAssertions extends AbstractProfileAction {
     
     /** Flag which indicates whether a failure of Assertion validation should be considered fatal. */
     private boolean invalidFatal;
-    
+
+    /** Flag for whether to check for servlet request during init. */
+    private boolean checkDuringInit;
+
     /** The SAML 2.0 Assertion validator lookup function, may be null.*/
     @Nonnull
     private Function<Pair<ProfileRequestContext, Assertion>, SAML20AssertionValidator> assertionValidatorLookup;
@@ -80,6 +83,7 @@ public class ValidateAssertions extends AbstractProfileAction {
     /** Constructor. */
     public ValidateAssertions() {
         setInvalidFatal(true);
+        setCheckDuringInit(true);
         assertionValidatorLookup = FunctionSupport.constant(null);
         validationContextBuilder = new DefaultAssertionValidationContextBuilder();
         assertionResolver = new DefaultAssertionResolver();
@@ -162,6 +166,34 @@ public class ValidateAssertions extends AbstractProfileAction {
         invalidFatal = flag;
     }
     
+    /**
+     * Get whether {{@link #initialize()} should throw an exception if {@link #getHttpServletRequest()}
+     * returns null.
+     * 
+     * @return whether a null request should fail initialization
+     * 
+     * @since 5.2.0
+     */
+    public boolean isCheckDuringInit() {
+        return checkDuringInit;
+    }
+    
+    /**
+     * Set whether {{@link #initialize()} should throw an exception if {@link #getHttpServletRequest()}
+     * returns null.
+     * 
+     * <p>Defaults to true.</p>
+     * 
+     * @param flag
+     * 
+     * @since 5.2.0
+     */
+    public void setCheckDuringInit(final boolean flag) {
+        checkSetterPreconditions();
+        
+        checkDuringInit = flag;
+    }
+    
     /**
      * Get the configured Assertion validator.
      * 
@@ -200,7 +232,7 @@ public class ValidateAssertions extends AbstractProfileAction {
     protected void doInitialize() throws ComponentInitializationException {
         super.doInitialize();
         
-        if (getHttpServletRequest() == null) {
+        if (isCheckDuringInit() && getHttpServletRequest() == null) {
             throw new ComponentInitializationException("HttpServletRequest cannot be null");
         }
     }
@@ -325,6 +357,7 @@ public class ValidateAssertions extends AbstractProfileAction {
      * Class which holds data relevant to validating a SAML 2.0 Assertion.
      */
     public static class AssertionValidationInput {
+        
         /** The profile request context input. */
         @Nonnull private ProfileRequestContext profileContext;
         

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


More information about the commits mailing list