[java-opensaml] branch main updated: OSJ-432: Assertion validator allows null InResonseTo even if context ...
Brent Putman
putmanb at georgetown.edu
Sat May 3 01:31:42 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=7f3252aa1b43e8495af80d41d8a3d58668a4b245
The following commit(s) were added to refs/heads/main by this push:
new 7f3252aa1 OSJ-432: Assertion validator allows null InResonseTo even if context ...
7f3252aa1 is described below
commit 7f3252aa1b43e8495af80d41d8a3d58668a4b245
Author: Brent Putman <putmanb at georgetown.edu>
AuthorDate: Fri May 2 21:26:09 2025 -0400
OSJ-432: Assertion validator allows null InResonseTo even if context ...
Assertion validator allows null InResonseTo even if context supplies a
value
---
.../impl/AbstractSubjectConfirmationValidator.java | 17 ++++++++---------
.../impl/AbstractSubjectConfirmationValidatorTest.java | 18 +++++++++++++++---
2 files changed, 23 insertions(+), 12 deletions(-)
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/assertion/impl/AbstractSubjectConfirmationValidator.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/assertion/impl/AbstractSubjectConfirmationValidator.java
index 4152b4bb0..2bc703b05 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/assertion/impl/AbstractSubjectConfirmationValidator.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/assertion/impl/AbstractSubjectConfirmationValidator.java
@@ -264,15 +264,6 @@ public abstract class AbstractSubjectConfirmationValidator implements SubjectCon
final String inResponseTo =
StringSupport.trimOrNull(confirmationData.getInResponseTo());
- if (inResponseTo == null) {
- if (required) {
- context.getValidationFailureMessages().add(
- "SubjectConfirmationData/@InResponseTo was missing and was required");
- return ValidationResult.INVALID;
- }
- return ValidationResult.VALID;
- }
-
log.debug("Evaluating SubjectConfirmationData at InResponseTo of: {}", inResponseTo);
final String validInResponseTo;
@@ -291,6 +282,14 @@ public abstract class AbstractSubjectConfirmationValidator implements SubjectCon
return ValidationResult.INDETERMINATE;
}
+ if (inResponseTo == null) {
+ if (required || validInResponseTo != null) {
+ context.getValidationFailureMessages().add(
+ "SubjectConfirmationData/@InResponseTo was missing and was required");
+ return ValidationResult.INVALID;
+ }
+ }
+
if (Objects.equals(inResponseTo, validInResponseTo)) {
log.debug("Matched valid InResponseTo: {}", inResponseTo);
return ValidationResult.VALID;
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/AbstractSubjectConfirmationValidatorTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/AbstractSubjectConfirmationValidatorTest.java
index aaf3c15be..1ceff8478 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/AbstractSubjectConfirmationValidatorTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/AbstractSubjectConfirmationValidatorTest.java
@@ -350,17 +350,17 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
}
@Test
- public void testNoInResponseTo() throws AssertionValidationException {
+ public void testNoInResponseToAndDefaultNotRequired() throws AssertionValidationException {
getSubjectConfirmationData().setInResponseTo(null);
ValidationContext validationContext = new ValidationContext(buildBasicStaticParameters());
Assert.assertEquals(validator.validate(subjectConfirmation, getAssertion(), validationContext),
- ValidationResult.VALID);
+ ValidationResult.INVALID);
}
@Test
- public void testNoInResponseToAndRequired() throws AssertionValidationException {
+ public void testNoInResponseToAndExplicitRequired() throws AssertionValidationException {
getSubjectConfirmationData().setInResponseTo(null);
Map<String,Object> staticParams = buildBasicStaticParameters();
@@ -371,6 +371,18 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
ValidationResult.INVALID);
}
+ @Test
+ public void testNoInResponseToAndExplicitNotRequired() throws AssertionValidationException {
+ getSubjectConfirmationData().setInResponseTo(null);
+
+ Map<String,Object> staticParams = buildBasicStaticParameters();
+ staticParams.put(SAML2AssertionValidationParameters.SC_IN_RESPONSE_TO_REQUIRED, Boolean.FALSE);
+ ValidationContext validationContext = new ValidationContext(staticParams);
+
+ Assert.assertEquals(validator.validate(subjectConfirmation, getAssertion(), validationContext),
+ ValidationResult.INVALID);
+ }
+
@Test
public void testNoConfirmationDataAndInResponseToRequired() throws AssertionValidationException {
subjectConfirmation.setSubjectConfirmationData(null);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list