[java-opensaml] branch main updated: IDP-2069 - Null Handling Task
Scott Cantor
cantor.2 at osu.edu
Mon Apr 17 13:59:01 UTC 2023
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=f1131d6e93a46df38fcfbf72fafdb7fe108ee958
The following commit(s) were added to refs/heads/main by this push:
new f1131d6e9 IDP-2069 - Null Handling Task
f1131d6e9 is described below
commit f1131d6e93a46df38fcfbf72fafdb7fe108ee958
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Apr 17 09:58:57 2023 -0400
IDP-2069 - Null Handling Task
https://shibboleth.atlassian.net/browse/IDP-2069
More handler and test cleanup.
---
.../ExtractChannelBindingsExtensionsHandler.java | 11 +++--
.../impl/ExtractChannelBindingsHeadersHandler.java | 9 ++--
.../SAML2AuthnRequestsSignedSecurityHandler.java | 9 ++--
.../SAML2HTTPPostSimpleSignSecurityHandler.java | 11 ++---
...TTPRedirectDeflateSignatureSecurityHandler.java | 2 +-
.../AbstractSubjectConfirmationValidatorTest.java | 55 +++++++++++-----------
.../AudienceRestrictionConditionValidatorTest.java | 10 ++--
.../impl/AuthnStatementValidatorTest.java | 40 +++++++++++-----
.../BearerSubjectConfirmationValidatorTest.java | 5 +-
...elegationRestrictionConditionValidatorTest.java | 10 ++--
...olderOfKeySubjectConfirmationValidatorTest.java | 10 ++--
.../impl/OneTimeUseConditionValidatorTest.java | 3 +-
.../ProxyRestrictionConditionValidatorTest.java | 5 +-
...derVouchesSubjectConfirmationValidatorTest.java | 5 +-
.../tests/BaseAssertionValidationTest.java | 2 +-
...xtractChannelBindingsExtensionsHandlerTest.java | 15 ++++--
.../ExtractChannelBindingsHeadersHandlerTest.java | 16 +++----
...AML2AuthnRequestsSignedSecurityHandlerTest.java | 13 +++--
...SAML2HTTPPostSimpleSignSecurityHandlerTest.java | 29 +++++++-----
...edirectDeflateSignatureSecurityHandlerTest.java | 40 +++++++++-------
20 files changed, 171 insertions(+), 129 deletions(-)
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandler.java
index 5477a772e..6925074ca 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandler.java
@@ -34,7 +34,8 @@ import org.opensaml.saml.saml2.core.Extensions;
import org.opensaml.saml.saml2.core.RequestAbstractType;
import org.opensaml.saml.saml2.core.StatusResponseType;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+
+import net.shibboleth.shared.primitive.LoggerFactory;
/**
* MessageHandler to process {@link ChannelBindings} extensions in an incoming SAML message
@@ -64,10 +65,10 @@ public class ExtractChannelBindingsExtensionsHandler extends AbstractMessageHand
protected void doInvoke(@Nonnull final MessageContext messageContext) throws MessageHandlerException {
Extensions extensions = null;
- if (messageContext.getMessage() instanceof RequestAbstractType) {
- extensions = ((RequestAbstractType) messageContext.getMessage()).getExtensions();
- } else if (messageContext.getMessage() instanceof StatusResponseType) {
- extensions = ((StatusResponseType) messageContext.getMessage()).getExtensions();
+ if (messageContext.getMessage() instanceof RequestAbstractType req) {
+ extensions = req.getExtensions();
+ } else if (messageContext.getMessage() instanceof StatusResponseType resp) {
+ extensions = resp.getExtensions();
} else {
log.debug("{} Message was not of a supported type", getLogPrefix());
return;
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsHeadersHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsHeadersHandler.java
index 7c728ad71..11ec498f2 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsHeadersHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsHeadersHandler.java
@@ -33,7 +33,8 @@ import org.opensaml.soap.messaging.SOAPMessagingSupport;
import org.opensaml.soap.messaging.context.SOAP11Context;
import org.opensaml.soap.soap11.ActorBearing;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+
+import net.shibboleth.shared.primitive.LoggerFactory;
/**
* MessageHandler to process {@link ChannelBindings} SOAP header blocks in an incoming SOAP envelope
@@ -98,8 +99,10 @@ public class ExtractChannelBindingsHeadersHandler extends AbstractMessageHandler
log.debug("{} No ChannelBindings header blocks found", getLogPrefix());
} else {
log.debug("{} {} ChannelBindings header block(s) found", getLogPrefix(), channelBindings.size());
- messageContext.getSubcontext(SOAP11Context.class).ensureSubcontext(ChannelBindingsContext.class).
- getChannelBindings().addAll(channelBindings);
+ messageContext.ensureSubcontext(SOAP11Context.class)
+ .ensureSubcontext(ChannelBindingsContext.class)
+ .getChannelBindings()
+ .addAll(channelBindings);
}
}
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2AuthnRequestsSignedSecurityHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2AuthnRequestsSignedSecurityHandler.java
index 6da9701fa..4a1d3f881 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2AuthnRequestsSignedSecurityHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2AuthnRequestsSignedSecurityHandler.java
@@ -26,12 +26,14 @@ import org.opensaml.saml.common.binding.SAMLBindingSupport;
import org.opensaml.saml.common.messaging.context.SAMLMetadataContext;
import org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext;
import org.opensaml.saml.saml2.core.AuthnRequest;
+import org.opensaml.saml.saml2.metadata.RoleDescriptor;
import org.opensaml.saml.saml2.metadata.SPSSODescriptor;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import com.google.common.base.Strings;
+import net.shibboleth.shared.primitive.LoggerFactory;
+
/**
* Message handler implementation that enforces the AuthnRequestsSigned flag of
* SAML 2 metadata element @{link {@link SPSSODescriptor}.
@@ -95,13 +97,14 @@ public class SAML2AuthnRequestsSignedSecurityHandler extends AbstractMessageHand
}
if (!(metadataContext.getRoleDescriptor() instanceof SPSSODescriptor)) {
+ final RoleDescriptor role = metadataContext.getRoleDescriptor();
log.warn("RoleDescriptor was not an SPSSODescriptor, it was a {}. Unable to evaluate rule",
- metadataContext.getRoleDescriptor().getClass().getName());
+ role != null ? role.getClass().getName() : "(null)");
return false;
}
final SPSSODescriptor spssoRole = (SPSSODescriptor) metadataContext.getRoleDescriptor();
-
+ assert spssoRole != null;
if (spssoRole.isAuthnRequestsSigned() == Boolean.TRUE) {
log.debug("SPSSODescriptor for entity ID '{}' indicates AuthnRequests must be signed", messageIssuer);
return true;
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandler.java
index eb21e9111..9656296b5 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandler.java
@@ -20,7 +20,6 @@ package org.opensaml.saml.saml2.binding.security.impl;
import java.io.ByteArrayInputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import javax.annotation.Nonnull;
@@ -37,7 +36,6 @@ import org.opensaml.xmlsec.keyinfo.KeyInfoCredentialResolver;
import org.opensaml.xmlsec.keyinfo.KeyInfoCriterion;
import org.opensaml.xmlsec.signature.KeyInfo;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import com.google.common.base.Strings;
@@ -47,8 +45,10 @@ import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.codec.Base64Support;
import net.shibboleth.shared.codec.DecodingException;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.LoggerFactory;
import net.shibboleth.shared.resolver.CriteriaSet;
import net.shibboleth.shared.resolver.ResolverException;
import net.shibboleth.shared.xml.ParserPool;
@@ -177,7 +177,7 @@ public class SAML2HTTPPostSimpleSignSecurityHandler extends BaseSAMLSimpleSignat
final String kiBase64 = getHttpServletRequest().getParameter("KeyInfo");
if (Strings.isNullOrEmpty(kiBase64)) {
log.debug("Form control data did not contain a KeyInfo");
- return Collections.emptyList();
+ return CollectionSupport.emptyList();
}
log.debug("Found a KeyInfo in form control data, extracting validation credentials");
@@ -206,11 +206,6 @@ public class SAML2HTTPPostSimpleSignSecurityHandler extends BaseSAMLSimpleSignat
throw new MessageHandlerException("Error unmarshalling KeyInfo data", e);
}
- if (keyInfo == null) {
- log.warn("Could not successfully extract KeyInfo object from the form control data");
- return Collections.emptyList();
- }
-
final List<Credential> credentials = new ArrayList<>();
final CriteriaSet criteriaSet = new CriteriaSet(new KeyInfoCriterion(keyInfo));
try {
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandler.java
index 7f846791a..819112ff4 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandler.java
@@ -24,12 +24,12 @@ import javax.annotation.Nullable;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.net.URISupport;
+import net.shibboleth.shared.primitive.LoggerFactory;
import org.opensaml.messaging.context.MessageContext;
import org.opensaml.messaging.handler.MessageHandlerException;
import org.opensaml.saml.common.binding.security.impl.BaseSAMLSimpleSignatureSecurityHandler;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import com.google.common.base.Strings;
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 bae443d0b..d68c1fd97 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
@@ -30,13 +30,14 @@ import org.opensaml.saml.saml2.assertion.SAML2AssertionValidationParameters;
import org.opensaml.saml.saml2.assertion.tests.BaseAssertionValidationTest;
import org.opensaml.saml.saml2.core.Assertion;
import org.opensaml.saml.saml2.core.SubjectConfirmation;
+import org.opensaml.saml.saml2.core.SubjectConfirmationData;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-/**
- *
- */
+import net.shibboleth.shared.logic.Constraint;
+
+ at SuppressWarnings("javadoc")
public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValidationTest {
private MockSubjectConfirmationValidator validator;
@@ -46,7 +47,7 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
@BeforeMethod(dependsOnMethods="setUpBasicAssertion")
public void setUp() {
validator = new MockSubjectConfirmationValidator();
- subjectConfirmation = getAssertion().getSubject().getSubjectConfirmations().get(0);
+ subjectConfirmation = getSubject().getSubjectConfirmations().get(0);
subjectConfirmation.setMethod(validator.getServicedMethod());
}
@@ -70,7 +71,7 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
@Test
public void testInvalidAddress() throws AssertionValidationException {
- subjectConfirmation.getSubjectConfirmationData().setAddress("1.2.3.4");
+ getSubjectConfirmationData().setAddress("1.2.3.4");
ValidationContext validationContext = new ValidationContext(buildBasicStaticParameters());
@@ -80,7 +81,7 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
@Test
public void testInvalidAddressWithAddressCheckDisabled() throws AssertionValidationException {
- subjectConfirmation.getSubjectConfirmationData().setAddress("1.2.3.4");
+ getSubjectConfirmationData().setAddress("1.2.3.4");
Map<String,Object> staticParams = buildBasicStaticParameters();
staticParams.put(SAML2AssertionValidationParameters.SC_CHECK_ADDRESS, Boolean.FALSE);
@@ -115,7 +116,7 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
@Test
public void testNoAddress() throws AssertionValidationException {
- subjectConfirmation.getSubjectConfirmationData().setAddress(null);
+ getSubjectConfirmationData().setAddress(null);
ValidationContext validationContext = new ValidationContext(buildBasicStaticParameters());
@@ -125,7 +126,7 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
@Test
public void testNoAddressAndRequired() throws AssertionValidationException {
- subjectConfirmation.getSubjectConfirmationData().setAddress(null);
+ getSubjectConfirmationData().setAddress(null);
Map<String,Object> staticParams = buildBasicStaticParameters();
staticParams.put(SAML2AssertionValidationParameters.SC_ADDRESS_REQUIRED, Boolean.TRUE);
@@ -149,7 +150,7 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
@Test
public void testInvalidRecipient() throws AssertionValidationException {
- subjectConfirmation.getSubjectConfirmationData().setRecipient("https://bogussp.example.com");
+ getSubjectConfirmationData().setRecipient("https://bogussp.example.com");
ValidationContext validationContext = new ValidationContext(buildBasicStaticParameters());
@@ -182,7 +183,7 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
@Test
public void testNoRecipient() throws AssertionValidationException {
- subjectConfirmation.getSubjectConfirmationData().setRecipient(null);
+ getSubjectConfirmationData().setRecipient(null);
ValidationContext validationContext = new ValidationContext(buildBasicStaticParameters());
@@ -192,7 +193,7 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
@Test
public void testNoRecipientAndRequired() throws AssertionValidationException {
- subjectConfirmation.getSubjectConfirmationData().setRecipient(null);
+ getSubjectConfirmationData().setRecipient(null);
Map<String,Object> staticParams = buildBasicStaticParameters();
staticParams.put(SAML2AssertionValidationParameters.SC_RECIPIENT_REQUIRED, Boolean.TRUE);
@@ -217,8 +218,8 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
@Test
public void testInvalidNotBefore() throws AssertionValidationException {
// Adjust them both just so they make sense
- subjectConfirmation.getSubjectConfirmationData().setNotBefore(Instant.now().plus(30, ChronoUnit.MINUTES));
- subjectConfirmation.getSubjectConfirmationData().setNotOnOrAfter(Instant.now().plus(60, ChronoUnit.MINUTES));
+ getSubjectConfirmationData().setNotBefore(Instant.now().plus(30, ChronoUnit.MINUTES));
+ getSubjectConfirmationData().setNotOnOrAfter(Instant.now().plus(60, ChronoUnit.MINUTES));
ValidationContext validationContext = new ValidationContext(buildBasicStaticParameters());
@@ -228,7 +229,7 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
@Test
public void testNoNotBefore() throws AssertionValidationException {
- subjectConfirmation.getSubjectConfirmationData().setNotBefore(null);
+ getSubjectConfirmationData().setNotBefore(null);
ValidationContext validationContext = new ValidationContext(buildBasicStaticParameters());
@@ -238,7 +239,7 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
@Test
public void testNoNotBeforeAndRequired() throws AssertionValidationException {
- subjectConfirmation.getSubjectConfirmationData().setNotBefore(null);
+ getSubjectConfirmationData().setNotBefore(null);
Map<String,Object> staticParams = buildBasicStaticParameters();
staticParams.put(SAML2AssertionValidationParameters.SC_NOT_BEFORE_REQUIRED, Boolean.TRUE);
@@ -263,8 +264,8 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
@Test
public void testInvalidNotOnOrAfter() throws AssertionValidationException {
// Adjust them both just so they make sense
- subjectConfirmation.getSubjectConfirmationData().setNotBefore(Instant.now().minus(60, ChronoUnit.MINUTES));
- subjectConfirmation.getSubjectConfirmationData().setNotOnOrAfter(Instant.now().minus(30, ChronoUnit.MINUTES));
+ getSubjectConfirmationData().setNotBefore(Instant.now().minus(60, ChronoUnit.MINUTES));
+ getSubjectConfirmationData().setNotOnOrAfter(Instant.now().minus(30, ChronoUnit.MINUTES));
ValidationContext validationContext = new ValidationContext(buildBasicStaticParameters());
@@ -274,7 +275,7 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
@Test
public void testNoNotOnOrAfter() throws AssertionValidationException {
- subjectConfirmation.getSubjectConfirmationData().setNotOnOrAfter(null);
+ getSubjectConfirmationData().setNotOnOrAfter(null);
ValidationContext validationContext = new ValidationContext(buildBasicStaticParameters());
@@ -284,7 +285,7 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
@Test
public void testNoNotOnOrAfterAndRequired() throws AssertionValidationException {
- subjectConfirmation.getSubjectConfirmationData().setNotOnOrAfter(null);
+ getSubjectConfirmationData().setNotOnOrAfter(null);
Map<String,Object> staticParams = buildBasicStaticParameters();
staticParams.put(SAML2AssertionValidationParameters.SC_NOT_ON_OR_AFTER_REQUIRED, Boolean.TRUE);
@@ -308,7 +309,7 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
@Test
public void testInvalidInResponseTo() throws AssertionValidationException {
- subjectConfirmation.getSubjectConfirmationData().setInResponseTo("invalid");
+ getSubjectConfirmationData().setInResponseTo("invalid");
ValidationContext validationContext = new ValidationContext(buildBasicStaticParameters());
@@ -341,7 +342,7 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
@Test
public void testNoInResponseTo() throws AssertionValidationException {
- subjectConfirmation.getSubjectConfirmationData().setInResponseTo(null);
+ getSubjectConfirmationData().setInResponseTo(null);
ValidationContext validationContext = new ValidationContext(buildBasicStaticParameters());
@@ -351,7 +352,7 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
@Test
public void testNoInResponseToAndRequired() throws AssertionValidationException {
- subjectConfirmation.getSubjectConfirmationData().setInResponseTo(null);
+ getSubjectConfirmationData().setInResponseTo(null);
Map<String,Object> staticParams = buildBasicStaticParameters();
staticParams.put(SAML2AssertionValidationParameters.SC_IN_RESPONSE_TO_REQUIRED, Boolean.TRUE);
@@ -373,10 +374,10 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
ValidationResult.INVALID);
}
-
-
-
-
+ @Nonnull private SubjectConfirmationData getSubjectConfirmationData() {
+ return Constraint.isNotNull(subjectConfirmation.getSubjectConfirmationData(), "Conf data was null");
+ }
+
// Mock concrete class for testing
public static class MockSubjectConfirmationValidator extends AbstractSubjectConfirmationValidator {
@@ -394,4 +395,4 @@ public class AbstractSubjectConfirmationValidatorTest extends BaseAssertionValid
}
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/AudienceRestrictionConditionValidatorTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/AudienceRestrictionConditionValidatorTest.java
index 7f8b9c06f..ee53b8320 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/AudienceRestrictionConditionValidatorTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/AudienceRestrictionConditionValidatorTest.java
@@ -33,9 +33,7 @@ import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-/**
- *
- */
+ at SuppressWarnings("javadoc")
public class AudienceRestrictionConditionValidatorTest extends BaseAssertionValidationTest {
private String expectedAudienceURI = "https://sp.example.com";
@@ -53,7 +51,7 @@ public class AudienceRestrictionConditionValidatorTest extends BaseAssertionVali
audience.setURI(expectedAudienceURI);
condition = buildXMLObject(AudienceRestriction.DEFAULT_ELEMENT_NAME);
((AudienceRestriction)condition).getAudiences().add(audience);
- getAssertion().getConditions().getConditions().add(condition);
+ getConditions().getConditions().add(condition);
}
@Test
@@ -106,7 +104,7 @@ public class AudienceRestrictionConditionValidatorTest extends BaseAssertionVali
@Test
public void testUnexpectedCondition() throws AssertionValidationException {
condition = buildXMLObject(OneTimeUse.DEFAULT_ELEMENT_NAME);
- getAssertion().getConditions().getConditions().add(condition);
+ getConditions().getConditions().add(condition);
Map<String,Object> staticParams = buildBasicStaticParameters();
staticParams.put(SAML2AssertionValidationParameters.COND_VALID_AUDIENCES, Collections.singleton(expectedAudienceURI));
@@ -118,4 +116,4 @@ public class AudienceRestrictionConditionValidatorTest extends BaseAssertionVali
}
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/AuthnStatementValidatorTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/AuthnStatementValidatorTest.java
index a30c9c66d..aeb49d0a1 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/AuthnStatementValidatorTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/AuthnStatementValidatorTest.java
@@ -21,6 +21,8 @@ import java.time.Duration;
import java.time.Instant;
import java.util.Map;
+import javax.annotation.Nonnull;
+
import org.opensaml.saml.common.assertion.AssertionValidationException;
import org.opensaml.saml.common.assertion.ValidationContext;
import org.opensaml.saml.common.assertion.ValidationResult;
@@ -29,11 +31,16 @@ import org.opensaml.saml.saml2.assertion.tests.BaseAssertionValidationTest;
import org.opensaml.saml.saml2.core.Assertion;
import org.opensaml.saml.saml2.core.AttributeStatement;
import org.opensaml.saml.saml2.core.AuthnContext;
+import org.opensaml.saml.saml2.core.AuthnContextClassRef;
import org.opensaml.saml.saml2.core.AuthnStatement;
+import org.opensaml.saml.saml2.core.SubjectLocality;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
+import net.shibboleth.shared.logic.Constraint;
+
+ at SuppressWarnings("javadoc")
public class AuthnStatementValidatorTest extends BaseAssertionValidationTest {
private AuthnStatementValidator validator;
@@ -89,7 +96,7 @@ public class AuthnStatementValidatorTest extends BaseAssertionValidationTest {
@Test
public void testInvalidAddress() throws AssertionValidationException {
- authnStatement.getSubjectLocality().setAddress("1.2.3.4");
+ getSubjectLocality().setAddress("1.2.3.4");
ValidationContext validationContext = new ValidationContext(buildBasicStaticParameters());
@@ -99,7 +106,7 @@ public class AuthnStatementValidatorTest extends BaseAssertionValidationTest {
@Test
public void testInvalidAddressWithAddressCheckDisabled() throws AssertionValidationException {
- authnStatement.getSubjectLocality().setAddress("1.2.3.4");
+ getSubjectLocality().setAddress("1.2.3.4");
Map<String,Object> staticParams = buildBasicStaticParameters();
staticParams.put(SAML2AssertionValidationParameters.STMT_AUTHN_CHECK_ADDRESS, Boolean.FALSE);
@@ -134,7 +141,7 @@ public class AuthnStatementValidatorTest extends BaseAssertionValidationTest {
@Test
public void testNoAddress() throws AssertionValidationException {
- authnStatement.getSubjectLocality().setAddress(null);
+ getSubjectLocality().setAddress(null);
ValidationContext validationContext = new ValidationContext(buildBasicStaticParameters());
@@ -157,10 +164,17 @@ public class AuthnStatementValidatorTest extends BaseAssertionValidationTest {
// Just testing that if a subclass overrides this method, it gets processed.
validator = new AuthnStatementValidator() {
/** {@inheritDoc} */
- protected ValidationResult validateAuthnContext(AuthnStatement statement, Assertion assertion,
- ValidationContext context) throws AssertionValidationException {
- return AuthnContext.SMARTCARD_AUTHN_CTX.equals(statement.getAuthnContext().getAuthnContextClassRef().getURI())
- ? ValidationResult.VALID : ValidationResult.INVALID;
+ @Nonnull protected ValidationResult validateAuthnContext(@Nonnull final AuthnStatement statement,
+ @Nonnull final Assertion assertion, @Nonnull final ValidationContext context) throws AssertionValidationException {
+ final AuthnContext ac = statement.getAuthnContext();
+ if (ac != null) {
+ final AuthnContextClassRef acRef = ac.getAuthnContextClassRef();
+ if (acRef != null) {
+ return AuthnContext.SMARTCARD_AUTHN_CTX.equals(acRef.getURI())
+ ? ValidationResult.VALID : ValidationResult.INVALID;
+ }
+ }
+ return ValidationResult.INVALID;
}
};
@@ -174,8 +188,9 @@ public class AuthnStatementValidatorTest extends BaseAssertionValidationTest {
public void testValidationThrows() throws AssertionValidationException {
validator = new AuthnStatementValidator() {
/** {@inheritDoc} */
- protected ValidationResult validateAuthnInstant(AuthnStatement statement, Assertion assertion,
- ValidationContext context) throws AssertionValidationException {
+ @Nonnull protected ValidationResult validateAuthnInstant(@Nonnull final AuthnStatement statement,
+ @Nonnull final Assertion assertion, @Nonnull final ValidationContext context)
+ throws AssertionValidationException {
throw new RuntimeException();
}
};
@@ -193,6 +208,9 @@ public class AuthnStatementValidatorTest extends BaseAssertionValidationTest {
Assert.assertEquals(validator.validate(buildXMLObject(AttributeStatement.DEFAULT_ELEMENT_NAME), getAssertion(), validationContext),
ValidationResult.INDETERMINATE);
}
-
+
+ @Nonnull private SubjectLocality getSubjectLocality() {
+ return Constraint.isNotNull(authnStatement.getSubjectLocality(), "SubjectLocality was null");
+ }
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/BearerSubjectConfirmationValidatorTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/BearerSubjectConfirmationValidatorTest.java
index 99f6f61c5..14788905c 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/BearerSubjectConfirmationValidatorTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/BearerSubjectConfirmationValidatorTest.java
@@ -26,6 +26,7 @@ import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
+ at SuppressWarnings("javadoc")
public class BearerSubjectConfirmationValidatorTest extends BaseAssertionValidationTest {
private BearerSubjectConfirmationValidator validator;
@@ -35,7 +36,7 @@ public class BearerSubjectConfirmationValidatorTest extends BaseAssertionValidat
@BeforeMethod(dependsOnMethods="setUpBasicAssertion")
public void setUp() {
validator = new BearerSubjectConfirmationValidator();
- subjectConfirmation = getAssertion().getSubject().getSubjectConfirmations().get(0);
+ subjectConfirmation = getSubject().getSubjectConfirmations().get(0);
}
@Test
@@ -58,4 +59,4 @@ public class BearerSubjectConfirmationValidatorTest extends BaseAssertionValidat
ValidationResult.INDETERMINATE);
}
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/DelegationRestrictionConditionValidatorTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/DelegationRestrictionConditionValidatorTest.java
index 2214c7ac1..a417b157c 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/DelegationRestrictionConditionValidatorTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/DelegationRestrictionConditionValidatorTest.java
@@ -28,9 +28,7 @@ import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-/**
- *
- */
+ at SuppressWarnings("javadoc")
public class DelegationRestrictionConditionValidatorTest extends BaseAssertionValidationTest {
private DelegationRestrictionConditionValidator validator;
@@ -41,7 +39,7 @@ public class DelegationRestrictionConditionValidatorTest extends BaseAssertionVa
public void setUp() {
validator = new DelegationRestrictionConditionValidator();
condition = (Condition) getBuilder(DelegationRestrictionType.TYPE_NAME).buildObject(Condition.DEFAULT_ELEMENT_NAME, DelegationRestrictionType.TYPE_NAME);
- getAssertion().getConditions().getConditions().add(condition);
+ getConditions().getConditions().add(condition);
}
@Test
@@ -55,7 +53,7 @@ public class DelegationRestrictionConditionValidatorTest extends BaseAssertionVa
@Test
public void testUnexpected() throws AssertionValidationException {
condition = buildXMLObject(OneTimeUse.DEFAULT_ELEMENT_NAME);
- getAssertion().getConditions().getConditions().add(condition);
+ getConditions().getConditions().add(condition);
ValidationContext validationContext = new ValidationContext(buildBasicStaticParameters());
@@ -63,4 +61,4 @@ public class DelegationRestrictionConditionValidatorTest extends BaseAssertionVa
ValidationResult.INDETERMINATE);
}
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/HolderOfKeySubjectConfirmationValidatorTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/HolderOfKeySubjectConfirmationValidatorTest.java
index 2c9d8f555..49a145e93 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/HolderOfKeySubjectConfirmationValidatorTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/HolderOfKeySubjectConfirmationValidatorTest.java
@@ -44,9 +44,7 @@ import org.testng.annotations.Test;
import net.shibboleth.shared.codec.EncodingException;
-/**
- *
- */
+ at SuppressWarnings("javadoc")
public class HolderOfKeySubjectConfirmationValidatorTest extends BaseAssertionValidationTest {
private HolderOfKeySubjectConfirmationValidator validator;
@@ -73,12 +71,12 @@ public class HolderOfKeySubjectConfirmationValidatorTest extends BaseAssertionVa
protected void setUp() throws NoSuchAlgorithmException, NoSuchProviderException {
validator = new HolderOfKeySubjectConfirmationValidator();
- subjectConfirmation = getAssertion().getSubject().getSubjectConfirmations().get(0);
+ subjectConfirmation = getSubject().getSubjectConfirmations().get(0);
subjectConfirmation.setMethod(SubjectConfirmation.METHOD_HOLDER_OF_KEY);
subjectConfirmationData = buildBasicSubjectConfirmationData(KeyInfoConfirmationDataType.TYPE_NAME);
- subjectConfirmation.setSubjectConfirmationData(subjectConfirmationData);
keyInfo = buildXMLObject(KeyInfo.DEFAULT_ELEMENT_NAME);
- ((KeyInfoConfirmationDataType)subjectConfirmation.getSubjectConfirmationData()).getKeyInfos().add(keyInfo);
+ ((KeyInfoConfirmationDataType)subjectConfirmationData).getKeyInfos().add(keyInfo);
+ subjectConfirmation.setSubjectConfirmationData(subjectConfirmationData);
}
@Test
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/OneTimeUseConditionValidatorTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/OneTimeUseConditionValidatorTest.java
index 42ccecf20..0770e5726 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/OneTimeUseConditionValidatorTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/OneTimeUseConditionValidatorTest.java
@@ -42,6 +42,7 @@ import org.testng.annotations.Test;
/**
* Unit test for {@link OneTimeUseConditionValidator}.
*/
+ at SuppressWarnings("javadoc")
public class OneTimeUseConditionValidatorTest extends BaseAssertionValidationTest {
private MemoryStorageService storageService;
@@ -64,7 +65,7 @@ public class OneTimeUseConditionValidatorTest extends BaseAssertionValidationTes
validator = new OneTimeUseConditionValidator(replayCache, null);
condition = buildXMLObject(OneTimeUse.DEFAULT_ELEMENT_NAME);
- getAssertion().getConditions().getConditions().add(condition);
+ getConditions().getConditions().add(condition);
}
@AfterMethod
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/ProxyRestrictionConditionValidatorTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/ProxyRestrictionConditionValidatorTest.java
index d2edb85f2..6d650222a 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/ProxyRestrictionConditionValidatorTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/ProxyRestrictionConditionValidatorTest.java
@@ -28,6 +28,7 @@ import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
+ at SuppressWarnings("javadoc")
public class ProxyRestrictionConditionValidatorTest extends BaseAssertionValidationTest {
private ProxyRestrictionConditionValidator validator;
@@ -38,7 +39,7 @@ public class ProxyRestrictionConditionValidatorTest extends BaseAssertionValidat
public void setUp() {
validator = new ProxyRestrictionConditionValidator();
condition = (Condition) buildXMLObject(ProxyRestriction.DEFAULT_ELEMENT_NAME);
- getAssertion().getConditions().getConditions().add(condition);
+ getConditions().getConditions().add(condition);
}
@Test
@@ -52,7 +53,7 @@ public class ProxyRestrictionConditionValidatorTest extends BaseAssertionValidat
@Test
public void testUnexpected() throws AssertionValidationException {
condition = buildXMLObject(OneTimeUse.DEFAULT_ELEMENT_NAME);
- getAssertion().getConditions().getConditions().add(condition);
+ getConditions().getConditions().add(condition);
ValidationContext validationContext = new ValidationContext(buildBasicStaticParameters());
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/SenderVouchesSubjectConfirmationValidatorTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/SenderVouchesSubjectConfirmationValidatorTest.java
index 00a9da82a..2e5bbeb5d 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/SenderVouchesSubjectConfirmationValidatorTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/impl/SenderVouchesSubjectConfirmationValidatorTest.java
@@ -26,6 +26,7 @@ import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
+ at SuppressWarnings("javadoc")
public class SenderVouchesSubjectConfirmationValidatorTest extends BaseAssertionValidationTest {
private SenderVouchersSubjectConfirmationValidator validator;
@@ -35,7 +36,7 @@ public class SenderVouchesSubjectConfirmationValidatorTest extends BaseAssertion
@BeforeMethod(dependsOnMethods="setUpBasicAssertion")
public void setUp() {
validator = new SenderVouchersSubjectConfirmationValidator();
- subjectConfirmation = getAssertion().getSubject().getSubjectConfirmations().get(0);
+ subjectConfirmation = getSubject().getSubjectConfirmations().get(0);
}
@Test
@@ -58,4 +59,4 @@ public class SenderVouchesSubjectConfirmationValidatorTest extends BaseAssertion
ValidationResult.INDETERMINATE);
}
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/tests/BaseAssertionValidationTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/tests/BaseAssertionValidationTest.java
index 0230d7222..426b4ddde 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/tests/BaseAssertionValidationTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/assertion/tests/BaseAssertionValidationTest.java
@@ -114,7 +114,7 @@ public class BaseAssertionValidationTest extends XMLObjectBaseTestCase {
assertion.setSubject(subject);
assertion.setConditions(buildBasicConditions());
- SubjectConfirmation subjectConfirmation = buildXMLObject(SubjectConfirmation.DEFAULT_ELEMENT_NAME);
+ final SubjectConfirmation subjectConfirmation = buildXMLObject(SubjectConfirmation.DEFAULT_ELEMENT_NAME);
// Default to bearer with basic valid confirmation data, but the test can change as appropriate
subjectConfirmation.setMethod(SubjectConfirmation.METHOD_BEARER);
subjectConfirmation.setSubjectConfirmationData(buildBasicSubjectConfirmationData());
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandlerTest.java
index af25cc757..07adfd0f1 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsExtensionsHandlerTest.java
@@ -41,12 +41,17 @@ public class ExtractChannelBindingsExtensionsHandlerTest extends OpenSAMLInitBas
private ExtractChannelBindingsExtensionsHandler handler;
+ /**
+ * Test set up.
+ *
+ * @throws ComponentInitializationException
+ */
@BeforeMethod public void setUp() throws ComponentInitializationException {
handler = new ExtractChannelBindingsExtensionsHandler();
handler.initialize();
messageCtx = new MessageContext();
- messageCtx.getSubcontext(SAMLBindingContext.class, true).setHasBindingSignature(true);
+ messageCtx.ensureSubcontext(SAMLBindingContext.class).setHasBindingSignature(true);
}
/**
@@ -86,7 +91,7 @@ public class ExtractChannelBindingsExtensionsHandlerTest extends OpenSAMLInitBas
Extensions.DEFAULT_ELEMENT_NAME).buildObject(Extensions.DEFAULT_ELEMENT_NAME);
messageCtx.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
- ((AuthnRequest) messageCtx.getMessage()).setExtensions(ext);
+ ((AuthnRequest) messageCtx.ensureMessage()).setExtensions(ext);
final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
ChannelBindings.DEFAULT_ELEMENT_NAME).buildObject(ChannelBindings.DEFAULT_ELEMENT_NAME);
@@ -98,7 +103,7 @@ public class ExtractChannelBindingsExtensionsHandlerTest extends OpenSAMLInitBas
cb2.setValue("bar");
ext.getUnknownXMLObjects().add(cb2);
- messageCtx.getSubcontext(SAMLBindingContext.class).setHasBindingSignature(false);
+ messageCtx.ensureSubcontext(SAMLBindingContext.class).setHasBindingSignature(false);
handler.invoke(messageCtx);
final ChannelBindingsContext cbCtx = messageCtx.getSubcontext(ChannelBindingsContext.class);
@@ -115,7 +120,7 @@ public class ExtractChannelBindingsExtensionsHandlerTest extends OpenSAMLInitBas
Extensions.DEFAULT_ELEMENT_NAME).buildObject(Extensions.DEFAULT_ELEMENT_NAME);
messageCtx.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
- ((AuthnRequest) messageCtx.getMessage()).setExtensions(ext);
+ ((AuthnRequest) messageCtx.ensureMessage()).setExtensions(ext);
final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
ChannelBindings.DEFAULT_ELEMENT_NAME).buildObject(ChannelBindings.DEFAULT_ELEMENT_NAME);
@@ -129,7 +134,7 @@ public class ExtractChannelBindingsExtensionsHandlerTest extends OpenSAMLInitBas
handler.invoke(messageCtx);
final ChannelBindingsContext cbCtx = messageCtx.getSubcontext(ChannelBindingsContext.class);
- Assert.assertNotNull(cbCtx);
+ assert cbCtx != null;
Assert.assertEquals(cbCtx.getChannelBindings().size(), 2);
final ChannelBindings[] array = cbCtx.getChannelBindings().toArray(new ChannelBindings[2]);
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsHeadersHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsHeadersHandlerTest.java
index 784631936..b717b517c 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsHeadersHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/ExtractChannelBindingsHeadersHandlerTest.java
@@ -66,13 +66,13 @@ public class ExtractChannelBindingsHeadersHandlerTest extends OpenSAMLInitBaseTe
final MessageContext messageCtx = new MessageContext();
messageCtx.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
- messageCtx.getSubcontext(SOAP11Context.class, true).setEnvelope(env);
+ messageCtx.ensureSubcontext(SOAP11Context.class).setEnvelope(env);
final ExtractChannelBindingsHeadersHandler handler = new ExtractChannelBindingsHeadersHandler();
handler.initialize();
handler.invoke(messageCtx);
- final ChannelBindingsContext cbCtx = messageCtx.getSubcontext(SOAP11Context.class).getSubcontext(
+ final ChannelBindingsContext cbCtx = messageCtx.ensureSubcontext(SOAP11Context.class).getSubcontext(
ChannelBindingsContext.class);
Assert.assertNull(cbCtx);
}
@@ -89,7 +89,7 @@ public class ExtractChannelBindingsHeadersHandlerTest extends OpenSAMLInitBaseTe
final MessageContext messageCtx = new MessageContext();
messageCtx.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
- messageCtx.getSubcontext(SOAP11Context.class, true).setEnvelope(env);
+ messageCtx.ensureSubcontext(SOAP11Context.class).setEnvelope(env);
final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
ChannelBindings.DEFAULT_ELEMENT_NAME).buildObject(ChannelBindings.DEFAULT_ELEMENT_NAME);
@@ -107,9 +107,9 @@ public class ExtractChannelBindingsHeadersHandlerTest extends OpenSAMLInitBaseTe
handler.initialize();
handler.invoke(messageCtx);
- final ChannelBindingsContext cbCtx = messageCtx.getSubcontext(SOAP11Context.class).getSubcontext(
+ final ChannelBindingsContext cbCtx = messageCtx.ensureSubcontext(SOAP11Context.class).getSubcontext(
ChannelBindingsContext.class);
- Assert.assertNotNull(cbCtx);
+ assert cbCtx != null;
Assert.assertEquals(cbCtx.getChannelBindings().size(), 2);
final ChannelBindings[] array = cbCtx.getChannelBindings().toArray(new ChannelBindings[2]);
@@ -129,7 +129,7 @@ public class ExtractChannelBindingsHeadersHandlerTest extends OpenSAMLInitBaseTe
final MessageContext messageCtx = new MessageContext();
messageCtx.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
- messageCtx.getSubcontext(SOAP11Context.class, true).setEnvelope(env);
+ messageCtx.ensureSubcontext(SOAP11Context.class).setEnvelope(env);
final ChannelBindings cb = XMLObjectProviderRegistrySupport.getBuilderFactory().<ChannelBindings>ensureBuilder(
ChannelBindings.DEFAULT_ELEMENT_NAME).buildObject(ChannelBindings.DEFAULT_ELEMENT_NAME);
@@ -148,9 +148,9 @@ public class ExtractChannelBindingsHeadersHandlerTest extends OpenSAMLInitBaseTe
handler.initialize();
handler.invoke(messageCtx);
- final ChannelBindingsContext cbCtx = messageCtx.getSubcontext(SOAP11Context.class).getSubcontext(
+ final ChannelBindingsContext cbCtx = messageCtx.ensureSubcontext(SOAP11Context.class).getSubcontext(
ChannelBindingsContext.class);
- Assert.assertNotNull(cbCtx);
+ assert cbCtx != null;
Assert.assertEquals(cbCtx.getChannelBindings().size(), 1);
final ChannelBindings[] array = cbCtx.getChannelBindings().toArray(new ChannelBindings[2]);
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2AuthnRequestsSignedSecurityHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2AuthnRequestsSignedSecurityHandlerTest.java
index 8e88c952e..45241c7fa 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2AuthnRequestsSignedSecurityHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2AuthnRequestsSignedSecurityHandlerTest.java
@@ -42,6 +42,11 @@ public class SAML2AuthnRequestsSignedSecurityHandlerTest extends XMLObjectBaseTe
private SPSSODescriptor spssoDescriptor;
+ /**
+ * Test set up.
+ *
+ * @throws Exception
+ */
@BeforeMethod
protected void setUp() throws Exception {
handler = new SAML2AuthnRequestsSignedSecurityHandler();
@@ -51,9 +56,9 @@ public class SAML2AuthnRequestsSignedSecurityHandlerTest extends XMLObjectBaseTe
spssoDescriptor.setAuthnRequestsSigned(false);
messageContext = new MessageContext();
- messageContext.getSubcontext(SAMLPeerEntityContext.class, true).setEntityId(issuer);
- messageContext.getSubcontext(SAMLPeerEntityContext.class, true)
- .getSubcontext(SAMLMetadataContext.class, true).setRoleDescriptor(spssoDescriptor);
+ messageContext.ensureSubcontext(SAMLPeerEntityContext.class).setEntityId(issuer);
+ messageContext.ensureSubcontext(SAMLPeerEntityContext.class)
+ .ensureSubcontext(SAMLMetadataContext.class).setRoleDescriptor(spssoDescriptor);
}
/**
@@ -130,7 +135,7 @@ public class SAML2AuthnRequestsSignedSecurityHandlerTest extends XMLObjectBaseTe
spssoDescriptor.setAuthnRequestsSigned(true);
- messageContext.getSubcontext(SAMLBindingContext.class, true).setHasBindingSignature(true);
+ messageContext.ensureSubcontext(SAMLBindingContext.class).setHasBindingSignature(true);
handler.invoke(messageContext);
}
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandlerTest.java
index f1d862ca5..42fa63d33 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandlerTest.java
@@ -230,10 +230,10 @@ public class SAML2HTTPPostSimpleSignSecurityHandlerTest extends XMLObjectBaseTes
messageContext = new MessageContext();
messageContext.setMessage(buildInboundSAMLMessage());
- messageContext.getSubcontext(SAMLPeerEntityContext.class, true).setEntityId(issuer);
- messageContext.getSubcontext(SAMLPeerEntityContext.class, true).setRole(SPSSODescriptor.DEFAULT_ELEMENT_NAME);
- messageContext.getSubcontext(SAMLProtocolContext.class, true).setProtocol(SAMLConstants.SAML20P_NS);
- messageContext.getSubcontext(SecurityParametersContext.class, true).setSignatureValidationParameters(sigValParams);
+ messageContext.ensureSubcontext(SAMLPeerEntityContext.class).setEntityId(issuer);
+ messageContext.ensureSubcontext(SAMLPeerEntityContext.class).setRole(SPSSODescriptor.DEFAULT_ELEMENT_NAME);
+ messageContext.ensureSubcontext(SAMLProtocolContext.class).setProtocol(SAMLConstants.SAML20P_NS);
+ messageContext.ensureSubcontext(SecurityParametersContext.class).setSignatureValidationParameters(sigValParams);
}
/**
@@ -247,10 +247,10 @@ public class SAML2HTTPPostSimpleSignSecurityHandlerTest extends XMLObjectBaseTes
handler.invoke(messageContext);
- Assert.assertEquals(messageContext.getSubcontext(SAMLPeerEntityContext.class, true).getEntityId(), issuer,
+ Assert.assertEquals(messageContext.ensureSubcontext(SAMLPeerEntityContext.class).getEntityId(), issuer,
"Unexpected value for Issuer found");
//TODO before this was evaling isInboundSAMLMessageAuthenticated
- Assert.assertTrue(messageContext.getSubcontext(SAMLPeerEntityContext.class, true).isAuthenticated(),
+ Assert.assertTrue(messageContext.ensureSubcontext(SAMLPeerEntityContext.class).isAuthenticated(),
"Unexpected value for context authentication state");
}
@@ -356,10 +356,10 @@ public class SAML2HTTPPostSimpleSignSecurityHandlerTest extends XMLObjectBaseTes
handler.invoke(messageContext);
- Assert.assertEquals(messageContext.getSubcontext(SAMLPeerEntityContext.class, true).getEntityId(), issuer,
+ Assert.assertEquals(messageContext.ensureSubcontext(SAMLPeerEntityContext.class).getEntityId(), issuer,
"Unexpected value for Issuer found");
//TODO before this was evaling isInboundSAMLMessageAuthenticated
- Assert.assertTrue(messageContext.getSubcontext(SAMLPeerEntityContext.class, true).isAuthenticated(),
+ Assert.assertTrue(messageContext.ensureSubcontext(SAMLPeerEntityContext.class).isAuthenticated(),
"Unexpected value for context authentication state");
}
@@ -406,13 +406,13 @@ public class SAML2HTTPPostSimpleSignSecurityHandlerTest extends XMLObjectBaseTes
final MessageContext mc = new MessageContext();
mc.setMessage(buildInboundSAMLMessage());
SAMLBindingSupport.setRelayState(mc, expectedRelayValue);
- mc.getSubcontext(SAMLPeerEntityContext.class, true)
- .getSubcontext(SAMLEndpointContext.class, true).setEndpoint(samlEndpoint);
+ mc.ensureSubcontext(SAMLPeerEntityContext.class)
+ .ensureSubcontext(SAMLEndpointContext.class).setEndpoint(samlEndpoint);
final SignatureSigningParameters signingParameters = new SignatureSigningParameters();
signingParameters.setSigningCredential(signingX509Cred);
signingParameters.setSignatureAlgorithm(SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA1);
- mc.getSubcontext(SecurityParametersContext.class, true).setSignatureSigningParameters(signingParameters);
+ mc.ensureSubcontext(SecurityParametersContext.class).setSignatureSigningParameters(signingParameters);
final MockHttpServletResponse response = new MockHttpServletResponse();
@@ -484,13 +484,18 @@ public class SAML2HTTPPostSimpleSignSecurityHandlerTest extends XMLObjectBaseTes
Element current = doc.getDocumentElement();
// head
current = ElementSupport.getFirstChildElement(current);
+ assert current != null;
// body
current = ElementSupport.getNextSiblingElement(current);
+ assert current != null;
// form
current = ElementSupport.getFirstChildElement(current);
+ assert current != null;
current = ElementSupport.getNextSiblingElement(current);
+ assert current != null;
// div
current = ElementSupport.getFirstChildElement(current);
+ assert current != null;
// list of form input fields
List<Element> inputs =
ElementSupport.getChildElementsByTagNameNS(current, null, "input");
@@ -502,4 +507,4 @@ public class SAML2HTTPPostSimpleSignSecurityHandlerTest extends XMLObjectBaseTes
}
}
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest.java
index f96ad6979..7a635bb9c 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest.java
@@ -209,10 +209,10 @@ public class SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest extends XMLObj
messageContext = new MessageContext();
messageContext.setMessage(buildInboundSAMLMessage());
- messageContext.getSubcontext(SAMLPeerEntityContext.class, true).setEntityId(issuer);
- messageContext.getSubcontext(SAMLPeerEntityContext.class, true).setRole(SPSSODescriptor.DEFAULT_ELEMENT_NAME);
- messageContext.getSubcontext(SAMLProtocolContext.class, true).setProtocol(SAMLConstants.SAML20P_NS);
- messageContext.getSubcontext(SecurityParametersContext.class, true).setSignatureValidationParameters(sigValParams);
+ messageContext.ensureSubcontext(SAMLPeerEntityContext.class).setEntityId(issuer);
+ messageContext.ensureSubcontext(SAMLPeerEntityContext.class).setRole(SPSSODescriptor.DEFAULT_ELEMENT_NAME);
+ messageContext.ensureSubcontext(SAMLProtocolContext.class).setProtocol(SAMLConstants.SAML20P_NS);
+ messageContext.ensureSubcontext(SecurityParametersContext.class).setSignatureValidationParameters(sigValParams);
}
/**
@@ -226,10 +226,10 @@ public class SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest extends XMLObj
handler.invoke(messageContext);
- Assert.assertEquals(messageContext.getSubcontext(SAMLPeerEntityContext.class, true).getEntityId(), issuer,
+ Assert.assertEquals(messageContext.ensureSubcontext(SAMLPeerEntityContext.class).getEntityId(), issuer,
"Unexpected value for Issuer found");
//TODO before this was evaling isInboundSAMLMessageAuthenticated
- Assert.assertTrue(messageContext.getSubcontext(SAMLPeerEntityContext.class, true).isAuthenticated(),
+ Assert.assertTrue(messageContext.ensureSubcontext(SAMLPeerEntityContext.class).isAuthenticated(),
"Unexpected value for context authentication state");
}
@@ -268,7 +268,8 @@ public class SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest extends XMLObj
final MockHttpServletRequest request = (MockHttpServletRequest) handler.getHttpServletRequest();
final String queryString = request.getQueryString();
- request.setQueryString( queryString.replaceFirst("RelayState=", "RelayState=AlteredData") );
+ assert queryString != null;
+ request.setQueryString(queryString.replaceFirst("RelayState=", "RelayState=AlteredData"));
// Really only the query string is necessary to cause failure, but just to be safe...
request.setParameter("RelayState", "AlteredData" + request.getParameter("RelayState") );
@@ -307,23 +308,23 @@ public class SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest extends XMLObj
//
// Encode the "outbound" message context, with simple signature
//
- SAMLObjectBuilder<AssertionConsumerService> endpointBuilder =
+ final SAMLObjectBuilder<AssertionConsumerService> endpointBuilder =
(SAMLObjectBuilder<AssertionConsumerService>) builderFactory.<AssertionConsumerService>ensureBuilder(
AssertionConsumerService.DEFAULT_ELEMENT_NAME);
- AssertionConsumerService samlEndpoint = endpointBuilder.buildObject();
+ final AssertionConsumerService samlEndpoint = endpointBuilder.buildObject();
samlEndpoint.setLocation("http://example.org");
samlEndpoint.setResponseLocation("http://example.org/response");
final MessageContext mc = new MessageContext();
mc.setMessage(buildInboundSAMLMessage());
SAMLBindingSupport.setRelayState(mc, expectedRelayValue);
- mc.getSubcontext(SAMLPeerEntityContext.class, true)
- .getSubcontext(SAMLEndpointContext.class, true).setEndpoint(samlEndpoint);
+ mc.ensureSubcontext(SAMLPeerEntityContext.class)
+ .ensureSubcontext(SAMLEndpointContext.class).setEndpoint(samlEndpoint);
final SignatureSigningParameters signingParameters = new SignatureSigningParameters();
signingParameters.setSigningCredential(signingX509Cred);
signingParameters.setSignatureAlgorithm(SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA1);
- mc.getSubcontext(SecurityParametersContext.class, true).setSignatureSigningParameters(signingParameters);
+ mc.ensureSubcontext(SecurityParametersContext.class).setSignatureSigningParameters(signingParameters);
final MockHttpServletResponse response = new MockHttpServletResponse();
@@ -353,13 +354,20 @@ public class SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest extends XMLObj
// so have to set them both ways.
URLBuilder urlBuilder = null;
try {
- urlBuilder = new URLBuilder(response.getRedirectedUrl());
- } catch (MalformedURLException e) {
+ final String url = response.getRedirectedUrl();
+ assert url != null;
+ urlBuilder = new URLBuilder(url);
+ } catch (final MalformedURLException e) {
Assert.fail("Could not parse redirect url: " + response.getRedirectedUrl());
}
+ assert urlBuilder != null;
request.setQueryString(urlBuilder.buildQueryString());
- for (Pair<String, String> param : urlBuilder.getQueryParams()) {
- request.setParameter(param.getFirst(), param.getSecond());
+ for (final Pair<String, String> param : urlBuilder.getQueryParams()) {
+ final String one = param.getFirst();
+ final String two = param.getSecond();
+ if (one != null && two != null) {
+ request.setParameter(one, two);
+ }
}
return request;
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list