[java-opensaml] branch main updated: IDP-2069 - Null Handling Task
Scott Cantor
cantor.2 at osu.edu
Mon Apr 17 15:10:18 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=2bd5abcd91344a3ad026b7b12704bbfa5929ad46
The following commit(s) were added to refs/heads/main by this push:
new 2bd5abcd9 IDP-2069 - Null Handling Task
2bd5abcd9 is described below
commit 2bd5abcd91344a3ad026b7b12704bbfa5929ad46
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Apr 17 11:10:14 2023 -0400
IDP-2069 - Null Handling Task
https://shibboleth.atlassian.net/browse/IDP-2069
Clean up SAML 1 profile actions.
---
.../opensaml/messaging/context/MessageContext.java | 16 ++++
.../impl/AddDoNotCacheConditionToAssertions.java | 14 +++-
.../profile/impl/AddNameIdentifierToSubjects.java | 19 ++---
.../saml/saml1/profile/impl/AddResponseShell.java | 8 +-
.../saml1/profile/impl/AddStatusToResponse.java | 38 +++++----
.../impl/AddSubjectConfirmationToSubjects.java | 29 ++++---
.../impl/CopyNameIdentifierFromRequest.java | 22 ++++--
.../saml/saml1/profile/impl/ResolveArtifacts.java | 34 +++++---
.../AbstractSAML1NameIdentifierGeneratorTest.java | 12 +--
.../AddDoNotCacheConditionToAssertionsTest.java | 30 ++++---
.../impl/AddNameIdentifierToSubjectsTest.java | 77 +++++++++---------
.../saml1/profile/impl/AddResponseShellTest.java | 13 ++-
.../profile/impl/AddStatusToResponseTest.java | 43 +++++-----
.../impl/AddSubjectConfirmationToSubjectsTest.java | 92 +++++++++++-----------
.../impl/CopyNameIdentifierFromRequestTest.java | 35 ++++----
.../saml1/profile/impl/ResolveArtifactsTest.java | 33 ++++----
16 files changed, 297 insertions(+), 218 deletions(-)
diff --git a/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/MessageContext.java b/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/MessageContext.java
index ad5a5ba73..77db5ff84 100644
--- a/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/MessageContext.java
+++ b/opensaml-messaging-api/src/main/java/org/opensaml/messaging/context/MessageContext.java
@@ -59,6 +59,22 @@ public final class MessageContext extends BaseContext {
@Nonnull public Object ensureMessage() {
return Constraint.isNotNull(msg, "Message was null");
}
+
+ /**
+ * Get the message represented by the message context, raising a {@link ConstraintViolationException}
+ * or {@link ClassCastException} if the message is absent or of the incorrect type.
+ *
+ * @param <T> type of message
+ * @param claz class of message type
+ *
+ * @return properly typed message
+ *
+ * @since 5.0.0
+ */
+ @SuppressWarnings("null")
+ @Nonnull public <T> T ensureMessage(@Nonnull final Class<T> claz) {
+ return claz.cast(ensureMessage());
+ }
/**
* Set the message represented by the message context.
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddDoNotCacheConditionToAssertions.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddDoNotCacheConditionToAssertions.java
index d7c3b5e2c..def390b84 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddDoNotCacheConditionToAssertions.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddDoNotCacheConditionToAssertions.java
@@ -21,7 +21,6 @@ import java.util.List;
import java.util.function.Function;
import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
import org.opensaml.messaging.context.navigate.MessageLookup;
@@ -37,9 +36,10 @@ import org.opensaml.saml.saml1.core.DoNotCacheCondition;
import org.opensaml.saml.saml1.core.Response;
import org.opensaml.saml.saml1.profile.SAML1ActionSupport;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeExec;
import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.LoggerFactory;
/**
* Action to add a {@link DoNotCacheCondition} to every {@link Assertion} in a {@link Response} message.
@@ -57,7 +57,7 @@ public class AddDoNotCacheConditionToAssertions extends AbstractConditionalProfi
@Nonnull private Function<ProfileRequestContext,Response> responseLookupStrategy;
/** Response to modify. */
- @Nullable private Response response;
+ @NonnullBeforeExec private Response response;
/** Constructor. */
public AddDoNotCacheConditionToAssertions() {
@@ -77,6 +77,11 @@ public class AddDoNotCacheConditionToAssertions extends AbstractConditionalProfi
/** {@inheritDoc} */
@Override
protected boolean doPreExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
+
+ if (!super.doPreExecute(profileRequestContext)) {
+ return false;
+ }
+
log.debug("{} Attempting to add DoNotCache condition to every Assertion in Response", getLogPrefix());
response = responseLookupStrategy.apply(profileRequestContext);
@@ -89,7 +94,7 @@ public class AddDoNotCacheConditionToAssertions extends AbstractConditionalProfi
return false;
}
- return super.doPreExecute(profileRequestContext);
+ return true;
}
/** {@inheritDoc} */
@@ -101,6 +106,7 @@ public class AddDoNotCacheConditionToAssertions extends AbstractConditionalProfi
DoNotCacheCondition.DEFAULT_ELEMENT_NAME);
for (final Assertion assertion : response.getAssertions()) {
+ assert assertion != null;
final Conditions conditions = SAML1ActionSupport.addConditionsToAssertion(this, assertion);
final List<DoNotCacheCondition> dncConditions = conditions.getDoNotCacheConditions();
if (dncConditions.isEmpty()) {
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjects.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjects.java
index 2bc04baf9..f3c7978d4 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjects.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjects.java
@@ -38,12 +38,13 @@ import org.opensaml.saml.saml1.core.Subject;
import org.opensaml.saml.saml1.core.SubjectStatement;
import org.opensaml.saml.saml1.profile.SAML1NameIdentifierGenerator;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeExec;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.LoggerFactory;
/**
* Action that builds a {@link NameIdentifier} and adds it to the {@link Subject} of all the statements
@@ -82,10 +83,10 @@ public class AddNameIdentifierToSubjects extends AbstractProfileAction {
@NonnullAfterInit private SAML1NameIdentifierGenerator generator;
/** Formats to try. */
- @Nonnull @NonnullElements private List<String> formats;
+ @NonnullBeforeExec private List<String> formats;
/** Assertions to modify. */
- @Nonnull @NonnullElements private List<Assertion> assertions;
+ @NonnullBeforeExec private List<Assertion> assertions;
/** Constructor. */
public AddNameIdentifierToSubjects() {
@@ -100,7 +101,6 @@ public class AddNameIdentifierToSubjects extends AbstractProfileAction {
assertionsLookupStrategy = new AssertionStrategy();
formatLookupStrategy = new MetadataNameIdentifierFormatStrategy();
- formats = Collections.emptyList();
}
/**
@@ -245,11 +245,12 @@ public class AddNameIdentifierToSubjects extends AbstractProfileAction {
* @return the subject to which the name identifier will be added
*/
@Nonnull private Subject getStatementSubject(@Nonnull final SubjectStatement statement) {
- if (statement.getSubject() != null) {
- return statement.getSubject();
+ Subject subject = statement.getSubject();
+ if (subject != null) {
+ return subject;
}
- final Subject subject = subjectBuilder.buildObject();
+ subject = subjectBuilder.buildObject();
statement.setSubject(subject);
return subject;
}
@@ -284,7 +285,7 @@ public class AddNameIdentifierToSubjects extends AbstractProfileAction {
@Override
@Nullable public List<Assertion> apply(@Nullable final ProfileRequestContext input) {
if (input != null && input.getOutboundMessageContext() != null) {
- final Object outboundMessage = input.getOutboundMessageContext().getMessage();
+ final Object outboundMessage = input.ensureOutboundMessageContext().getMessage();
if (outboundMessage == null) {
return null;
} else if (outboundMessage instanceof Assertion) {
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddResponseShell.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddResponseShell.java
index 30e10fa48..7f62dc424 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddResponseShell.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddResponseShell.java
@@ -21,7 +21,6 @@ import java.time.Instant;
import java.util.function.Function;
import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
import org.opensaml.core.xml.XMLObjectBuilderFactory;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
@@ -36,9 +35,10 @@ import org.opensaml.saml.saml1.core.Response;
import org.opensaml.saml.saml1.core.Status;
import org.opensaml.saml.saml1.core.StatusCode;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeExec;
import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.LoggerFactory;
import net.shibboleth.shared.security.IdentifierGenerationStrategy;
import net.shibboleth.shared.security.IdentifierGenerationStrategy.ProviderType;
@@ -67,7 +67,7 @@ public class AddResponseShell extends AbstractProfileAction {
private boolean overwriteExisting;
/** The generator to use. */
- @Nullable private IdentifierGenerationStrategy idGenerator;
+ @NonnullBeforeExec private IdentifierGenerationStrategy idGenerator;
/** Constructor. */
public AddResponseShell() {
@@ -153,7 +153,7 @@ public class AddResponseShell extends AbstractProfileAction {
response.setStatus(status);
response.setVersion(SAMLVersion.VERSION_11);
- profileRequestContext.getOutboundMessageContext().setMessage(response);
+ profileRequestContext.ensureOutboundMessageContext().setMessage(response);
}
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddStatusToResponse.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddStatusToResponse.java
index 63b559bdf..7c9eeb29c 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddStatusToResponse.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddStatusToResponse.java
@@ -17,7 +17,6 @@
package org.opensaml.saml.saml1.profile.impl;
-import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -44,13 +43,14 @@ import org.opensaml.saml.saml1.core.Status;
import org.opensaml.saml.saml1.core.StatusCode;
import org.opensaml.saml.saml1.core.StatusMessage;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.common.base.Predicates;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeExec;
import net.shibboleth.shared.annotation.constraint.NonnullElements;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.logic.PredicateSupport;
+import net.shibboleth.shared.primitive.LoggerFactory;
import net.shibboleth.shared.primitive.StringSupport;
/**
@@ -92,13 +92,13 @@ public class AddStatusToResponse extends AbstractProfileAction {
private boolean detailedErrors;
/** Response to modify. */
- @Nullable private Response response;
+ @NonnullBeforeExec private Response response;
/** Constructor. */
public AddStatusToResponse() {
responseLookupStrategy = new MessageLookup<>(Response.class).compose(new OutboundMessageContextLookup());
- detailedErrorsCondition = Predicates.alwaysFalse();
- defaultStatusCodes = Collections.emptyList();
+ detailedErrorsCondition = PredicateSupport.alwaysFalse();
+ defaultStatusCodes = CollectionSupport.emptyList();
detailedErrors = false;
}
@@ -149,9 +149,10 @@ public class AddStatusToResponse extends AbstractProfileAction {
*
* @param codes list of status code values to insert
*/
- public void setStatusCodes(@Nonnull @NonnullElements final List<QName> codes) {
+ public void setStatusCodes(@Nonnull final List<QName> codes) {
checkSetterPreconditions();
- defaultStatusCodes = List.copyOf(Constraint.isNotNull(codes, "Status code list cannot be null"));
+ defaultStatusCodes = CollectionSupport.copyToList(
+ Constraint.isNotNull(codes, "Status code list cannot be null"));
}
/**
@@ -168,7 +169,11 @@ public class AddStatusToResponse extends AbstractProfileAction {
/** {@inheritDoc} */
@Override
protected boolean doPreExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
- checkComponentActive();
+
+ if (!super.doPreExecute(profileRequestContext)) {
+ return false;
+ }
+
response = responseLookupStrategy.apply(profileRequestContext);
if (response == null) {
log.debug("{} Response message was not returned by lookup strategy", getLogPrefix());
@@ -180,7 +185,7 @@ public class AddStatusToResponse extends AbstractProfileAction {
log.debug("{} Detailed errors are {}", getLogPrefix(), detailedErrors ? "enabled" : "disabled");
- return super.doPreExecute(profileRequestContext);
+ return true;
}
/** {@inheritDoc} */
@@ -207,8 +212,8 @@ public class AddStatusToResponse extends AbstractProfileAction {
// StatusMessage processing.
if (!detailedErrors || statusMessageLookupStrategy == null) {
if (statusMessage != null) {
- log.debug("{} Setting StatusMessage to defaulted value", getLogPrefix());
buildStatusMessage(status, statusMessage);
+ log.debug("{} Setting StatusMessage to defaulted value", getLogPrefix());
}
} else if (statusMessageLookupStrategy != null) {
final String message = statusMessageLookupStrategy.apply(profileRequestContext);
@@ -217,9 +222,9 @@ public class AddStatusToResponse extends AbstractProfileAction {
getLogPrefix());
buildStatusMessage(status, message);
} else if (statusMessage != null) {
+ buildStatusMessage(status, statusMessage);
log.debug("{} Current state of request was not mappable, setting StatusMessage to defaulted value",
getLogPrefix());
- buildStatusMessage(status, statusMessage);
}
}
}
@@ -311,9 +316,12 @@ public class AddStatusToResponse extends AbstractProfileAction {
@Nullable public List<QName> apply(@Nullable final ProfileRequestContext input) {
final EventContext eventCtx = eventContextLookupStrategy.apply(input);
if (eventCtx != null && eventCtx.getEvent() != null) {
- return codeMappings.get(eventCtx.getEvent().toString());
+ final Object event = eventCtx.getEvent();
+ if (event != null) {
+ return codeMappings.get(event.toString());
+ }
}
- return Collections.emptyList();
+ return CollectionSupport.emptyList();
}
}
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddSubjectConfirmationToSubjects.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddSubjectConfirmationToSubjects.java
index daf4976b5..b26d10a2a 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddSubjectConfirmationToSubjects.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/AddSubjectConfirmationToSubjects.java
@@ -18,13 +18,10 @@
package org.opensaml.saml.saml1.profile.impl;
import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
import java.util.Objects;
import java.util.function.Function;
import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
import org.opensaml.messaging.context.navigate.MessageLookup;
@@ -44,11 +41,13 @@ import org.opensaml.saml.saml1.core.Subject;
import org.opensaml.saml.saml1.core.SubjectConfirmation;
import org.opensaml.saml.saml1.core.SubjectStatement;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeExec;
import net.shibboleth.shared.annotation.constraint.NonnullElements;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.LoggerFactory;
/**
* Action that builds {@link SubjectConfirmation} and adds it to the {@link Subject} of all the statements
@@ -85,7 +84,7 @@ public class AddSubjectConfirmationToSubjects extends AbstractProfileAction {
@Nonnull @NonnullElements private Collection<String> confirmationMethods;
/** Response to modify. */
- @Nullable private Response response;
+ @NonnullBeforeExec private Response response;
/** Flag indicating whether the outbound message is being issued via the Artifact profile. */
private boolean artifactProfile;
@@ -105,7 +104,7 @@ public class AddSubjectConfirmationToSubjects extends AbstractProfileAction {
overwriteExisting = true;
responseLookupStrategy = new MessageLookup<>(Response.class).compose(new OutboundMessageContextLookup());
- confirmationMethods = Collections.emptyList();
+ confirmationMethods = CollectionSupport.emptyList();
}
/**
@@ -137,7 +136,7 @@ public class AddSubjectConfirmationToSubjects extends AbstractProfileAction {
checkSetterPreconditions();
Constraint.isNotEmpty(methods, "Confirmation method collection cannot be null or empty");
- confirmationMethods = List.copyOf(methods);
+ confirmationMethods = CollectionSupport.copyToList(methods);
}
/** {@inheritDoc} */
@@ -153,6 +152,11 @@ public class AddSubjectConfirmationToSubjects extends AbstractProfileAction {
/** {@inheritDoc} */
@Override
protected boolean doPreExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
+
+ if (!super.doPreExecute(profileRequestContext)) {
+ return false;
+ }
+
log.debug("{} Attempting to add SubjectConfirmation to assertions in outgoing Response", getLogPrefix());
response = responseLookupStrategy.apply(profileRequestContext);
@@ -165,12 +169,12 @@ public class AddSubjectConfirmationToSubjects extends AbstractProfileAction {
return false;
}
- final SAMLBindingContext bindingCtx = profileRequestContext.getOutboundMessageContext().getSubcontext(
+ final SAMLBindingContext bindingCtx = profileRequestContext.ensureOutboundMessageContext().getSubcontext(
SAMLBindingContext.class);
artifactProfile = bindingCtx != null
&& Objects.equals(bindingCtx.getBindingUri(), SAMLConstants.SAML1_ARTIFACT_BINDING_URI);
- return super.doPreExecute(profileRequestContext);
+ return true;
}
// Checkstyle: CyclomaticComplexity OFF
@@ -222,11 +226,12 @@ public class AddSubjectConfirmationToSubjects extends AbstractProfileAction {
* @return the subject to which the confirmation will be added
*/
@Nonnull private Subject getStatementSubject(@Nonnull final SubjectStatement statement) {
- if (statement.getSubject() != null) {
- return statement.getSubject();
+ Subject subject = statement.getSubject();
+ if (subject != null) {
+ return subject;
}
- final Subject subject = subjectBuilder.buildObject();
+ subject = subjectBuilder.buildObject();
statement.setSubject(subject);
return subject;
}
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/CopyNameIdentifierFromRequest.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/CopyNameIdentifierFromRequest.java
index 851d3f2cb..8a3ff207a 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/CopyNameIdentifierFromRequest.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/CopyNameIdentifierFromRequest.java
@@ -20,7 +20,6 @@ package org.opensaml.saml.saml1.profile.impl;
import java.util.function.Function;
import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
import org.opensaml.messaging.context.navigate.ChildContextLookup;
@@ -40,9 +39,10 @@ import org.opensaml.saml.saml1.core.Statement;
import org.opensaml.saml.saml1.core.Subject;
import org.opensaml.saml.saml1.core.SubjectStatement;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeExec;
import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.LoggerFactory;
/**
* Action that builds a {@link NameIdentifier} and adds it to the {@link Subject} of all the statements
@@ -80,10 +80,10 @@ public class CopyNameIdentifierFromRequest extends AbstractProfileAction {
@Nonnull private Function<ProfileRequestContext,Response> responseLookupStrategy;
/** NameIdentifier to copy. */
- @Nullable private NameIdentifier nameIdentifier;
+ @NonnullBeforeExec private NameIdentifier nameIdentifier;
/** Response to modify. */
- @Nullable private Response response;
+ @NonnullBeforeExec private Response response;
/** Constructor. */
public CopyNameIdentifierFromRequest() {
@@ -138,6 +138,11 @@ public class CopyNameIdentifierFromRequest extends AbstractProfileAction {
/** {@inheritDoc} */
@Override
protected boolean doPreExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
+
+ if (!super.doPreExecute(profileRequestContext)) {
+ return false;
+ }
+
log.debug("{} Attempting to add NameIdentifier to statements in outgoing Response", getLogPrefix());
response = responseLookupStrategy.apply(profileRequestContext);
@@ -164,7 +169,7 @@ public class CopyNameIdentifierFromRequest extends AbstractProfileAction {
return false;
}
- return super.doPreExecute(profileRequestContext);
+ return true;
}
/** {@inheritDoc} */
@@ -199,11 +204,12 @@ public class CopyNameIdentifierFromRequest extends AbstractProfileAction {
* @return the subject to which the name identifier will be added
*/
@Nonnull private Subject getStatementSubject(@Nonnull final SubjectStatement statement) {
- if (statement.getSubject() != null) {
- return statement.getSubject();
+ Subject subject = statement.getSubject();
+ if (subject != null) {
+ return subject;
}
- final Subject subject = subjectBuilder.buildObject();
+ subject = subjectBuilder.buildObject();
statement.setSubject(subject);
return subject;
}
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/ResolveArtifacts.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/ResolveArtifacts.java
index 2cf4516b6..44b28fce3 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/ResolveArtifacts.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/saml1/profile/impl/ResolveArtifacts.java
@@ -21,7 +21,6 @@ import java.io.IOException;
import java.util.function.Function;
import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
import org.opensaml.messaging.context.navigate.MessageLookup;
import org.opensaml.profile.action.AbstractProfileAction;
@@ -39,11 +38,12 @@ import org.opensaml.saml.saml1.core.AssertionArtifact;
import org.opensaml.saml.saml1.core.Request;
import org.opensaml.saml.saml1.core.Response;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import net.shibboleth.shared.annotation.constraint.NonnullAfterInit;
+import net.shibboleth.shared.annotation.constraint.NonnullBeforeExec;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.LoggerFactory;
/**
* Action that resolves SAML 1.x artifacts inside a {@link Request} located via a lookup strategy,
@@ -78,16 +78,16 @@ public class ResolveArtifacts extends AbstractProfileAction {
@NonnullAfterInit private SAMLArtifactMap artifactMap;
/** Request to process. */
- @Nullable private Request request;
+ @NonnullBeforeExec private Request request;
/** Response to populate. */
- @Nullable private Response response;
+ @NonnullBeforeExec private Response response;
/** Identity of issuer. */
- @Nullable private String issuerId;
+ @NonnullBeforeExec private String issuerId;
/** Identity of requester. */
- @Nullable private String requesterId;
+ @NonnullBeforeExec private String requesterId;
/** Constructor. */
public ResolveArtifacts() {
@@ -171,6 +171,10 @@ public class ResolveArtifacts extends AbstractProfileAction {
@Override
protected boolean doPreExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
+ if (!super.doPreExecute(profileRequestContext)) {
+ return false;
+ }
+
request = requestLookupStrategy.apply(profileRequestContext);
if (request == null) {
log.debug("{} No request located", getLogPrefix());
@@ -203,9 +207,10 @@ public class ResolveArtifacts extends AbstractProfileAction {
return false;
}
- return super.doPreExecute(profileRequestContext);
+ return true;
}
+// Checkstyle: CyclomaticComplexity OFF
/** {@inheritDoc} */
@Override
protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
@@ -214,7 +219,11 @@ public class ResolveArtifacts extends AbstractProfileAction {
try {
for (final AssertionArtifact artifact : request.getAssertionArtifacts()) {
- final SAMLArtifactMapEntry entry = artifactMap.get(artifact.getValue());
+ final String aval = artifact.getValue();
+ if (aval == null) {
+ continue;
+ }
+ final SAMLArtifactMapEntry entry = artifactMap.get(aval);
if (entry == null) {
log.warn("{} Unresolvable AssertionArtifact '{}' from relying party '{}'", getLogPrefix(),
artifact.getValue(), requesterId);
@@ -222,7 +231,7 @@ public class ResolveArtifacts extends AbstractProfileAction {
break;
}
- artifactMap.remove(artifact.getValue());
+ artifactMap.remove(aval);
if (!entry.getIssuerId().equals(issuerId)) {
log.warn("{} Artifact issuer mismatch, issued by '{}' but IdP has entityID of '{}'",
@@ -253,8 +262,12 @@ public class ResolveArtifacts extends AbstractProfileAction {
// Make sure we remove everything requested.
for (final AssertionArtifact artifact : request.getAssertionArtifacts()) {
+ final String aval = artifact.getValue();
+ if (aval == null) {
+ continue;
+ }
try {
- artifactMap.remove(artifact.getValue());
+ artifactMap.remove(aval);
} catch (final IOException e) {
log.error("{} Error removing mapping for artifact '{}'", getLogPrefix(),
artifact.getValue());
@@ -264,5 +277,6 @@ public class ResolveArtifacts extends AbstractProfileAction {
ActionSupport.buildEvent(profileRequestContext, SAMLEventIds.UNABLE_RESOLVE_ARTIFACT);
}
}
+// Checkstyle: CyclomaticComplexity ON
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AbstractSAML1NameIdentifierGeneratorTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AbstractSAML1NameIdentifierGeneratorTest.java
index 223953cd6..082d2a611 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AbstractSAML1NameIdentifierGeneratorTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AbstractSAML1NameIdentifierGeneratorTest.java
@@ -20,6 +20,8 @@ package org.opensaml.saml.saml1.profile.impl;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.FunctionSupport;
+import javax.annotation.Nonnull;
+
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.saml.common.SAMLException;
@@ -42,7 +44,7 @@ public class AbstractSAML1NameIdentifierGeneratorTest extends OpenSAMLInitBaseTe
mock.initialize();
final NameIdentifier nameId = mock.generate(new ProfileRequestContext(), mock.getFormat());
- Assert.assertNotNull(nameId);
+ assert nameId != null;
Assert.assertEquals(nameId.getValue(), "foo");
Assert.assertEquals(nameId.getNameQualifier(), NAME_QUALIFIER);
}
@@ -56,7 +58,7 @@ public class AbstractSAML1NameIdentifierGeneratorTest extends OpenSAMLInitBaseTe
mock.initialize();
final NameIdentifier nameId = mock.generate(new ProfileRequestContext(), mock.getFormat());
- Assert.assertNotNull(nameId);
+ assert nameId != null;
Assert.assertEquals(nameId.getValue(), "foo");
Assert.assertNull(nameId.getNameQualifier());
}
@@ -69,7 +71,7 @@ public class AbstractSAML1NameIdentifierGeneratorTest extends OpenSAMLInitBaseTe
mock.initialize();
final NameIdentifier nameId = mock.generate(new ProfileRequestContext(), mock.getFormat());
- Assert.assertNotNull(nameId);
+ assert nameId != null;
Assert.assertEquals(nameId.getValue(), "foo");
Assert.assertNull(nameId.getNameQualifier());
}
@@ -81,7 +83,7 @@ public class AbstractSAML1NameIdentifierGeneratorTest extends OpenSAMLInitBaseTe
mock.initialize();
final NameIdentifier nameId = mock.generate(new ProfileRequestContext(), mock.getFormat());
- Assert.assertNotNull(nameId);
+ assert nameId != null;
Assert.assertEquals(nameId.getValue(), "foo");
Assert.assertEquals(nameId.getNameQualifier(), NAME_QUALIFIER);
}
@@ -95,7 +97,7 @@ public class AbstractSAML1NameIdentifierGeneratorTest extends OpenSAMLInitBaseTe
/** {@inheritDoc} */
@Override
- protected String getIdentifier(ProfileRequestContext profileRequestContext) throws SAMLException {
+ protected String getIdentifier(@Nonnull final ProfileRequestContext profileRequestContext) throws SAMLException {
return "foo";
}
}
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddDoNotCacheConditionToAssertionsTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddDoNotCacheConditionToAssertionsTest.java
index cad773e11..536c48d4e 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddDoNotCacheConditionToAssertionsTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddDoNotCacheConditionToAssertionsTest.java
@@ -88,9 +88,10 @@ public class AddDoNotCacheConditionToAssertionsTest extends OpenSAMLInitBaseTest
Assert.assertNotNull(response.getAssertions());
Assert.assertEquals(response.getAssertions().size(), 1);
- Assert.assertNotNull(assertion.getConditions());
- Assert.assertNotNull(assertion.getConditions().getDoNotCacheConditions());
- Assert.assertEquals(assertion.getConditions().getDoNotCacheConditions().size(), 1);
+ final Conditions c = assertion.getConditions();
+ assert c != null;
+ Assert.assertNotNull(c.getDoNotCacheConditions());
+ Assert.assertEquals(c.getDoNotCacheConditions().size(), 1);
}
/**
@@ -119,9 +120,10 @@ public class AddDoNotCacheConditionToAssertionsTest extends OpenSAMLInitBaseTest
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- Assert.assertNotNull(assertion.getConditions());
- Assert.assertNotNull(assertion.getConditions().getDoNotCacheConditions());
- Assert.assertEquals(assertion.getConditions().getDoNotCacheConditions().size(), 1);
+ final Conditions c = assertion.getConditions();
+ assert c != null;
+ Assert.assertNotNull(c.getDoNotCacheConditions());
+ Assert.assertEquals(c.getDoNotCacheConditions().size(), 1);
}
/**
@@ -155,9 +157,10 @@ public class AddDoNotCacheConditionToAssertionsTest extends OpenSAMLInitBaseTest
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- Assert.assertNotNull(assertion.getConditions());
- Assert.assertNotNull(assertion.getConditions().getDoNotCacheConditions());
- Assert.assertEquals(assertion.getConditions().getDoNotCacheConditions().size(), 1);
+ final Conditions c = assertion.getConditions();
+ assert c != null;
+ Assert.assertNotNull(c.getDoNotCacheConditions());
+ Assert.assertEquals(c.getDoNotCacheConditions().size(), 1);
}
/**
@@ -183,10 +186,11 @@ public class AddDoNotCacheConditionToAssertionsTest extends OpenSAMLInitBaseTest
Assert.assertEquals(response.getAssertions().size(), 3);
for (final Assertion assertion : response.getAssertions()) {
- Assert.assertNotNull(assertion.getConditions());
- Assert.assertNotNull(assertion.getConditions().getDoNotCacheConditions());
- Assert.assertEquals(assertion.getConditions().getDoNotCacheConditions().size(), 1);
+ final Conditions c = assertion.getConditions();
+ assert c != null;
+ Assert.assertNotNull(c.getDoNotCacheConditions());
+ Assert.assertEquals(c.getDoNotCacheConditions().size(), 1);
}
}
-}
+}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjectsTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjectsTest.java
index c1b7d9bb5..6c5c0d757 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjectsTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddNameIdentifierToSubjectsTest.java
@@ -17,7 +17,6 @@
package org.opensaml.saml.saml1.profile.impl;
-import java.util.Arrays;
import java.util.List;
import java.util.function.Function;
@@ -28,7 +27,6 @@ import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.profile.testing.ActionTestingSupport;
import org.opensaml.profile.testing.RequestContextBuilder;
import org.opensaml.saml.common.SAMLException;
-import org.opensaml.saml.common.profile.NameIdentifierGenerator;
import org.opensaml.saml.saml1.core.Assertion;
import org.opensaml.saml.saml1.core.NameIdentifier;
import org.opensaml.saml.saml1.core.Response;
@@ -39,11 +37,12 @@ import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
-import com.google.common.base.Predicates;
-
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.logic.PredicateSupport;
/** Test for {@link AddNameIdentifierToSubjects}. */
+ at SuppressWarnings("javadoc")
public class AddNameIdentifierToSubjectsTest extends OpenSAMLInitBaseTestCase {
private static final String NAME_QUALIFIER = "https://idp.example.org";
@@ -66,7 +65,7 @@ public class AddNameIdentifierToSubjectsTest extends OpenSAMLInitBaseTestCase {
final MockSAML1NameIdentifierGenerator mock2 = new MockSAML1NameIdentifierGenerator("bar");
mock2.setFormat(NameIdentifier.EMAIL);
- mock2.setActivationCondition(Predicates.alwaysFalse());
+ mock2.setActivationCondition(PredicateSupport.alwaysFalse());
mock2.initialize();
final MockSAML1NameIdentifierGenerator mock3 = new MockSAML1NameIdentifierGenerator("baz");
@@ -74,7 +73,7 @@ public class AddNameIdentifierToSubjectsTest extends OpenSAMLInitBaseTestCase {
mock3.initialize();
generator = new ChainingSAML1NameIdentifierGenerator();
- generator.setGenerators(Arrays.<NameIdentifierGenerator<NameIdentifier>>asList(mock, mock2, mock3));
+ generator.setGenerators(CollectionSupport.listOf(mock, mock2, mock3));
action.setNameIdentifierGenerator(generator);
}
@@ -84,28 +83,28 @@ public class AddNameIdentifierToSubjectsTest extends OpenSAMLInitBaseTestCase {
action.initialize();
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- Assert.assertNull(prc.getOutboundMessageContext().getMessage());
+ Assert.assertNull(prc.ensureOutboundMessageContext().getMessage());
}
@Test
public void testNoAssertions() throws ComponentInitializationException {
- prc.getOutboundMessageContext().setMessage(SAML1ActionTestingSupport.buildResponse());
+ prc.ensureOutboundMessageContext().setMessage(SAML1ActionTestingSupport.buildResponse());
action.initialize();
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- Assert.assertTrue(((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().isEmpty());
+ Assert.assertTrue(prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().isEmpty());
}
@Test
public void testNoStatements() throws ComponentInitializationException {
- prc.getOutboundMessageContext().setMessage(SAML1ActionTestingSupport.buildResponse());
- ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().add(SAML1ActionTestingSupport.buildAssertion());
+ prc.ensureOutboundMessageContext().setMessage(SAML1ActionTestingSupport.buildResponse());
+ prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().add(SAML1ActionTestingSupport.buildAssertion());
action.setFormatLookupStrategy(new X509FormatLookupStrategy());
action.initialize();
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- Assert.assertTrue(((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().get(0).getStatements().isEmpty());
+ Assert.assertTrue(prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().get(0).getStatements().isEmpty());
}
@Test void testArbitraryFormat() throws ComponentInitializationException {
@@ -116,11 +115,11 @@ public class AddNameIdentifierToSubjectsTest extends OpenSAMLInitBaseTestCase {
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- Assertion assertion = ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().get(0);
+ Assertion assertion = prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().get(0);
Subject subject = assertion.getAuthenticationStatements().get(0).getSubject();
Assert.assertNull(subject);
- assertion = ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().get(1);
+ assertion = prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().get(1);
subject = assertion.getAttributeStatements().get(0).getSubject();
Assert.assertNull(subject);
}
@@ -134,19 +133,21 @@ public class AddNameIdentifierToSubjectsTest extends OpenSAMLInitBaseTestCase {
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- Assertion assertion = ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().get(0);
+ Assertion assertion = prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().get(0);
Subject subject = assertion.getAuthenticationStatements().get(0).getSubject();
- Assert.assertNotNull(subject);
- Assert.assertNotNull(subject.getNameIdentifier());
- Assert.assertEquals(subject.getNameIdentifier().getValue(), "foo");
- Assert.assertEquals(subject.getNameIdentifier().getFormat(), NameIdentifier.X509_SUBJECT);
+ assert subject != null;
+ NameIdentifier nameID = subject.getNameIdentifier();
+ assert nameID != null;
+ Assert.assertEquals(nameID.getValue(), "foo");
+ Assert.assertEquals(nameID.getFormat(), NameIdentifier.X509_SUBJECT);
- assertion = ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().get(1);
+ assertion = prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().get(1);
subject = assertion.getAttributeStatements().get(0).getSubject();
- Assert.assertNotNull(subject);
- Assert.assertNotNull(subject.getNameIdentifier());
- Assert.assertEquals(subject.getNameIdentifier().getValue(), "foo");
- Assert.assertEquals(subject.getNameIdentifier().getFormat(), NameIdentifier.X509_SUBJECT);
+ assert subject != null;
+ nameID = subject.getNameIdentifier();
+ assert nameID != null;
+ Assert.assertEquals(nameID.getValue(), "foo");
+ Assert.assertEquals(nameID.getFormat(), NameIdentifier.X509_SUBJECT);
}
@Test void testMultipleGenerators() throws ComponentInitializationException {
@@ -158,19 +159,21 @@ public class AddNameIdentifierToSubjectsTest extends OpenSAMLInitBaseTestCase {
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- Assertion assertion = ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().get(0);
+ Assertion assertion = prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().get(0);
Subject subject = assertion.getAuthenticationStatements().get(0).getSubject();
- Assert.assertNotNull(subject);
- Assert.assertNotNull(subject.getNameIdentifier());
- Assert.assertEquals(subject.getNameIdentifier().getValue(), "baz");
- Assert.assertEquals(subject.getNameIdentifier().getFormat(), NameIdentifier.EMAIL);
+ assert subject != null;
+ NameIdentifier nameID = subject.getNameIdentifier();
+ assert nameID != null;
+ Assert.assertEquals(nameID.getValue(), "baz");
+ Assert.assertEquals(nameID.getFormat(), NameIdentifier.EMAIL);
- assertion = ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().get(1);
+ assertion = prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().get(1);
subject = assertion.getAttributeStatements().get(0).getSubject();
- Assert.assertNotNull(subject);
- Assert.assertNotNull(subject.getNameIdentifier());
- Assert.assertEquals(subject.getNameIdentifier().getValue(), "baz");
- Assert.assertEquals(subject.getNameIdentifier().getFormat(), NameIdentifier.EMAIL);
+ assert subject != null;
+ nameID = subject.getNameIdentifier();
+ assert nameID != null;
+ Assert.assertEquals(nameID.getValue(), "baz");
+ Assert.assertEquals(nameID.getFormat(), NameIdentifier.EMAIL);
}
/** Set up the test message with some statements. */
@@ -180,7 +183,7 @@ public class AddNameIdentifierToSubjectsTest extends OpenSAMLInitBaseTestCase {
response.getAssertions().add(SAML1ActionTestingSupport.buildAssertion());
response.getAssertions().get(0).getAuthenticationStatements().add(SAML1ActionTestingSupport.buildAuthenticationStatement());
response.getAssertions().get(1).getAttributeStatements().add(SAML1ActionTestingSupport.buildAttributeStatement());
- prc.getOutboundMessageContext().setMessage(response);
+ prc.ensureOutboundMessageContext().setMessage(response);
}
private class MockSAML1NameIdentifierGenerator extends AbstractSAML1NameIdentifierGenerator {
@@ -209,7 +212,7 @@ public class AddNameIdentifierToSubjectsTest extends OpenSAMLInitBaseTestCase {
/** {@inheritDoc} */
@Override
public List<String> apply(ProfileRequestContext input) {
- return Arrays.asList(NameIdentifier.WIN_DOMAIN_QUALIFIED, NameIdentifier.X509_SUBJECT);
+ return CollectionSupport.listOf(NameIdentifier.WIN_DOMAIN_QUALIFIED, NameIdentifier.X509_SUBJECT);
}
}
@@ -218,7 +221,7 @@ public class AddNameIdentifierToSubjectsTest extends OpenSAMLInitBaseTestCase {
/** {@inheritDoc} */
@Override
public List<String> apply(ProfileRequestContext input) {
- return Arrays.asList(NameIdentifier.WIN_DOMAIN_QUALIFIED, NameIdentifier.EMAIL);
+ return CollectionSupport.listOf(NameIdentifier.WIN_DOMAIN_QUALIFIED, NameIdentifier.EMAIL);
}
}
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddResponseShellTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddResponseShellTest.java
index cc8c341cf..621447f40 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddResponseShellTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddResponseShellTest.java
@@ -18,7 +18,6 @@
package org.opensaml.saml.saml1.profile.impl;
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
-import org.opensaml.messaging.context.MessageContext;
import org.opensaml.profile.action.EventIds;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.profile.testing.ActionTestingSupport;
@@ -35,6 +34,7 @@ import org.testng.annotations.Test;
import net.shibboleth.shared.component.ComponentInitializationException;
/** {@link AddResponseShell} unit test. */
+ at SuppressWarnings("javadoc")
public class AddResponseShellTest extends OpenSAMLInitBaseTestCase {
private AddResponseShell action;
@@ -50,18 +50,17 @@ public class AddResponseShellTest extends OpenSAMLInitBaseTestCase {
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- final MessageContext outMsgCtx = prc.getOutboundMessageContext();
- final Response response = (Response) outMsgCtx.getMessage();
+ final Response response = prc.ensureOutboundMessageContext().ensureMessage(Response.class);
- Assert.assertNotNull(response);
Assert.assertNotNull(response.getID());
Assert.assertNotNull(response.getIssueInstant());
Assert.assertEquals(response.getVersion(), SAMLVersion.VERSION_11);
final Status status = response.getStatus();
- Assert.assertNotNull(status);
- Assert.assertNotNull(status.getStatusCode());
- Assert.assertEquals(status.getStatusCode().getValue(), StatusCode.SUCCESS);
+ assert status != null;
+ final StatusCode code = status.getStatusCode();
+ assert code != null;
+ Assert.assertEquals(code.getValue(), StatusCode.SUCCESS);
}
@Test public void testAddResponseWhenResponseAlreadyExist() {
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddStatusToResponseTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddStatusToResponseTest.java
index 58f583c56..ee3eaaf9a 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddStatusToResponseTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddStatusToResponseTest.java
@@ -17,8 +17,6 @@
package org.opensaml.saml.saml1.profile.impl;
-import java.util.Arrays;
-
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.profile.testing.ActionTestingSupport;
@@ -26,14 +24,17 @@ import org.opensaml.profile.testing.RequestContextBuilder;
import org.opensaml.saml.saml1.core.Response;
import org.opensaml.saml.saml1.core.Status;
import org.opensaml.saml.saml1.core.StatusCode;
+import org.opensaml.saml.saml1.core.StatusMessage;
import org.opensaml.saml.saml1.testing.SAML1ActionTestingSupport;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
/** {@link AddStatusToResponse} unit test. */
+ at SuppressWarnings("javadoc")
public class AddStatusToResponseTest extends OpenSAMLInitBaseTestCase {
private ProfileRequestContext prc;
@@ -52,35 +53,37 @@ public class AddStatusToResponseTest extends OpenSAMLInitBaseTestCase {
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+ final Response response = prc.ensureOutboundMessageContext().ensureMessage(Response.class);
final Status status = response.getStatus();
- Assert.assertNotNull(status);
-
- Assert.assertNotNull(status.getStatusCode());
- Assert.assertEquals(status.getStatusCode().getValue(), StatusCode.RESPONDER);
- Assert.assertNull(status.getStatusCode().getStatusCode());
+ assert status != null;
+ final StatusCode code = status.getStatusCode();
+ assert code != null;
+ Assert.assertEquals(code.getValue(), StatusCode.RESPONDER);
+ Assert.assertNull(code.getStatusCode());
Assert.assertNull(status.getStatusMessage());
}
@Test public void testMultiStatus() throws ComponentInitializationException {
- action.setStatusCodes(Arrays.asList(StatusCode.REQUESTER, StatusCode.REQUEST_VERSION_DEPRECATED));
+ action.setStatusCodes(CollectionSupport.listOf(StatusCode.REQUESTER, StatusCode.REQUEST_VERSION_DEPRECATED));
action.initialize();
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+ final Response response = prc.ensureOutboundMessageContext().ensureMessage(Response.class);
final Status status = response.getStatus();
- Assert.assertNotNull(status);
+ assert status != null;
- Assert.assertNotNull(status.getStatusCode());
- Assert.assertEquals(status.getStatusCode().getValue(), StatusCode.REQUESTER);
- Assert.assertNotNull(status.getStatusCode().getStatusCode());
- Assert.assertEquals(status.getStatusCode().getStatusCode().getValue(), StatusCode.REQUEST_VERSION_DEPRECATED);
- Assert.assertNull(status.getStatusCode().getStatusCode().getStatusCode());
+ StatusCode code = status.getStatusCode();
+ assert code != null;
+ Assert.assertEquals(code.getValue(), StatusCode.REQUESTER);
+ code = code.getStatusCode();
+ assert code != null;
+ Assert.assertEquals(code.getValue(), StatusCode.REQUEST_VERSION_DEPRECATED);
+ Assert.assertNull(code.getStatusCode());
Assert.assertNull(status.getStatusMessage());
}
@@ -92,11 +95,13 @@ public class AddStatusToResponseTest extends OpenSAMLInitBaseTestCase {
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+ final Response response = prc.ensureOutboundMessageContext().ensureMessage(Response.class);
final Status status = response.getStatus();
- Assert.assertNotNull(status);
- Assert.assertEquals(status.getStatusMessage().getValue(), "Foo");
+ assert status != null;
+ final StatusMessage msg = status.getStatusMessage();
+ assert msg != null;
+ Assert.assertEquals(msg.getValue(), "Foo");
}
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddSubjectConfirmationToSubjectsTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddSubjectConfirmationToSubjectsTest.java
index 271f2012d..668aadc3b 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddSubjectConfirmationToSubjectsTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/AddSubjectConfirmationToSubjectsTest.java
@@ -17,9 +17,6 @@
package org.opensaml.saml.saml1.profile.impl;
-import java.util.Arrays;
-import java.util.Collections;
-
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
import org.opensaml.profile.action.EventIds;
import org.opensaml.profile.context.ProfileRequestContext;
@@ -31,15 +28,18 @@ import org.opensaml.saml.saml1.core.Assertion;
import org.opensaml.saml.saml1.core.ConfirmationMethod;
import org.opensaml.saml.saml1.core.Response;
import org.opensaml.saml.saml1.core.Subject;
+import org.opensaml.saml.saml1.core.SubjectConfirmation;
import org.opensaml.saml.saml1.testing.SAML1ActionTestingSupport;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
/** Test for {@link AddSubjectConfirmationToSubjects}. */
+ at SuppressWarnings("javadoc")
public class AddSubjectConfirmationToSubjectsTest extends OpenSAMLInitBaseTestCase {
private ProfileRequestContext prc;
@@ -60,7 +60,7 @@ public class AddSubjectConfirmationToSubjectsTest extends OpenSAMLInitBaseTestCa
@Test
public void testNoMessage() throws ComponentInitializationException {
- action.setMethods(Collections.singleton(ConfirmationMethod.METHOD_BEARER));
+ action.setMethods(CollectionSupport.singleton(ConfirmationMethod.METHOD_BEARER));
action.initialize();
action.execute(prc);
ActionTestingSupport.assertEvent(prc, EventIds.INVALID_MSG_CTX);
@@ -68,103 +68,107 @@ public class AddSubjectConfirmationToSubjectsTest extends OpenSAMLInitBaseTestCa
@Test
public void testNoAssertions() throws ComponentInitializationException {
- prc.getOutboundMessageContext().setMessage(SAML1ActionTestingSupport.buildResponse());
+ prc.ensureOutboundMessageContext().setMessage(SAML1ActionTestingSupport.buildResponse());
- action.setMethods(Collections.singleton(ConfirmationMethod.METHOD_BEARER));
+ action.setMethods(CollectionSupport.singleton(ConfirmationMethod.METHOD_BEARER));
action.initialize();
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- Assert.assertTrue(((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().isEmpty());
+ Assert.assertTrue(prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().isEmpty());
}
@Test
public void testNoStatements() throws ComponentInitializationException {
- prc.getOutboundMessageContext().setMessage(SAML1ActionTestingSupport.buildResponse());
- ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().add(SAML1ActionTestingSupport.buildAssertion());
+ prc.ensureOutboundMessageContext().setMessage(SAML1ActionTestingSupport.buildResponse());
+ prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().add(SAML1ActionTestingSupport.buildAssertion());
- action.setMethods(Collections.singleton(ConfirmationMethod.METHOD_BEARER));
+ action.setMethods(CollectionSupport.singleton(ConfirmationMethod.METHOD_BEARER));
action.initialize();
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- Assert.assertTrue(((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().get(0).getStatements().isEmpty());
+ Assert.assertTrue(prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().get(0).getStatements().isEmpty());
}
@Test void testSingle() throws ComponentInitializationException {
addStatements();
- action.setMethods(Collections.singleton(ConfirmationMethod.METHOD_BEARER));
+ action.setMethods(CollectionSupport.singleton(ConfirmationMethod.METHOD_BEARER));
action.initialize();
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- Assertion assertion = ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().get(0);
+ Assertion assertion = prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().get(0);
Subject subject = assertion.getAuthenticationStatements().get(0).getSubject();
- Assert.assertNotNull(subject);
- Assert.assertNotNull(subject.getSubjectConfirmation());
- Assert.assertEquals(subject.getSubjectConfirmation().getConfirmationMethods().size(), 1);
- Assert.assertEquals(subject.getSubjectConfirmation().getConfirmationMethods().get(0).getURI(),
+ assert subject != null;
+ SubjectConfirmation sc = subject.getSubjectConfirmation();
+ assert sc != null;
+ Assert.assertEquals(sc.getConfirmationMethods().size(), 1);
+ Assert.assertEquals(sc.getConfirmationMethods().get(0).getURI(),
ConfirmationMethod.METHOD_BEARER);
- assertion = ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().get(1);
+ assertion = prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().get(1);
subject = assertion.getAttributeStatements().get(0).getSubject();
- Assert.assertNotNull(subject);
- Assert.assertNotNull(subject.getSubjectConfirmation());
- Assert.assertEquals(subject.getSubjectConfirmation().getConfirmationMethods().size(), 1);
- Assert.assertEquals(subject.getSubjectConfirmation().getConfirmationMethods().get(0).getURI(),
+ assert subject != null;
+ sc = subject.getSubjectConfirmation();
+ assert sc != null;
+ Assert.assertEquals(sc.getConfirmationMethods().size(), 1);
+ Assert.assertEquals(sc.getConfirmationMethods().get(0).getURI(),
ConfirmationMethod.METHOD_BEARER);
}
@Test void testMultiple() throws ComponentInitializationException {
addStatements();
- action.setMethods(Arrays.asList(ConfirmationMethod.METHOD_BEARER, ConfirmationMethod.METHOD_SENDER_VOUCHES));
+ action.setMethods(CollectionSupport.listOf(ConfirmationMethod.METHOD_BEARER, ConfirmationMethod.METHOD_SENDER_VOUCHES));
action.initialize();
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- Assertion assertion = ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().get(0);
+ Assertion assertion = prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().get(0);
Subject subject = assertion.getAuthenticationStatements().get(0).getSubject();
- Assert.assertNotNull(subject);
- Assert.assertNotNull(subject.getSubjectConfirmation());
- Assert.assertEquals(subject.getSubjectConfirmation().getConfirmationMethods().size(), 2);
- Assert.assertEquals(subject.getSubjectConfirmation().getConfirmationMethods().get(0).getURI(),
+ assert subject != null;
+ SubjectConfirmation sc = subject.getSubjectConfirmation();
+ assert sc != null;
+ Assert.assertEquals(sc.getConfirmationMethods().size(), 2);
+ Assert.assertEquals(sc.getConfirmationMethods().get(0).getURI(),
ConfirmationMethod.METHOD_BEARER);
- Assert.assertEquals(subject.getSubjectConfirmation().getConfirmationMethods().get(1).getURI(),
+ Assert.assertEquals(sc.getConfirmationMethods().get(1).getURI(),
ConfirmationMethod.METHOD_SENDER_VOUCHES);
- assertion = ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().get(1);
+ assertion = prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().get(1);
subject = assertion.getAttributeStatements().get(0).getSubject();
- Assert.assertNotNull(subject);
- Assert.assertNotNull(subject.getSubjectConfirmation());
- Assert.assertEquals(subject.getSubjectConfirmation().getConfirmationMethods().size(), 2);
- Assert.assertEquals(subject.getSubjectConfirmation().getConfirmationMethods().get(0).getURI(),
+ assert subject != null;
+ sc = subject.getSubjectConfirmation();
+ assert sc != null;
+ Assert.assertEquals(sc.getConfirmationMethods().size(), 2);
+ Assert.assertEquals(sc.getConfirmationMethods().get(0).getURI(),
ConfirmationMethod.METHOD_BEARER);
- Assert.assertEquals(subject.getSubjectConfirmation().getConfirmationMethods().get(1).getURI(),
+ Assert.assertEquals(sc.getConfirmationMethods().get(1).getURI(),
ConfirmationMethod.METHOD_SENDER_VOUCHES);
}
@Test void testArtifact() throws ComponentInitializationException {
addStatements();
- prc.getOutboundMessageContext().getSubcontext(SAMLBindingContext.class, true).setBindingUri(
+ prc.ensureOutboundMessageContext().ensureSubcontext(SAMLBindingContext.class).setBindingUri(
SAMLConstants.SAML1_ARTIFACT_BINDING_URI);
- action.setMethods(Collections.singleton(ConfirmationMethod.METHOD_BEARER));
+ action.setMethods(CollectionSupport.singleton(ConfirmationMethod.METHOD_BEARER));
action.initialize();
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- Assertion assertion = ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().get(0);
+ Assertion assertion = prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().get(0);
Subject subject = assertion.getAuthenticationStatements().get(0).getSubject();
- Assert.assertNotNull(subject);
- Assert.assertNotNull(subject.getSubjectConfirmation());
- Assert.assertEquals(subject.getSubjectConfirmation().getConfirmationMethods().size(), 1);
- Assert.assertEquals(subject.getSubjectConfirmation().getConfirmationMethods().get(0).getURI(),
- ConfirmationMethod.METHOD_ARTIFACT);
+ assert subject != null;
+ final SubjectConfirmation sc = subject.getSubjectConfirmation();
+ assert sc != null;
+ Assert.assertEquals(sc.getConfirmationMethods().size(), 1);
+ Assert.assertEquals(sc.getConfirmationMethods().get(0).getURI(), ConfirmationMethod.METHOD_ARTIFACT);
}
/** Set up the test message with some statements. */
@@ -174,7 +178,7 @@ public class AddSubjectConfirmationToSubjectsTest extends OpenSAMLInitBaseTestCa
response.getAssertions().add(SAML1ActionTestingSupport.buildAssertion());
response.getAssertions().get(0).getAuthenticationStatements().add(SAML1ActionTestingSupport.buildAuthenticationStatement());
response.getAssertions().get(1).getAttributeStatements().add(SAML1ActionTestingSupport.buildAttributeStatement());
- prc.getOutboundMessageContext().setMessage(response);
+ prc.ensureOutboundMessageContext().setMessage(response);
}
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/CopyNameIdentifierFromRequestTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/CopyNameIdentifierFromRequestTest.java
index de11606db..f8a3065fa 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/CopyNameIdentifierFromRequestTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/CopyNameIdentifierFromRequestTest.java
@@ -23,6 +23,7 @@ import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.profile.testing.ActionTestingSupport;
import org.opensaml.profile.testing.RequestContextBuilder;
import org.opensaml.saml.saml1.core.Assertion;
+import org.opensaml.saml.saml1.core.NameIdentifier;
import org.opensaml.saml.saml1.core.Response;
import org.opensaml.saml.saml1.core.Subject;
import org.opensaml.saml.saml1.testing.SAML1ActionTestingSupport;
@@ -34,6 +35,7 @@ import net.shibboleth.shared.component.ComponentInitializationException;
/** Test for {@link CopyNameIdentifierFromRequest}. */
+ at SuppressWarnings("javadoc")
public class CopyNameIdentifierFromRequestTest extends OpenSAMLInitBaseTestCase {
private static final String NAME_QUALIFIER = "https://idp.example.org";
@@ -58,17 +60,17 @@ public class CopyNameIdentifierFromRequestTest extends OpenSAMLInitBaseTestCase
@Test
public void testNoAssertions() {
- prc.getOutboundMessageContext().setMessage(SAML1ActionTestingSupport.buildResponse());
+ prc.ensureOutboundMessageContext().setMessage(SAML1ActionTestingSupport.buildResponse());
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- Assert.assertTrue(((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().isEmpty());
+ Assert.assertTrue(prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().isEmpty());
}
@Test
public void testNoRequest() {
- prc.getOutboundMessageContext().setMessage(SAML1ActionTestingSupport.buildResponse());
- ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().add(SAML1ActionTestingSupport.buildAssertion());
+ prc.ensureOutboundMessageContext().setMessage(SAML1ActionTestingSupport.buildResponse());
+ prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().add(SAML1ActionTestingSupport.buildAssertion());
addStatements();
action.execute(prc);
@@ -77,11 +79,11 @@ public class CopyNameIdentifierFromRequestTest extends OpenSAMLInitBaseTestCase
@Test
public void testNoName() {
- prc.getOutboundMessageContext().setMessage(SAML1ActionTestingSupport.buildResponse());
- ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().add(SAML1ActionTestingSupport.buildAssertion());
+ prc.ensureOutboundMessageContext().setMessage(SAML1ActionTestingSupport.buildResponse());
+ prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().add(SAML1ActionTestingSupport.buildAssertion());
addStatements();
- prc.getInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildAttributeQueryRequest(null));
+ prc.ensureInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildAttributeQueryRequest(null));
action.execute(prc);
ActionTestingSupport.assertEvent(prc, EventIds.INVALID_MSG_CTX);
@@ -90,19 +92,22 @@ public class CopyNameIdentifierFromRequestTest extends OpenSAMLInitBaseTestCase
@Test void testCopy() {
Subject subject = SAML1ActionTestingSupport.buildSubject("jdoe");
- subject.getNameIdentifier().setNameQualifier(NAME_QUALIFIER);
- prc.getInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildAttributeQueryRequest(subject));
+ NameIdentifier nameID = subject.getNameIdentifier();
+ assert nameID != null;
+ nameID.setNameQualifier(NAME_QUALIFIER);
+ prc.ensureInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildAttributeQueryRequest(subject));
addStatements();
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- Assertion assertion = ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().get(0);
+ Assertion assertion = prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().get(0);
subject = assertion.getAttributeStatements().get(0).getSubject();
- Assert.assertNotNull(subject);
- Assert.assertNotNull(subject.getNameIdentifier());
- Assert.assertEquals(subject.getNameIdentifier().getValue(), "jdoe");
- Assert.assertEquals(subject.getNameIdentifier().getNameQualifier(), NAME_QUALIFIER);
+ assert subject != null;
+ nameID = subject.getNameIdentifier();
+ assert nameID != null;
+ Assert.assertEquals(nameID.getValue(), "jdoe");
+ Assert.assertEquals(nameID.getNameQualifier(), NAME_QUALIFIER);
}
/** Set up the test message with some statements. */
@@ -110,7 +115,7 @@ public class CopyNameIdentifierFromRequestTest extends OpenSAMLInitBaseTestCase
final Response response = SAML1ActionTestingSupport.buildResponse();
response.getAssertions().add(SAML1ActionTestingSupport.buildAssertion());
response.getAssertions().get(0).getAttributeStatements().add(SAML1ActionTestingSupport.buildAttributeStatement());
- prc.getOutboundMessageContext().setMessage(response);
+ prc.ensureOutboundMessageContext().setMessage(response);
}
}
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/ResolveArtifactsTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/ResolveArtifactsTest.java
index a0cdb436c..f3907f213 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/ResolveArtifactsTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/profile/impl/ResolveArtifactsTest.java
@@ -38,6 +38,7 @@ import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
/** {@link ResolveArtifacts} unit test. */
+ at SuppressWarnings("javadoc")
public class ResolveArtifactsTest extends OpenSAMLInitBaseTestCase {
private BasicSAMLArtifactMap artifactMap;
@@ -49,7 +50,7 @@ public class ResolveArtifactsTest extends OpenSAMLInitBaseTestCase {
@BeforeMethod public void setUp() throws ComponentInitializationException {
prc = new RequestContextBuilder().setOutboundMessage(
SAML1ActionTestingSupport.buildResponse()).buildProfileRequestContext();
- prc.getInboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true).setEntityId("SP");
+ prc.ensureInboundMessageContext().ensureSubcontext(SAMLPeerEntityContext.class).setEntityId("SP");
artifactMap = new BasicSAMLArtifactMap();
artifactMap.initialize();
@@ -66,77 +67,77 @@ public class ResolveArtifactsTest extends OpenSAMLInitBaseTestCase {
}
@Test public void testNoArtifacts() {
- prc.getInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildArtifactRequest((String[]) null));
+ prc.ensureInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildArtifactRequest((String[]) null));
action.execute(prc);
ActionTestingSupport.assertEvent(prc, EventIds.INVALID_MSG_CTX);
}
@Test public void testNoResponse() {
- prc.getInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildArtifactRequest("foo"));
- prc.getOutboundMessageContext().setMessage(null);
+ prc.ensureInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildArtifactRequest("foo"));
+ prc.ensureOutboundMessageContext().setMessage(null);
action.execute(prc);
ActionTestingSupport.assertEvent(prc, EventIds.INVALID_MSG_CTX);
}
@Test public void testMissingArtifacts() throws IOException {
artifactMap.put("bar", "SP", "IdP", SAML1ActionTestingSupport.buildAssertion());
- prc.getInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildArtifactRequest("foo","bar"));
+ prc.ensureInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildArtifactRequest("foo","bar"));
action.execute(prc);
ActionTestingSupport.assertEvent(prc, SAMLEventIds.UNABLE_RESOLVE_ARTIFACT);
- Assert.assertTrue(((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().isEmpty());
+ Assert.assertTrue(prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().isEmpty());
Assert.assertNull(artifactMap.get("bar"));
}
@Test public void testWrongMessageType() throws IOException {
artifactMap.put("foo", "SP", "IdP", SAML1ActionTestingSupport.buildResponse());
- prc.getInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildArtifactRequest("foo"));
+ prc.ensureInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildArtifactRequest("foo"));
action.execute(prc);
ActionTestingSupport.assertEvent(prc, SAMLEventIds.UNABLE_RESOLVE_ARTIFACT);
- Assert.assertTrue(((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().isEmpty());
+ Assert.assertTrue(prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().isEmpty());
Assert.assertNull(artifactMap.get("foo"));
}
@Test public void testWrongSP() throws IOException {
artifactMap.put("foo", "SP2", "IdP", SAML1ActionTestingSupport.buildAssertion());
- prc.getInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildArtifactRequest("foo"));
+ prc.ensureInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildArtifactRequest("foo"));
action.execute(prc);
ActionTestingSupport.assertEvent(prc, SAMLEventIds.UNABLE_RESOLVE_ARTIFACT);
- Assert.assertTrue(((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().isEmpty());
+ Assert.assertTrue(prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().isEmpty());
Assert.assertNull(artifactMap.get("foo"));
}
@Test public void testWrongIdP() throws IOException {
artifactMap.put("foo", "SP", "IdP2", SAML1ActionTestingSupport.buildAssertion());
- prc.getInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildArtifactRequest("foo"));
+ prc.ensureInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildArtifactRequest("foo"));
action.execute(prc);
ActionTestingSupport.assertEvent(prc, SAMLEventIds.UNABLE_RESOLVE_ARTIFACT);
- Assert.assertTrue(((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().isEmpty());
+ Assert.assertTrue(prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().isEmpty());
Assert.assertNull(artifactMap.get("foo"));
}
@Test public void testOne() throws IOException {
artifactMap.put("foo", "SP", "IdP", SAML1ActionTestingSupport.buildAssertion());
- prc.getInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildArtifactRequest("foo"));
+ prc.ensureInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildArtifactRequest("foo"));
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- Assert.assertEquals(((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().size(), 1);
+ Assert.assertEquals(prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().size(), 1);
Assert.assertNull(artifactMap.get("foo"));
}
@Test public void testMultiple() throws IOException {
artifactMap.put("foo", "SP", "IdP", SAML1ActionTestingSupport.buildAssertion());
artifactMap.put("bar", "SP", "IdP", SAML1ActionTestingSupport.buildAssertion());
- prc.getInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildArtifactRequest("foo", "bar"));
+ prc.ensureInboundMessageContext().setMessage(SAML1ActionTestingSupport.buildArtifactRequest("foo", "bar"));
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
- Assert.assertEquals(((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().size(), 2);
+ Assert.assertEquals(prc.ensureOutboundMessageContext().ensureMessage(Response.class).getAssertions().size(), 2);
Assert.assertNull(artifactMap.get("foo"));
Assert.assertNull(artifactMap.get("bar"));
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list