[java-identity-provider] 02/02: IDP-2069 Null handling
Rod Widdowson
rdw at steadingsoftware.com
Tue Mar 7 14:34:41 UTC 2023
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch main
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=6b8fedb92f261541a4c4b5dc7a9132cbaef7357a
commit 6b8fedb92f261541a4c4b5dc7a9132cbaef7357a
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Tue Mar 7 13:25:55 2023 +0000
IDP-2069 Null handling
https://shibboleth.atlassian.net/browse/IDP-2069
saml-impl tests
---
.../impl/tests/FinalizeAuthenticationTest.java | 75 ++++---
.../profile/impl/tests/FilterAttributesTest.java | 45 ++--
.../profile/impl/tests/ResolveAttributesTest.java | 25 ++-
.../RelyingPartyConfigurationResolverTest.java | 9 +-
...uteSourcedSAML1NameIdentifierGeneratorTest.java | 112 +++++++---
.../AttributeSourcedSAML2NameIDGeneratorTest.java | 113 ++++++----
.../impl/CryptoTransientNameIDDecoderTest.java | 9 +-
.../CryptoTransientNameIdentifierDecoderTest.java | 10 +-
...oTransientSAML1NameIdentifierGeneratorTest.java | 22 +-
.../CryptoTransientSAML2NameIDGeneratorTest.java | 21 +-
.../nameid/impl/NameIDCanonicalizationTest.java | 12 +-
.../impl/NameIdentifierCanonicalizationTest.java | 12 +-
.../impl/PersistentSAML2NameIDGeneratorTest.java | 66 ++++--
.../nameid/impl/StoredPersistentIdDecoderTest.java | 34 +--
...dTransientSAML1NameIdentifierGeneratorTest.java | 25 ++-
.../StoredTransientSAML2NameIDGeneratorTest.java | 22 +-
.../idp/saml/nameid/impl/TransientDecoderTest.java | 8 +-
.../DefaultNameIdentifierFormatStrategyTest.java | 13 +-
.../impl/ExtractSubjectFromRequestTest.java | 35 ++-
.../FinalizeSAMLSubjectCanonicalizationTest.java | 4 +-
.../impl/InitializeAuthenticationContextTest.java | 50 +++--
...itializeOutboundMessageContextForErrorTest.java | 56 +++--
.../impl/InitializeOutboundMessageContextTest.java | 33 ++-
...tializeRelyingPartyContextFromSAMLPeerTest.java | 7 +-
.../PopulateBindingAndEndpointContextsTest.java | 248 ++++++++++++++-------
.../impl/AddAttributeStatementToAssertionTest.java | 70 ++++--
.../AddAuthenticationStatementToAssertionTest.java | 44 +++-
.../FilterByQueriedAttributeDesignatorsTest.java | 8 +-
.../IdPInitiatedSSORequestMessageDecoderTest.java | 10 +-
.../saml1/profile/impl/SAML1ActionSupportTest.java | 25 ++-
.../tests/ProxyRestrictionLookupFunctionTest.java | 38 +++-
.../impl/AddAttributeStatementToAssertionTest.java | 57 +++--
.../saml2/profile/impl/AddAuthnRequestTest.java | 159 ++++++++-----
.../impl/AddAuthnStatementToAssertionTest.java | 69 ++++--
.../impl/EnforceDisallowedSSOFeaturesTest.java | 33 ++-
.../impl/FilterByQueriedAttributesTest.java | 8 +-
.../IdPInitiatedSSORequestMessageDecoderTest.java | 10 +-
.../impl/PopulateEncryptionParametersTest.java | 39 ++--
.../profile/impl/PreProcessLogoutMessageTest.java | 25 ++-
.../ProcessAssertionsForAuthenticationTest.java | 25 ++-
.../profile/impl/ProcessLogoutRequestTest.java | 196 ++++++++++------
.../impl/ProcessRequestedAuthnContextTest.java | 103 ++++++---
.../saml2/profile/impl/SAML2ActionSupportTest.java | 19 +-
.../profile/impl/SessionManagerBaseTestCase.java | 8 +-
.../impl/PrepareInboundMessageContextTest.java | 23 +-
45 files changed, 1375 insertions(+), 660 deletions(-)
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/authn/impl/tests/FinalizeAuthenticationTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/authn/impl/tests/FinalizeAuthenticationTest.java
index a4a9d5676..3bba3982a 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/authn/impl/tests/FinalizeAuthenticationTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/authn/impl/tests/FinalizeAuthenticationTest.java
@@ -17,6 +17,7 @@
package net.shibboleth.idp.authn.impl.tests;
+import java.security.Principal;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -41,6 +42,7 @@ import net.shibboleth.idp.profile.testing.ActionTestingSupport;
import net.shibboleth.idp.profile.testing.RequestContextBuilder;
import net.shibboleth.idp.saml.saml2.profile.config.impl.BrowserSSOProfileConfiguration;
import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.FunctionSupport;
@@ -79,13 +81,16 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
initializeMembers();
final PopulateAuthenticationContext bootstrap = new PopulateAuthenticationContext();
+ assert authenticationFlows!=null;
bootstrap.setAvailableFlows(authenticationFlows);
bootstrap.setPotentialFlowsLookupStrategy(FunctionSupport.constant(authenticationFlows));
bootstrap.initialize();
bootstrap.execute(src);
- prc.getSubcontext(RelyingPartyContext.class).setProfileConfig(new BrowserSSOProfileConfiguration());
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!= null;
+ rpCtx.setProfileConfig(new BrowserSSOProfileConfiguration());
action = new FinalizeAuthentication();
action.initialize();
@@ -100,6 +105,7 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
@Test public void testMismatch() {
final AuthenticationContext authCtx = prc.getSubcontext(AuthenticationContext.class);
+ assert authCtx!= null;
authCtx.setRequiredName("foo");
final AuthenticationResult active = new AuthenticationResult("test2", new Subject());
@@ -107,19 +113,20 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
authCtx.setAuthenticationResult(active);
- prc.getSubcontext(SubjectCanonicalizationContext.class, true).setPrincipalName("bar");
+ prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("bar");
final Event event = action.execute(src);
ActionTestingSupport.assertEvent(event, AuthnEventIds.INVALID_SUBJECT);
}
@Test public void testRequestUnsupported() {
- prc.getSubcontext(SubjectCanonicalizationContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
final AuthenticationResult active = new AuthenticationResult("test2", new Subject());
active.getSubject().getPrincipals().add(new TestPrincipal("bar2"));
final AuthenticationContext authCtx = prc.getSubcontext(AuthenticationContext.class);
+ assert authCtx!=null;
authCtx.setAuthenticationResult(active);
final RequestedPrincipalContext rpCtx = new RequestedPrincipalContext();
@@ -136,12 +143,13 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
}
@Test public void testSwitchesPrincipal() {
- prc.getSubcontext(SubjectCanonicalizationContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
final AuthenticationResult active = new AuthenticationResult("test2", new Subject());
active.getSubject().getPrincipals().add(new TestPrincipal("bar2"));
final AuthenticationContext authCtx = prc.getSubcontext(AuthenticationContext.class);
+ assert authCtx!=null;
authCtx.setAuthenticationResult(active);
final RequestedPrincipalContext rpCtx = new RequestedPrincipalContext();
@@ -149,21 +157,23 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
TestPrincipal.class, "florp", new ExactPrincipalEvalPredicateFactory());
rpCtx.setMatchingPrincipal(new TestPrincipal("bar1"));
rpCtx.setOperator("florp");
- rpCtx.setRequestedPrincipals(Collections.singletonList(new TestPrincipal("bar2")));
+ rpCtx.setRequestedPrincipals(CollectionSupport.singletonList(new TestPrincipal("bar2")));
authCtx.addSubcontext(rpCtx);
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
SubjectContext sc = prc.getSubcontext(SubjectContext.class);
- Assert.assertNotNull(sc);
+ assert sc!= null;
Assert.assertEquals(sc.getPrincipalName(), "foo");
Assert.assertEquals(sc.getAuthenticationResults().size(), 1);
- Assert.assertEquals(rpCtx.getMatchingPrincipal().getName(), "bar2");
+ final Principal matchingPrincipal = rpCtx.getMatchingPrincipal();
+ assert matchingPrincipal!= null;
+ Assert.assertEquals(matchingPrincipal.getName(), "bar2");
}
@Test public void testNothingActive() {
- prc.getSubcontext(SubjectCanonicalizationContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
final Event event = action.execute(src);
@@ -174,17 +184,18 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
@Test public void testOneActive() {
final AuthenticationResult active = new AuthenticationResult("test2", new Subject());
active.getSubject().getPrincipals().add(
- new ProxyAuthenticationPrincipal(Collections.singletonList(ActionTestingSupport.OUTBOUND_MSG_ISSUER)));
+ new ProxyAuthenticationPrincipal(CollectionSupport.singletonList(ActionTestingSupport.OUTBOUND_MSG_ISSUER)));
final AuthenticationContext authCtx = prc.getSubcontext(AuthenticationContext.class);
+ assert authCtx!=null;
authCtx.setActiveResults(Arrays.asList(active));
authCtx.setAuthenticationResult(active);
- prc.getSubcontext(SubjectCanonicalizationContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
SubjectContext sc = prc.getSubcontext(SubjectContext.class);
- Assert.assertNotNull(sc);
+ assert sc!= null;
Assert.assertEquals(sc.getPrincipalName(), "foo");
Assert.assertEquals(sc.getAuthenticationResults().size(), 1);
@@ -195,7 +206,7 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
ActionTestingSupport.assertProceedEvent(event);
sc = prc.getSubcontext(SubjectContext.class);
- Assert.assertNotNull(sc);
+ assert sc!= null;
Assert.assertEquals(sc.getPrincipalName(), "foo");
Assert.assertEquals(sc.getAuthenticationResults().size(), 1);
}
@@ -204,15 +215,16 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
final AuthenticationResult active1 = new AuthenticationResult("test1", new Subject());
final AuthenticationResult active2 = new AuthenticationResult("test2", new Subject());
final AuthenticationContext authCtx = prc.getSubcontext(AuthenticationContext.class);
+ assert authCtx!=null;
authCtx.setActiveResults(Arrays.asList(active1));
authCtx.setAuthenticationResult(active2);
- prc.getSubcontext(SubjectCanonicalizationContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
final SubjectContext sc = prc.getSubcontext(SubjectContext.class);
- Assert.assertNotNull(sc);
+ assert sc!= null;
Assert.assertEquals(sc.getPrincipalName(), "foo");
Assert.assertEquals(sc.getAuthenticationResults().size(), 2);
}
@@ -220,13 +232,14 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
@Test public void testZeroProxyCount() {
final AuthenticationResult active = new AuthenticationResult("test2", new Subject());
final ProxyAuthenticationPrincipal proxy =
- new ProxyAuthenticationPrincipal(Collections.singletonList(ActionTestingSupport.OUTBOUND_MSG_ISSUER));
+ new ProxyAuthenticationPrincipal(CollectionSupport.singletonList(ActionTestingSupport.OUTBOUND_MSG_ISSUER));
proxy.setProxyCount(0);
active.getSubject().getPrincipals().add(proxy);
final AuthenticationContext authCtx = prc.getSubcontext(AuthenticationContext.class);
+ assert authCtx!=null;
authCtx.setActiveResults(Arrays.asList(active));
authCtx.setAuthenticationResult(active);
- prc.getSubcontext(SubjectCanonicalizationContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
final Event event = action.execute(src);
ActionTestingSupport.assertEvent(event, AuthnEventIds.REQUEST_UNSUPPORTED);
@@ -236,21 +249,24 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
@Test public void testZeroProxyCountAdminFlow() {
final AuthenticationResult active = new AuthenticationResult("test2", new Subject());
final ProxyAuthenticationPrincipal proxy =
- new ProxyAuthenticationPrincipal(Collections.singletonList(ActionTestingSupport.OUTBOUND_MSG_ISSUER));
+ new ProxyAuthenticationPrincipal(CollectionSupport.singletonList(ActionTestingSupport.OUTBOUND_MSG_ISSUER));
proxy.setProxyCount(0);
active.getSubject().getPrincipals().add(proxy);
final AuthenticationContext authCtx = prc.getSubcontext(AuthenticationContext.class);
+ assert authCtx!=null;
authCtx.setActiveResults(Arrays.asList(active));
authCtx.setAuthenticationResult(active);
- prc.getSubcontext(SubjectCanonicalizationContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
- prc.getSubcontext(RelyingPartyContext.class).setProfileConfig(new BasicAdministrativeFlowDescriptor("admin/test"));
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!= null;
+ rpCtx.setProfileConfig(new BasicAdministrativeFlowDescriptor("admin/test"));
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
SubjectContext sc = prc.getSubcontext(SubjectContext.class);
- Assert.assertNotNull(sc);
+ assert sc!= null;
Assert.assertEquals(sc.getPrincipalName(), "foo");
Assert.assertEquals(sc.getAuthenticationResults().size(), 1);
}
@@ -258,13 +274,14 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
@Test public void testZeroProxyCountNoRP() {
final AuthenticationResult active = new AuthenticationResult("test2", new Subject());
final ProxyAuthenticationPrincipal proxy =
- new ProxyAuthenticationPrincipal(Collections.singletonList(ActionTestingSupport.OUTBOUND_MSG_ISSUER));
+ new ProxyAuthenticationPrincipal(CollectionSupport.singletonList(ActionTestingSupport.OUTBOUND_MSG_ISSUER));
proxy.setProxyCount(0);
active.getSubject().getPrincipals().add(proxy);
final AuthenticationContext authCtx = prc.getSubcontext(AuthenticationContext.class);
+ assert authCtx!=null;
authCtx.setActiveResults(Arrays.asList(active));
authCtx.setAuthenticationResult(active);
- prc.getSubcontext(SubjectCanonicalizationContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
prc.removeSubcontext(RelyingPartyContext.class);
@@ -272,7 +289,7 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
ActionTestingSupport.assertProceedEvent(event);
SubjectContext sc = prc.getSubcontext(SubjectContext.class);
- Assert.assertNotNull(sc);
+ assert sc!= null;
Assert.assertEquals(sc.getPrincipalName(), "foo");
Assert.assertEquals(sc.getAuthenticationResults().size(), 1);
}
@@ -280,20 +297,21 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
@Test public void testValidProxyAudience() {
final AuthenticationResult active = new AuthenticationResult("test2", new Subject());
final ProxyAuthenticationPrincipal proxy =
- new ProxyAuthenticationPrincipal(Collections.singletonList(ActionTestingSupport.OUTBOUND_MSG_ISSUER));
+ new ProxyAuthenticationPrincipal(CollectionSupport.singletonList(ActionTestingSupport.OUTBOUND_MSG_ISSUER));
proxy.setProxyCount(10);
proxy.getAudiences().add(ActionTestingSupport.INBOUND_MSG_ISSUER);
active.getSubject().getPrincipals().add(proxy);
final AuthenticationContext authCtx = prc.getSubcontext(AuthenticationContext.class);
+ assert authCtx!=null;
authCtx.setActiveResults(Arrays.asList(active));
authCtx.setAuthenticationResult(active);
- prc.getSubcontext(SubjectCanonicalizationContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
SubjectContext sc = prc.getSubcontext(SubjectContext.class);
- Assert.assertNotNull(sc);
+ assert sc!= null;
Assert.assertEquals(sc.getPrincipalName(), "foo");
Assert.assertEquals(sc.getAuthenticationResults().size(), 1);
}
@@ -301,14 +319,15 @@ public class FinalizeAuthenticationTest extends OpenSAMLInitBaseTestCase {
@Test public void testInvalidProxyAudience() {
final AuthenticationResult active = new AuthenticationResult("test2", new Subject());
final ProxyAuthenticationPrincipal proxy =
- new ProxyAuthenticationPrincipal(Collections.singletonList(ActionTestingSupport.OUTBOUND_MSG_ISSUER));
+ new ProxyAuthenticationPrincipal(CollectionSupport.singletonList(ActionTestingSupport.OUTBOUND_MSG_ISSUER));
proxy.setProxyCount(10);
proxy.getAudiences().add(ActionTestingSupport.OUTBOUND_MSG_ISSUER);
active.getSubject().getPrincipals().add(proxy);
final AuthenticationContext authCtx = prc.getSubcontext(AuthenticationContext.class);
+ assert authCtx!=null;
authCtx.setActiveResults(Arrays.asList(active));
authCtx.setAuthenticationResult(active);
- prc.getSubcontext(SubjectCanonicalizationContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
final Event event = action.execute(src);
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/profile/impl/tests/FilterAttributesTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/profile/impl/tests/FilterAttributesTest.java
index 517c96d0e..77ce4be2c 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/profile/impl/tests/FilterAttributesTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/profile/impl/tests/FilterAttributesTest.java
@@ -22,6 +22,8 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
+import javax.annotation.Nonnull;
+
import net.shibboleth.idp.attribute.IdPAttribute;
import net.shibboleth.idp.attribute.IdPAttributeValue;
import net.shibboleth.idp.attribute.StringAttributeValue;
@@ -92,7 +94,9 @@ public class FilterAttributesTest {
@Test public void testNoAttributes() throws Exception {
prc.getSubcontext(SubjectContext.class, true);
- prc.getSubcontext(RelyingPartyContext.class).getSubcontext(AttributeContext.class, true);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!= null;
+ rpCtx.getOrCreateSubcontext(AttributeContext.class);
final AttributeFilterImpl engine = new AttributeFilterImpl("test", Collections.emptyList());
engine.initialize();
@@ -142,7 +146,9 @@ public class FilterAttributesTest {
final AttributeContext attributeCtx = new AttributeContext();
attributeCtx.setIdPAttributes(attributes);
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attributeCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!= null;
+ rpCtx.addSubcontext(attributeCtx);
final FilterAttributes action = new FilterAttributes(new MockReloadableService<>(engine));
action.initialize();
@@ -151,12 +157,11 @@ public class FilterAttributesTest {
ActionTestingSupport.assertProceedEvent(event);
// The attribute filter context should be removed by the filter attributes action.
- Assert.assertNull(prc.getSubcontext(RelyingPartyContext.class).getSubcontext(
+ Assert.assertNull(rpCtx.getSubcontext(
AttributeFilterContext.class));
- final AttributeContext resultAttributeCtx =
- prc.getSubcontext(RelyingPartyContext.class).getSubcontext(AttributeContext.class);
- Assert.assertNotNull(resultAttributeCtx);
+ final AttributeContext resultAttributeCtx = rpCtx.getSubcontext(AttributeContext.class);
+ assert resultAttributeCtx!=null;
final Map<String, IdPAttribute> resultAttributes = resultAttributeCtx.getIdPAttributes();
Assert.assertEquals(resultAttributes.size(), 1);
@@ -205,10 +210,12 @@ public class FilterAttributesTest {
final AttributeContext attributeCtx = new AttributeContext();
attributeCtx.setIdPAttributes(attributes);
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attributeCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!= null;
+ rpCtx.addSubcontext(attributeCtx);
final AttributeFilterContext attributeFilterCtx = new AttributeFilterContext();
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attributeFilterCtx);
+ rpCtx.addSubcontext(attributeFilterCtx);
final FilterAttributes action = new FilterAttributes(new MockReloadableService<>(engine));
action.initialize();
@@ -217,12 +224,10 @@ public class FilterAttributesTest {
ActionTestingSupport.assertProceedEvent(event);
// The attribute filter context should be removed by the filter attributes action.
- Assert.assertNull(prc.getSubcontext(RelyingPartyContext.class).getSubcontext(
- AttributeFilterContext.class));
+ Assert.assertNull(rpCtx.getSubcontext(AttributeFilterContext.class));
- final AttributeContext resultAttributeCtx =
- prc.getSubcontext(RelyingPartyContext.class).getSubcontext(AttributeContext.class);
- Assert.assertNotNull(resultAttributeCtx);
+ final AttributeContext resultAttributeCtx = rpCtx.getSubcontext(AttributeContext.class);
+ assert resultAttributeCtx!=null;
final Map<String, IdPAttribute> resultAttributes = resultAttributeCtx.getIdPAttributes();
Assert.assertEquals(resultAttributes.size(), 1);
@@ -268,10 +273,12 @@ public class FilterAttributesTest {
final AttributeContext attributeCtx = new AttributeContext();
attributeCtx.setIdPAttributes(attributes);
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attributeCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!= null;
+ rpCtx.addSubcontext(attributeCtx);
final AttributeFilterContext attributeFilterCtx = new AttributeFilterContext();
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attributeFilterCtx);
+ rpCtx.addSubcontext(attributeFilterCtx);
final FilterAttributes action = new FilterAttributes(new MockReloadableService<>(engine));
action.initialize();
@@ -295,10 +302,12 @@ public class FilterAttributesTest {
final AttributeContext attributeCtx = new AttributeContext();
final List<IdPAttribute> attributes = Collections.singletonList(attribute1);
attributeCtx.setIdPAttributes(attributes);
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attributeCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!= null;
+ rpCtx.addSubcontext(attributeCtx);
final AttributeFilterContext attributeFilterCtx = new AttributeFilterContext();
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attributeFilterCtx);
+ rpCtx.addSubcontext(attributeFilterCtx);
final FilterAttributes action = new FilterAttributes(new MockReloadableService<>(null));
action.setMaskFailures(false);
@@ -323,7 +332,7 @@ public class FilterAttributesTest {
/** Always throws exception. */
@Override
- public IdPAttribute clone() throws CloneNotSupportedException {
+ public @Nonnull IdPAttribute clone() throws CloneNotSupportedException {
throw new CloneNotSupportedException();
}
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/profile/impl/tests/ResolveAttributesTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/profile/impl/tests/ResolveAttributesTest.java
index 8972b8b0b..79574b397 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/profile/impl/tests/ResolveAttributesTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/profile/impl/tests/ResolveAttributesTest.java
@@ -97,9 +97,11 @@ public class ResolveAttributesTest {
// The attribute resolution context should be removed by the resolve attributes action.
Assert.assertNull(prc.getSubcontext(AttributeResolutionContext.class));
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!= null;
final AttributeContext resolvedAttributeCtx =
- prc.getSubcontext(RelyingPartyContext.class).getSubcontext(AttributeContext.class);
- Assert.assertNotNull(resolvedAttributeCtx);
+ rpCtx.getSubcontext(AttributeContext.class);
+ assert resolvedAttributeCtx!=null;
final Map<String, IdPAttribute> resolvedAttributes = resolvedAttributeCtx.getIdPAttributes();
Assert.assertFalse(resolvedAttributes.isEmpty());
@@ -140,9 +142,10 @@ public class ResolveAttributesTest {
// The attribute resolution context should be removed by the resolve attributes action.
Assert.assertNull(prc.getSubcontext(AttributeResolutionContext.class));
- AttributeContext resolvedAttributeCtx =
- prc.getSubcontext(RelyingPartyContext.class).getSubcontext(AttributeContext.class);
- Assert.assertNotNull(resolvedAttributeCtx);
+ RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!= null;
+ AttributeContext resolvedAttributeCtx = rpCtx.getSubcontext(AttributeContext.class);
+ assert resolvedAttributeCtx != null;
final Map<String, IdPAttribute> resolvedAttributes = resolvedAttributeCtx.getIdPAttributes();
Assert.assertFalse(resolvedAttributes.isEmpty());
@@ -165,9 +168,10 @@ public class ResolveAttributesTest {
// The attribute resolution context should be removed by the resolve attributes action.
Assert.assertNull(prc.getSubcontext(AttributeResolutionContext.class));
- resolvedAttributeCtx =
- prc.getSubcontext(RelyingPartyContext.class).getSubcontext(AttributeContext.class);
- Assert.assertNotNull(resolvedAttributeCtx);
+ rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!= null;
+ resolvedAttributeCtx = rpCtx.getSubcontext(AttributeContext.class);
+ assert resolvedAttributeCtx != null;
Assert.assertTrue(resolvedAttributeCtx.getIdPAttributes().isEmpty());
}
@@ -195,8 +199,9 @@ public class ResolveAttributesTest {
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
- final AttributeContext resolvedAttributeCtx =
- prc.getSubcontext(RelyingPartyContext.class).getSubcontext(AttributeContext.class);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!= null;
+ final AttributeContext resolvedAttributeCtx = rpCtx.getSubcontext(AttributeContext.class);
Assert.assertNull(resolvedAttributeCtx);
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/relyingparty/impl/tests/RelyingPartyConfigurationResolverTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/relyingparty/impl/tests/RelyingPartyConfigurationResolverTest.java
index e1544e3a4..aeabdf654 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/relyingparty/impl/tests/RelyingPartyConfigurationResolverTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/relyingparty/impl/tests/RelyingPartyConfigurationResolverTest.java
@@ -23,6 +23,7 @@ import java.util.List;
import org.opensaml.core.criterion.EntityIdCriterion;
import org.opensaml.core.testing.XMLObjectBaseTestCase;
import org.opensaml.core.xml.XMLObject;
+import org.opensaml.core.xml.XMLObjectBuilder;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
import org.opensaml.core.xml.io.MarshallingException;
import org.opensaml.core.xml.schema.XSString;
@@ -123,6 +124,7 @@ public class RelyingPartyConfigurationResolverTest extends XMLObjectBaseTestCase
resolver = new DefaultRelyingPartyConfigurationResolver();
resolver.setId("resolver");
resolver.setUnverifiedConfiguration(anonRP);
+ assert defaultRP!=null;
resolver.setDefaultConfiguration(defaultRP);
}
@@ -190,6 +192,7 @@ public class RelyingPartyConfigurationResolverTest extends XMLObjectBaseTestCase
Iterable<RelyingPartyConfiguration> results = null;
RelyingPartyConfiguration result = null;
+ assert oneByGroup!=null & twoByGroup!=null;
final List<RelyingPartyConfiguration> rpConfigs = CollectionSupport.listOf(oneByGroup, twoByGroup);
resolver.setRelyingPartyConfigurations(rpConfigs);
@@ -232,6 +235,7 @@ public class RelyingPartyConfigurationResolverTest extends XMLObjectBaseTestCase
Iterable<RelyingPartyConfiguration> results = null;
RelyingPartyConfiguration result = null;
+ assert oneByTag!=null & twoByTag!=null;
final List<RelyingPartyConfiguration> rpConfigs = CollectionSupport.listOf(oneByTag, twoByTag);
resolver.setRelyingPartyConfigurations(rpConfigs);
@@ -296,8 +300,9 @@ public class RelyingPartyConfigurationResolverTest extends XMLObjectBaseTestCase
attr = attrs.get(0);
}
- XSString val = (XSString) XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilder(XSString.TYPE_NAME)
- .buildObject(AttributeValue.DEFAULT_ELEMENT_NAME, XSString.TYPE_NAME);
+ XMLObjectBuilder<?> builder = XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilder(XSString.TYPE_NAME);
+ assert builder!=null;
+ XSString val = (XSString) builder.buildObject(AttributeValue.DEFAULT_ELEMENT_NAME, XSString.TYPE_NAME);
val.setValue(value);
attr.getAttributeValues().add(val);
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML1NameIdentifierGeneratorTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML1NameIdentifierGeneratorTest.java
index 2bcc99d81..e6fe32a56 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML1NameIdentifierGeneratorTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML1NameIdentifierGeneratorTest.java
@@ -17,9 +17,10 @@
package net.shibboleth.idp.saml.nameid.impl;
-import java.util.Collections;
import java.util.List;
+import javax.annotation.Nonnull;
+
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
import org.opensaml.profile.context.ProfileRequestContext;
@@ -39,6 +40,8 @@ import net.shibboleth.idp.attribute.XMLObjectAttributeValue;
import net.shibboleth.idp.attribute.context.AttributeContext;
import net.shibboleth.idp.profile.testing.RequestContextBuilder;
import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
/** Unit test for {@link AttributeSourcedSAML1NameIdentifierGenerator}. */
@@ -103,56 +106,70 @@ public class AttributeSourcedSAML1NameIdentifierGeneratorTest extends OpenSAMLIn
}
@Test public void testNoSource() throws ComponentInitializationException, SAMLException {
- generator.setAttributeSourceIds(Collections.singletonList("bar"));
+ generator.setAttributeSourceIds(CollectionSupport.singletonList("bar"));
generator.initialize();
- Assert.assertNull(generator.generate(prc, generator.getFormat()));
+ final String format = generator.getFormat();
+ assert format != null && prc!=null;
+ Assert.assertNull(generator.generate(prc, format));
}
@Test public void testWrongType() throws Exception {
final int[] intArray = {1, 2, 3, 4};
final List<IdPAttributeValue> values = List.of(new IdPAttributeValue() {
- public Object getNativeValue() {
+ public @Nonnull Object getNativeValue() {
return intArray;
}
- public String getDisplayValue() {
- return intArray.toString();
+ public @Nonnull String getDisplayValue() {
+ final String result = intArray.toString();
+ assert result!=null;
+ return result;
}
}, saml2NameIdFor(OTHERID));
final IdPAttribute inputAttribute = new IdPAttribute(ATTR_NAME);
inputAttribute.setValues(values);
prc.getOrCreateSubcontext(RelyingPartyContext.class).getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
- Collections.singleton(inputAttribute));
+ CollectionSupport.singleton(inputAttribute));
- generator.setAttributeSourceIds(Collections.singletonList(ATTR_NAME));
+ generator.setAttributeSourceIds(CollectionSupport.singletonList(ATTR_NAME));
generator.initialize();
+ final String format = generator.getFormat();
+ assert format != null && prc!=null;
- Assert.assertNull(generator.generate(prc, generator.getFormat()));
+ Assert.assertNull(generator.generate(prc, format));
}
@Test public void testWrongFormat() throws Exception {
final IdPAttribute inputAttribute = new IdPAttribute(ATTR_NAME);
inputAttribute.setValues(List.of(saml1NameIdFor(NAME_1)));
- prc.getSubcontext(RelyingPartyContext.class).getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
- Collections.singleton(inputAttribute));
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
+ CollectionSupport.singleton(inputAttribute));
generator.setFormat(NameIdentifier.EMAIL);
- generator.setAttributeSourceIds(Collections.singletonList(ATTR_NAME));
+ generator.setAttributeSourceIds(CollectionSupport.singletonList(ATTR_NAME));
generator.initialize();
- Assert.assertNull(generator.generate(prc, generator.getFormat()));
+ final String format = generator.getFormat();
+ assert format != null && prc!=null;
+ Assert.assertNull(generator.generate(prc, format));
}
@Test public void testNameIdentifierValued() throws Exception {
final IdPAttribute inputAttribute = new IdPAttribute(ATTR_NAME);
inputAttribute.setValues(List.of(saml1NameIdFor(NAME_1)));
- prc.getSubcontext(RelyingPartyContext.class).getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
- Collections.singleton(inputAttribute));
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
+ CollectionSupport.singleton(inputAttribute));
- generator.setAttributeSourceIds(Collections.singletonList(ATTR_NAME));
+ generator.setAttributeSourceIds(CollectionSupport.singletonList(ATTR_NAME));
generator.initialize();
- final NameIdentifier outputNameId = generator.generate(prc, generator.getFormat());
+ final String format = generator.getFormat();
+ assert format != null && prc!=null;
+ final NameIdentifier outputNameId = generator.generate(prc, format);
- Assert.assertNotNull(outputNameId);
+ assert outputNameId!=null;
Assert.assertEquals(outputNameId.getValue(), NAME_1);
Assert.assertEquals(outputNameId.getFormat(), NameIdentifier.X509_SUBJECT);
Assert.assertEquals(outputNameId.getNameQualifier(), QUALIFIER);
@@ -161,14 +178,18 @@ public class AttributeSourcedSAML1NameIdentifierGeneratorTest extends OpenSAMLIn
@Test public void testMultiNameIdentifierValued() throws Exception {
final IdPAttribute inputAttribute = new IdPAttribute(ATTR_NAME);
inputAttribute.setValues(List.of(saml2NameIdFor(OTHERID), saml1NameIdFor(NAME_1)));
- prc.getSubcontext(RelyingPartyContext.class).getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
- Collections.singleton(inputAttribute));
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
+ CollectionSupport.singleton(inputAttribute));
- generator.setAttributeSourceIds(Collections.singletonList(ATTR_NAME));
+ generator.setAttributeSourceIds(CollectionSupport.singletonList(ATTR_NAME));
generator.initialize();
- final NameIdentifier outputNameId = generator.generate(prc, generator.getFormat());
+ final String format = generator.getFormat();
+ assert format != null && prc!=null;
+ final NameIdentifier outputNameId = generator.generate(prc, format);
- Assert.assertNotNull(outputNameId);
+ assert outputNameId!=null;
Assert.assertEquals(outputNameId.getValue(), NAME_1);
Assert.assertEquals(outputNameId.getFormat(), NameIdentifier.X509_SUBJECT);
Assert.assertEquals(outputNameId.getNameQualifier(), QUALIFIER);
@@ -177,34 +198,51 @@ public class AttributeSourcedSAML1NameIdentifierGeneratorTest extends OpenSAMLIn
@Test public void testStringValued() throws Exception {
final IdPAttribute inputAttribute = new IdPAttribute(ATTR_NAME);
inputAttribute.setValues(List.of(new StringAttributeValue(NAME_1)));
- prc.getSubcontext(RelyingPartyContext.class).getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
- Collections.singleton(inputAttribute));
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
+ CollectionSupport.singleton(inputAttribute));
- generator.setAttributeSourceIds(Collections.singletonList(ATTR_NAME));
+ generator.setAttributeSourceIds(CollectionSupport.singletonList(ATTR_NAME));
generator.initialize();
- final NameIdentifier outputNameId = generator.generate(prc, generator.getFormat());
+ final String format = generator.getFormat();
+ assert format != null && prc!=null;
+ final NameIdentifier outputNameId = generator.generate(prc, format);
- Assert.assertNotNull(outputNameId);
+ assert outputNameId!=null;
Assert.assertEquals(outputNameId.getValue(), NAME_1);
Assert.assertEquals(outputNameId.getFormat(), NameIdentifier.X509_SUBJECT);
- Assert.assertEquals(outputNameId.getNameQualifier(),
- ((net.shibboleth.profile.relyingparty.RelyingPartyConfiguration) prc.getSubcontext(RelyingPartyContext.class).getConfiguration()).getIssuer(prc));
+ final RelyingPartyContext rpCtx2 = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx2!=null;
+ final RelyingPartyConfiguration rpConfig = rpCtx.getConfiguration();
+ assert rpConfig!=null;
+
+ Assert.assertEquals(outputNameId.getNameQualifier(), rpConfig.getIssuer(prc));
}
@Test public void testScopeValued() throws Exception {
final IdPAttribute inputAttribute = new IdPAttribute(ATTR_NAME);
inputAttribute.setValues(List.of(new ScopedStringAttributeValue(NAME_1, QUALIFIER)));
- prc.getSubcontext(RelyingPartyContext.class).getSubcontext(AttributeContext.class, true).setIdPAttributes(
- Collections.singleton(inputAttribute));
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
+ CollectionSupport.singleton(inputAttribute));
- generator.setAttributeSourceIds(Collections.singletonList(ATTR_NAME));
+ generator.setAttributeSourceIds(CollectionSupport.singletonList(ATTR_NAME));
generator.initialize();
- final NameIdentifier outputNameId = generator.generate(prc, generator.getFormat());
+ final String format = generator.getFormat();
+ assert format != null && prc!=null;
+
+ final NameIdentifier outputNameId = generator.generate(prc, format);
- Assert.assertNotNull(outputNameId);
+ assert outputNameId!=null;
Assert.assertEquals(outputNameId.getValue(), NAME_1 + '@' + QUALIFIER);
Assert.assertEquals(outputNameId.getFormat(), NameIdentifier.X509_SUBJECT);
- Assert.assertEquals(outputNameId.getNameQualifier(),
- ((net.shibboleth.profile.relyingparty.RelyingPartyConfiguration) prc.getSubcontext(RelyingPartyContext.class).getConfiguration()).getIssuer(prc));
+ final RelyingPartyContext rpCtx2 = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx2!=null;
+ final RelyingPartyConfiguration rpConfig = rpCtx.getConfiguration();
+ assert rpConfig!=null;
+
+ Assert.assertEquals(outputNameId.getNameQualifier(), rpConfig.getIssuer(prc));
}
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML2NameIDGeneratorTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML2NameIDGeneratorTest.java
index 7b620035f..90f01a69a 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML2NameIDGeneratorTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/AttributeSourcedSAML2NameIDGeneratorTest.java
@@ -17,9 +17,10 @@
package net.shibboleth.idp.saml.nameid.impl;
-import java.util.Collections;
import java.util.List;
+import javax.annotation.Nonnull;
+
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
import org.opensaml.profile.context.ProfileRequestContext;
@@ -39,6 +40,8 @@ import net.shibboleth.idp.attribute.XMLObjectAttributeValue;
import net.shibboleth.idp.attribute.context.AttributeContext;
import net.shibboleth.idp.profile.testing.RequestContextBuilder;
import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
/** Unit test for {@link AttributeSourcedSAML2NameIDGenerator}. */
@@ -102,56 +105,71 @@ public class AttributeSourcedSAML2NameIDGeneratorTest extends OpenSAMLInitBaseTe
}
@Test public void testNoSource() throws ComponentInitializationException, SAMLException {
- generator.setAttributeSourceIds(Collections.singletonList("bar"));
+ generator.setAttributeSourceIds(CollectionSupport.singletonList("bar"));
generator.initialize();
- Assert.assertNull(generator.generate(prc, generator.getFormat()));
+ final String format = generator.getFormat();
+ assert format!=null && prc!=null;
+ Assert.assertNull(generator.generate(prc, format));
}
@Test public void testWrongType() throws Exception {
final int[] intArray = {1, 2, 3, 4};
final var values = List.of(new IdPAttributeValue() {
- public Object getNativeValue() {
+ public @Nonnull Object getNativeValue() {
return intArray;
}
- public String getDisplayValue() {
- return intArray.toString();
+ public @Nonnull String getDisplayValue() {
+ final String result = intArray.toString();
+ assert result != null;
+ return result;
}
}, saml1NameIdFor(OTHERID));
final IdPAttribute inputAttribute = new IdPAttribute(ATTR_NAME);
inputAttribute.setValues(values);
- prc.getSubcontext(RelyingPartyContext.class).getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
- Collections.singleton(inputAttribute));
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
+ CollectionSupport.singleton(inputAttribute));
- generator.setAttributeSourceIds(Collections.singletonList(ATTR_NAME));
+ generator.setAttributeSourceIds(CollectionSupport.singletonList(ATTR_NAME));
generator.initialize();
-
- Assert.assertNull(generator.generate(prc, generator.getFormat()));
+ final String format = generator.getFormat();
+ assert format!=null && prc!=null;
+ Assert.assertNull(generator.generate(prc, format));
}
@Test public void testWrongFormat() throws Exception {
final IdPAttribute inputAttribute = new IdPAttribute(ATTR_NAME);
inputAttribute.setValues(List.of(saml2NameIdFor(NAME_1)));
- prc.getSubcontext(RelyingPartyContext.class).getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
- Collections.singleton(inputAttribute));
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
+ CollectionSupport.singleton(inputAttribute));
generator.setFormat(NameID.EMAIL);
- generator.setAttributeSourceIds(Collections.singletonList(ATTR_NAME));
+ generator.setAttributeSourceIds(CollectionSupport.singletonList(ATTR_NAME));
generator.initialize();
- Assert.assertNull(generator.generate(prc, generator.getFormat()));
+ final String format = generator.getFormat();
+ assert format!=null && prc!=null;
+ Assert.assertNull(generator.generate(prc, format));
}
@Test public void testNameIDValued() throws Exception {
final IdPAttribute inputAttribute = new IdPAttribute(ATTR_NAME);
inputAttribute.setValues(List.of(saml2NameIdFor(NAME_1)));
- prc.getSubcontext(RelyingPartyContext.class).getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
- Collections.singleton(inputAttribute));
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
+ CollectionSupport.singleton(inputAttribute));
- generator.setAttributeSourceIds(Collections.singletonList(ATTR_NAME));
+ generator.setAttributeSourceIds(CollectionSupport.singletonList(ATTR_NAME));
generator.initialize();
- final NameID outputNameId = generator.generate(prc, generator.getFormat());
+ final String format = generator.getFormat();
+ assert format!=null && prc!=null;
+ final NameID outputNameId = generator.generate(prc, format);
- Assert.assertNotNull(outputNameId);
+ assert outputNameId != null;
Assert.assertEquals(outputNameId.getValue(), NAME_1);
Assert.assertEquals(outputNameId.getFormat(), NameID.X509_SUBJECT);
Assert.assertEquals(outputNameId.getNameQualifier(), QUALIFIER);
@@ -160,14 +178,18 @@ public class AttributeSourcedSAML2NameIDGeneratorTest extends OpenSAMLInitBaseTe
@Test public void testMultiNameIDValued() throws Exception {
final IdPAttribute inputAttribute = new IdPAttribute(ATTR_NAME);
inputAttribute.setValues(List.of(saml2NameIdFor(OTHERID), saml1NameIdFor(NAME_1)));
- prc.getSubcontext(RelyingPartyContext.class).getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
- Collections.singleton(inputAttribute));
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
+ CollectionSupport.singleton(inputAttribute));
- generator.setAttributeSourceIds(Collections.singletonList(ATTR_NAME));
+ generator.setAttributeSourceIds(CollectionSupport.singletonList(ATTR_NAME));
generator.initialize();
- final NameID outputNameId = generator.generate(prc, generator.getFormat());
+ final String format = generator.getFormat();
+ assert format!=null && prc!=null;
+ final NameID outputNameId = generator.generate(prc, format);
- Assert.assertNotNull(outputNameId);
+ assert outputNameId != null;
Assert.assertEquals(outputNameId.getValue(), OTHERID);
Assert.assertEquals(outputNameId.getFormat(), NameID.X509_SUBJECT);
Assert.assertEquals(outputNameId.getNameQualifier(), QUALIFIER);
@@ -176,36 +198,45 @@ public class AttributeSourcedSAML2NameIDGeneratorTest extends OpenSAMLInitBaseTe
@Test public void testStringValued() throws Exception {
final IdPAttribute inputAttribute = new IdPAttribute(ATTR_NAME);
inputAttribute.setValues(List.of(new StringAttributeValue(NAME_1)));
- prc.getSubcontext(RelyingPartyContext.class).getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
- Collections.singleton(inputAttribute));
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
+ CollectionSupport.singleton(inputAttribute));
- generator.setAttributeSourceIds(Collections.singletonList(ATTR_NAME));
+ generator.setAttributeSourceIds(CollectionSupport.singletonList(ATTR_NAME));
generator.initialize();
- final NameID outputNameId = generator.generate(prc, generator.getFormat());
+ final String format = generator.getFormat();
+ assert format!=null && prc!=null;
+ final NameID outputNameId = generator.generate(prc, format);
- Assert.assertNotNull(outputNameId);
+ assert outputNameId != null;
Assert.assertEquals(outputNameId.getValue(), NAME_1);
Assert.assertEquals(outputNameId.getFormat(), NameID.X509_SUBJECT);
- Assert.assertEquals(outputNameId.getNameQualifier(),
- ((net.shibboleth.profile.relyingparty.RelyingPartyConfiguration) prc.getSubcontext(RelyingPartyContext.class).getConfiguration()).getIssuer(prc));
+ final RelyingPartyConfiguration config = rpCtx.getConfiguration();
+ assert config != null;
+ Assert.assertEquals(outputNameId.getNameQualifier(), config.getIssuer(prc));
}
@Test public void testScopeValued() throws Exception {
final IdPAttribute inputAttribute = new IdPAttribute(ATTR_NAME);
inputAttribute.setValues(List.of(new ScopedStringAttributeValue(NAME_1, QUALIFIER)));
- prc.getSubcontext(RelyingPartyContext.class).getSubcontext(AttributeContext.class, true).setIdPAttributes(
- Collections.singleton(inputAttribute));
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.getOrCreateSubcontext(AttributeContext.class).setIdPAttributes(
+ CollectionSupport.singleton(inputAttribute));
- generator.setAttributeSourceIds(Collections.singletonList(ATTR_NAME));
+ generator.setAttributeSourceIds(CollectionSupport.singletonList(ATTR_NAME));
generator.initialize();
- final NameID outputNameId = generator.generate(prc, generator.getFormat());
+ final String format = generator.getFormat();
+ assert format!=null && prc!=null;
+ final NameID outputNameId = generator.generate(prc, format);
- Assert.assertNotNull(outputNameId);
+ assert outputNameId != null;
Assert.assertEquals(outputNameId.getValue(), NAME_1 + '@' + QUALIFIER);
Assert.assertEquals(outputNameId.getFormat(), NameID.X509_SUBJECT);
- Assert.assertEquals(outputNameId.getNameQualifier(),
- ((net.shibboleth.profile.relyingparty.RelyingPartyConfiguration) prc.getSubcontext(RelyingPartyContext.class).getConfiguration()).getIssuer(prc));
- Assert.assertEquals(outputNameId.getSPNameQualifier(),
- prc.getSubcontext(RelyingPartyContext.class).getRelyingPartyId());
+ final RelyingPartyConfiguration config = rpCtx.getConfiguration();
+ assert config != null;
+ Assert.assertEquals(outputNameId.getNameQualifier(), config.getIssuer(prc));
+ Assert.assertEquals(outputNameId.getSPNameQualifier(), rpCtx.getRelyingPartyId());
}
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientNameIDDecoderTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientNameIDDecoderTest.java
index dcd7a7196..db49d4954 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientNameIDDecoderTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientNameIDDecoderTest.java
@@ -32,6 +32,7 @@ import net.shibboleth.idp.saml.authn.principal.NameIDPrincipal;
import net.shibboleth.idp.saml.impl.testing.TestSources;
import net.shibboleth.idp.saml.nameid.NameDecoderException;
import net.shibboleth.idp.saml.nameid.NameIDCanonicalizationFlowDescriptor;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.security.DataSealer;
import net.shibboleth.shared.security.DataSealerException;
@@ -165,13 +166,13 @@ public class CryptoTransientNameIDDecoderTest extends OpenSAMLInitBaseTestCase {
ProfileRequestContext prc =
new RequestContextBuilder().setInboundMessageIssuer(TestSources.SP_ENTITY_ID).buildProfileRequestContext();
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName(TestSources.PRINCIPAL_ID);
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName(TestSources.PRINCIPAL_ID);
final NameID nameID = generator.generate(prc, generator.getFormat());
-
+ assert nameID!=null;
final NameIDCanonicalizationFlowDescriptor desc = new NameIDCanonicalizationFlowDescriptor();
desc.setId("C14NDesc");
- desc.setFormats(Collections.singleton(generator.getFormat()));
+ desc.setFormats(CollectionSupport.singleton(generator.getFormat()));
desc.initialize();
final NameIDCanonicalization canon = new NameIDCanonicalization();
@@ -179,7 +180,7 @@ public class CryptoTransientNameIDDecoderTest extends OpenSAMLInitBaseTestCase {
canon.initialize();
prc = new ProfileRequestContext();
- final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class, true);
+ final SubjectCanonicalizationContext scc = prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class);
final Subject subject = new Subject();
subject.getPrincipals().add(new NameIDPrincipal(nameID));
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientNameIdentifierDecoderTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientNameIdentifierDecoderTest.java
index 91e491cbc..2069a667d 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientNameIdentifierDecoderTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientNameIdentifierDecoderTest.java
@@ -28,6 +28,7 @@ import net.shibboleth.idp.profile.testing.RequestContextBuilder;
import net.shibboleth.idp.saml.authn.principal.NameIdentifierPrincipal;
import net.shibboleth.idp.saml.impl.testing.TestSources;
import net.shibboleth.idp.saml.nameid.NameIDCanonicalizationFlowDescriptor;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.security.DataSealer;
import net.shibboleth.shared.security.impl.BasicKeystoreKeyStrategy;
import net.shibboleth.shared.spring.resource.ResourceHelper;
@@ -101,21 +102,22 @@ public class CryptoTransientNameIdentifierDecoderTest extends OpenSAMLInitBaseTe
ProfileRequestContext prc =
new RequestContextBuilder().setInboundMessageIssuer(TestSources.SP_ENTITY_ID).buildProfileRequestContext();
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName(TestSources.PRINCIPAL_ID);
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName(TestSources.PRINCIPAL_ID);
final NameIdentifier nameID = generator.generate(prc, generator.getFormat());
-
+ assert nameID!=null;
final NameIDCanonicalizationFlowDescriptor desc = new NameIDCanonicalizationFlowDescriptor();
desc.setId("C14NDesc");
- desc.setFormats(Collections.singleton(generator.getFormat()));
+ desc.setFormats(CollectionSupport.singleton(generator.getFormat()));
desc.initialize();
final NameIdentifierCanonicalization canon = new NameIdentifierCanonicalization();
+ assert decoder!=null;
canon.setDecoder(decoder);
canon.initialize();
prc = new ProfileRequestContext();
- final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class, true);
+ final SubjectCanonicalizationContext scc = prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class);
final Subject subject = new Subject();
subject.getPrincipals().add(new NameIdentifierPrincipal(nameID));
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientSAML1NameIdentifierGeneratorTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientSAML1NameIdentifierGeneratorTest.java
index 42c535f42..c07e48b22 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientSAML1NameIdentifierGeneratorTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientSAML1NameIdentifierGeneratorTest.java
@@ -23,6 +23,7 @@ import java.time.Duration;
import net.shibboleth.idp.authn.context.SubjectContext;
import net.shibboleth.idp.profile.testing.RequestContextBuilder;
import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.security.DataSealer;
import net.shibboleth.shared.security.impl.BasicKeystoreKeyStrategy;
@@ -102,8 +103,10 @@ public class CryptoTransientSAML1NameIdentifierGeneratorTest extends OpenSAMLIni
@Test public void testNoRelyingParty() throws Exception {
final ProfileRequestContext prc = new RequestContextBuilder().buildProfileRequestContext();
- prc.getSubcontext(RelyingPartyContext.class).setRelyingPartyId(null);
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName("jdoe");
+ final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpc!=null;
+ rpc.setRelyingPartyId(null);
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName("jdoe");
final NameIdentifier name = generator.generate(prc, generator.getFormat());
@@ -114,17 +117,20 @@ public class CryptoTransientSAML1NameIdentifierGeneratorTest extends OpenSAMLIni
final ProfileRequestContext prc = new RequestContextBuilder().buildProfileRequestContext();
final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName("jdoe");
+ assert rpc!=null;
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName("jdoe");
final NameIdentifier name = generator.generate(prc, generator.getFormat());
- Assert.assertNotNull(name);
+ assert name!=null;
Assert.assertEquals(name.getFormat(), generator.getFormat());
- Assert.assertEquals(name.getNameQualifier(),
- ((net.shibboleth.profile.relyingparty.RelyingPartyConfiguration) rpc.getConfiguration()).getIssuer(prc));
+ final RelyingPartyConfiguration config = rpc.getConfiguration();
+ assert config != null;
- final String val = name.getValue();
+ Assert.assertEquals(name.getNameQualifier(), config.getIssuer(prc));
+ final String val = name.getValue();
+ assert val != null;
final String decode = sealer.unwrap(val);
Assert.assertEquals(decode, rpc.getRelyingPartyId() + "!" + "jdoe");
@@ -138,4 +144,4 @@ public class CryptoTransientSAML1NameIdentifierGeneratorTest extends OpenSAMLIni
}
}
-}
\ No newline at end of file
+}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientSAML2NameIDGeneratorTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientSAML2NameIDGeneratorTest.java
index 42005b666..04eba83a7 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientSAML2NameIDGeneratorTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/CryptoTransientSAML2NameIDGeneratorTest.java
@@ -23,6 +23,7 @@ import java.time.Duration;
import net.shibboleth.idp.authn.context.SubjectContext;
import net.shibboleth.idp.profile.testing.RequestContextBuilder;
import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.security.DataSealer;
import net.shibboleth.shared.security.impl.BasicKeystoreKeyStrategy;
@@ -103,8 +104,10 @@ public class CryptoTransientSAML2NameIDGeneratorTest extends OpenSAMLInitBaseTes
@Test public void testNoRelyingParty() throws Exception {
final ProfileRequestContext prc = new RequestContextBuilder().buildProfileRequestContext();
- prc.getSubcontext(RelyingPartyContext.class).setRelyingPartyId(null);
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName("jdoe");
+ final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpc!=null;
+ rpc.setRelyingPartyId(null);
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName("jdoe");
final NameID name = generator.generate(prc, generator.getFormat());
@@ -115,17 +118,19 @@ public class CryptoTransientSAML2NameIDGeneratorTest extends OpenSAMLInitBaseTes
final ProfileRequestContext prc = new RequestContextBuilder().buildProfileRequestContext();
final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName("jdoe");
+ assert rpc!=null;
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName("jdoe");
final NameID name = generator.generate(prc, generator.getFormat());
- Assert.assertNotNull(name);
+ assert name!=null;
Assert.assertEquals(name.getFormat(), generator.getFormat());
- Assert.assertEquals(name.getNameQualifier(),
- ((net.shibboleth.profile.relyingparty.RelyingPartyConfiguration) rpc.getConfiguration()).getIssuer(prc));
+ final RelyingPartyConfiguration config = rpc.getConfiguration();
+ assert config != null;
+ Assert.assertEquals(name.getNameQualifier(), config.getIssuer(prc));
final String val = name.getValue();
-
+ assert val !=null;
final String decode = sealer.unwrap(val);
Assert.assertEquals(decode, rpc.getRelyingPartyId() + "!" + "jdoe");
@@ -139,4 +144,4 @@ public class CryptoTransientSAML2NameIDGeneratorTest extends OpenSAMLInitBaseTes
}
}
-}
\ No newline at end of file
+}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/NameIDCanonicalizationTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/NameIDCanonicalizationTest.java
index 34b5ed449..c7722908d 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/NameIDCanonicalizationTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/NameIDCanonicalizationTest.java
@@ -89,7 +89,7 @@ public class NameIDCanonicalizationTest extends OpenSAMLInitBaseTestCase {
}
private void setSubContext(@Nullable Subject subject, @Nullable String responder, @Nullable String requester) {
- final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class, true);
+ final SubjectCanonicalizationContext scc = prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class);
if (subject != null) {
scc.setSubject(subject);
}
@@ -132,7 +132,8 @@ public class NameIDCanonicalizationTest extends OpenSAMLInitBaseTestCase {
action.execute(prc);
ActionTestingSupport.assertEvent(prc, AuthnEventIds.INVALID_SUBJECT);
- Assert.assertNotNull(prc.getSubcontext(SubjectCanonicalizationContext.class, false).getException());
+ final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class);
+ assert scc!=null && scc.getException()!=null;
}
@Test public void testMultiPrincipals() {
@@ -144,7 +145,8 @@ public class NameIDCanonicalizationTest extends OpenSAMLInitBaseTestCase {
action.execute(prc);
ActionTestingSupport.assertEvent(prc, AuthnEventIds.INVALID_SUBJECT);
- Assert.assertNotNull(prc.getSubcontext(SubjectCanonicalizationContext.class, false).getException());
+ final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class);
+ assert scc!=null && scc.getException()!=null;
}
@Test public void testWrongFormat() {
@@ -155,7 +157,8 @@ public class NameIDCanonicalizationTest extends OpenSAMLInitBaseTestCase {
action.execute(prc);
ActionTestingSupport.assertEvent(prc, AuthnEventIds.INVALID_SUBJECT);
- Assert.assertNotNull(prc.getSubcontext(SubjectCanonicalizationContext.class, false).getException());
+ final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class);
+ assert scc!=null && scc.getException()!=null;
}
@Test public void testWrongRequesterNameID() {
@@ -203,6 +206,7 @@ public class NameIDCanonicalizationTest extends OpenSAMLInitBaseTestCase {
action.execute(prc);
ActionTestingSupport.assertProceedEvent(prc);
SubjectCanonicalizationContext sc = prc.getSubcontext(SubjectCanonicalizationContext.class, false);
+ assert sc!=null;
Assert.assertEquals(sc.getPrincipalName(), VALUE_PREFIX + "works");
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/NameIdentifierCanonicalizationTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/NameIdentifierCanonicalizationTest.java
index a28718eb0..51e943bb2 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/NameIdentifierCanonicalizationTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/NameIdentifierCanonicalizationTest.java
@@ -88,7 +88,7 @@ public class NameIdentifierCanonicalizationTest extends OpenSAMLInitBaseTestCase
}
private void setSubContext(@Nullable Subject subject, @Nullable String responder, @Nullable String requester) {
- final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class, true);
+ final SubjectCanonicalizationContext scc = prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class);
if (subject != null) {
scc.setSubject(subject);
}
@@ -129,7 +129,8 @@ public class NameIdentifierCanonicalizationTest extends OpenSAMLInitBaseTestCase
action.execute(prc);
ActionTestingSupport.assertEvent(prc, AuthnEventIds.INVALID_SUBJECT);
- Assert.assertNotNull(prc.getSubcontext(SubjectCanonicalizationContext.class, false).getException());
+ final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class);
+ assert scc!=null && scc.getException()!=null;
}
@Test public void testMultiPrincipals() {
@@ -142,7 +143,8 @@ public class NameIdentifierCanonicalizationTest extends OpenSAMLInitBaseTestCase
action.execute(prc);
ActionTestingSupport.assertEvent(prc, AuthnEventIds.INVALID_SUBJECT);
- Assert.assertNotNull(prc.getSubcontext(SubjectCanonicalizationContext.class, false).getException());
+ final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class);
+ assert scc!=null && scc.getException()!=null;
}
@Test public void testWrongFormat() {
@@ -154,7 +156,8 @@ public class NameIdentifierCanonicalizationTest extends OpenSAMLInitBaseTestCase
action.execute(prc);
ActionTestingSupport.assertEvent(prc, AuthnEventIds.INVALID_SUBJECT);
- Assert.assertNotNull(prc.getSubcontext(SubjectCanonicalizationContext.class, false).getException());
+ final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class);
+ assert scc!=null && scc.getException()!=null;
}
@Test public void testWrongRequester() {
@@ -198,6 +201,7 @@ public class NameIdentifierCanonicalizationTest extends OpenSAMLInitBaseTestCase
ActionTestingSupport.assertProceedEvent(prc);
SubjectCanonicalizationContext sc = prc.getSubcontext(SubjectCanonicalizationContext.class, false);
+ assert sc!=null;
Assert.assertEquals(sc.getPrincipalName(), VALUE_PREFIX+"works");
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/PersistentSAML2NameIDGeneratorTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/PersistentSAML2NameIDGeneratorTest.java
index 9711dde3c..67e6b2d15 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/PersistentSAML2NameIDGeneratorTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/PersistentSAML2NameIDGeneratorTest.java
@@ -38,11 +38,13 @@ import net.shibboleth.shared.component.ComponentInitializationException;
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
import org.opensaml.core.xml.util.XMLObjectSupport;
+import org.opensaml.messaging.context.MessageContext;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.saml.saml2.core.AuthnRequest;
import org.opensaml.saml.saml2.core.NameID;
import org.opensaml.saml.saml2.core.NameIDPolicy;
import org.opensaml.saml.saml2.testing.SAML2ActionTestingSupport;
+import org.springframework.validation.MessageCodeFormatter;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
@@ -112,8 +114,9 @@ public class PersistentSAML2NameIDGeneratorTest extends OpenSAMLInitBaseTestCase
generator.setPersistentIdStore(new ComputedPairwiseIdStore());
generator.setAttributeSourceIds(Collections.singletonList("SOURCE"));
generator.initialize();
-
- prc.getSubcontext(RelyingPartyContext.class).setRelyingPartyId(null);
+ final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpc!=null;
+ rpc.setRelyingPartyId(null);
Assert.assertNull(generator.generate(prc, NameID.PERSISTENT));
}
@@ -133,10 +136,12 @@ public class PersistentSAML2NameIDGeneratorTest extends OpenSAMLInitBaseTestCase
generator.setAttributeSourceIds(Collections.singletonList("SOURCE"));
generator.initialize();
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName("foo");
Assert.assertNull(generator.generate(prc, NameID.PERSISTENT));
- prc.getSubcontext(RelyingPartyContext.class).getSubcontext(AttributeContext.class, true).setUnfilteredIdPAttributes(
+ final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpc!=null;
+ rpc.getOrCreateSubcontext(AttributeContext.class).setUnfilteredIdPAttributes(
Collections.singleton(new IdPAttribute("SOURCE")));
Assert.assertNull(generator.generate(prc, NameID.PERSISTENT));
}
@@ -151,15 +156,16 @@ public class PersistentSAML2NameIDGeneratorTest extends OpenSAMLInitBaseTestCase
generator.setAttributeSourceIds(Collections.singletonList("SOURCE"));
generator.initialize();
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName("foo");
Assert.assertNull(generator.generate(prc, NameID.PERSISTENT));
final IdPAttribute source = new IdPAttribute("SOURCE");
source.setValues(Collections.singletonList(new StringAttributeValue(TestSources.COMMON_ATTRIBUTE_VALUE_STRING)));
- prc.getSubcontext(RelyingPartyContext.class).getSubcontext(AttributeContext.class, true).setUnfilteredIdPAttributes(
- Collections.singleton(source));
+ final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpc!=null;
+ rpc.getOrCreateSubcontext(AttributeContext.class).setUnfilteredIdPAttributes(Collections.singleton(source));
final NameID id = generator.generate(prc, NameID.PERSISTENT);
- Assert.assertNotNull(id);
+ assert id!=null;
Assert.assertEquals(id.getValue(), RESULT);
Assert.assertEquals(id.getFormat(), NameID.PERSISTENT);
Assert.assertEquals(id.getNameQualifier(), TestSources.IDP_ENTITY_ID);
@@ -195,6 +201,7 @@ public class PersistentSAML2NameIDGeneratorTest extends OpenSAMLInitBaseTestCase
store.deactivate(pid);
final NameID id = generator.generate(prc, NameID.PERSISTENT);
+ assert id != null;
Assert.assertNotEquals(id.getValue(), RESULT);
Assert.assertEquals(id.getNameQualifier(), TestSources.IDP_ENTITY_ID);
Assert.assertEquals(id.getSPNameQualifier(), TestSources.SP_ENTITY_ID);
@@ -204,15 +211,17 @@ public class PersistentSAML2NameIDGeneratorTest extends OpenSAMLInitBaseTestCase
generator.setAttributeSourceIds(Collections.singletonList("SOURCE"));
generator.initialize();
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName("foo");
Assert.assertNull(generator.generate(prc, NameID.PERSISTENT));
final IdPAttribute source = new IdPAttribute("SOURCE");
source.setValues(Collections.singletonList(new StringAttributeValue(TestSources.COMMON_ATTRIBUTE_VALUE_STRING)));
- prc.getSubcontext(RelyingPartyContext.class).getSubcontext(AttributeContext.class, true).setUnfilteredIdPAttributes(
+ final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpc!=null;
+ rpc.getOrCreateSubcontext(AttributeContext.class).setUnfilteredIdPAttributes(
Collections.singleton(source));
NameID id = generator.generate(prc, NameID.PERSISTENT);
- Assert.assertNotNull(id);
+ assert id!=null;
Assert.assertNotNull(id.getValue());
Assert.assertEquals(id.getFormat(), NameID.PERSISTENT);
Assert.assertEquals(id.getNameQualifier(), TestSources.IDP_ENTITY_ID);
@@ -220,7 +229,7 @@ public class PersistentSAML2NameIDGeneratorTest extends OpenSAMLInitBaseTestCase
String storedvalue = id.getValue();
id = generator.generate(prc, NameID.PERSISTENT);
- Assert.assertNotNull(id);
+ assert id!=null;
Assert.assertEquals(id.getValue(), storedvalue);
Assert.assertEquals(id.getFormat(), NameID.PERSISTENT);
Assert.assertEquals(id.getNameQualifier(), TestSources.IDP_ENTITY_ID);
@@ -231,10 +240,12 @@ public class PersistentSAML2NameIDGeneratorTest extends OpenSAMLInitBaseTestCase
final NameIDPolicy policy = (NameIDPolicy) XMLObjectSupport.buildXMLObject(NameIDPolicy.DEFAULT_ELEMENT_NAME);
request.setNameIDPolicy(policy);
policy.setSPNameQualifier("https://affiliation.org");
- prc.getInboundMessageContext().setMessage(request);
+ MessageContext imc = prc.getInboundMessageContext();
+ assert imc != null;
+ imc.setMessage(request);
id = generator.generate(prc, NameID.PERSISTENT);
- Assert.assertNotNull(id);
+ assert id!=null;
Assert.assertNotNull(id.getValue());
Assert.assertEquals(id.getFormat(), NameID.PERSISTENT);
Assert.assertEquals(id.getNameQualifier(), TestSources.IDP_ENTITY_ID);
@@ -242,40 +253,49 @@ public class PersistentSAML2NameIDGeneratorTest extends OpenSAMLInitBaseTestCase
storedvalue = id.getValue();
id = generator.generate(prc, NameID.PERSISTENT);
- Assert.assertNotNull(id);
+ assert id!=null;
Assert.assertEquals(id.getValue(), storedvalue);
Assert.assertEquals(id.getNameQualifier(), TestSources.IDP_ENTITY_ID);
Assert.assertEquals(id.getSPNameQualifier(), "https://affiliation.org");
- prc.getInboundMessageContext().setMessage(null);
- ((BrowserSSOProfileConfiguration) prc.getSubcontext(RelyingPartyContext.class).getProfileConfig()).setSPNameQualifier("https://affiliation.org");
+ imc = prc.getInboundMessageContext();
+ assert imc != null;
+ imc.setMessage(null);
+ final RelyingPartyContext rpc2 = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpc2!=null;
+
+ final BrowserSSOProfileConfiguration config =(BrowserSSOProfileConfiguration) rpc2.getProfileConfig();
+ assert config!= null;
+ config.setSPNameQualifier("https://affiliation.org");
id = generator.generate(prc, NameID.PERSISTENT);
- Assert.assertNotNull(id);
+ assert id!=null;
Assert.assertEquals(id.getValue(), storedvalue);
Assert.assertEquals(id.getNameQualifier(), TestSources.IDP_ENTITY_ID);
Assert.assertEquals(id.getSPNameQualifier(), "https://affiliation.org");
}
private void testComputedAndStoredIdLogic() throws Exception {
- generator.setAttributeSourceIds(Collections.singletonList("SOURCE"));
+ generator.setAttributeSourceIds(CollectionSupport.singletonList("SOURCE"));
generator.initialize();
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName("foo");
Assert.assertNull(generator.generate(prc, NameID.PERSISTENT));
final IdPAttribute source = new IdPAttribute("SOURCE");
source.setValues(Collections.singletonList(new StringAttributeValue(TestSources.COMMON_ATTRIBUTE_VALUE_STRING)));
- prc.getSubcontext(RelyingPartyContext.class).getSubcontext(AttributeContext.class, true).setUnfilteredIdPAttributes(
+ final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpc!=null;
+ rpc.getOrCreateSubcontext(AttributeContext.class).setUnfilteredIdPAttributes(
Collections.singleton(source));
NameID id = generator.generate(prc, NameID.PERSISTENT);
- Assert.assertNotNull(id);
+ assert id!=null;
Assert.assertEquals(id.getValue(), RESULT);
Assert.assertEquals(id.getFormat(), NameID.PERSISTENT);
Assert.assertEquals(id.getNameQualifier(), TestSources.IDP_ENTITY_ID);
Assert.assertEquals(id.getSPNameQualifier(), TestSources.SP_ENTITY_ID);
id = generator.generate(prc, NameID.PERSISTENT);
- Assert.assertNotNull(id);
+ assert id!=null;
Assert.assertEquals(id.getValue(), RESULT);
Assert.assertEquals(id.getNameQualifier(), TestSources.IDP_ENTITY_ID);
Assert.assertEquals(id.getSPNameQualifier(), TestSources.SP_ENTITY_ID);
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/StoredPersistentIdDecoderTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/StoredPersistentIdDecoderTest.java
index 73bbce61a..8b6b5467b 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/StoredPersistentIdDecoderTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/StoredPersistentIdDecoderTest.java
@@ -90,7 +90,7 @@ public class StoredPersistentIdDecoderTest extends OpenSAMLInitBaseTestCase {
@Test
public void testMissingID() throws Exception {
- final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class, true);
+ final SubjectCanonicalizationContext scc = prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class);
scc.setRequesterId(TestSources.SP_ENTITY_ID);
scc.setResponderId(TestSources.IDP_ENTITY_ID);
@@ -101,7 +101,7 @@ public class StoredPersistentIdDecoderTest extends OpenSAMLInitBaseTestCase {
@Test(expectedExceptions={NameDecoderException.class})
public void testNoQualifiers() throws Exception {
- final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class, true);
+ final SubjectCanonicalizationContext scc = prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class);
final Subject subject = SAML2ActionTestingSupport.buildSubject("foo");
decoder.decode(scc, subject.getNameID());
@@ -111,22 +111,24 @@ public class StoredPersistentIdDecoderTest extends OpenSAMLInitBaseTestCase {
public void testBadQualifier() throws Exception {
generator.initialize();
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName("foo");
Assert.assertNull(generator.generate(prc, NameID.PERSISTENT));
final IdPAttribute source = new IdPAttribute("SOURCE");
source.setValues(Collections.singletonList(new StringAttributeValue(TestSources.COMMON_ATTRIBUTE_VALUE_STRING)));
- prc.getSubcontext(RelyingPartyContext.class).getSubcontext(AttributeContext.class, true).setUnfilteredIdPAttributes(
+ final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpc!=null;
+ rpc.getOrCreateSubcontext(AttributeContext.class).setUnfilteredIdPAttributes(
Collections.singleton(source));
final NameID id = generator.generate(prc, NameID.PERSISTENT);
- Assert.assertNotNull(id);
+ assert id!=null;
Assert.assertNotNull(id.getValue());
Assert.assertEquals(id.getFormat(), NameID.PERSISTENT);
id.setNameQualifier(null);
id.setSPNameQualifier(null);
- final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class, true);
+ final SubjectCanonicalizationContext scc = prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class);
scc.setRequesterId("Bad");
scc.setResponderId(TestSources.IDP_ENTITY_ID);
@@ -137,21 +139,23 @@ public class StoredPersistentIdDecoderTest extends OpenSAMLInitBaseTestCase {
public void testStoredIdDecode() throws Exception {
generator.initialize();
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName("foo");
Assert.assertNull(generator.generate(prc, NameID.PERSISTENT));
final IdPAttribute source = new IdPAttribute("SOURCE");
source.setValues(Collections.singletonList(new StringAttributeValue(TestSources.COMMON_ATTRIBUTE_VALUE_STRING)));
- prc.getSubcontext(RelyingPartyContext.class).getSubcontext(AttributeContext.class, true).setUnfilteredIdPAttributes(
+ final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpc!=null;
+ rpc.getOrCreateSubcontext(AttributeContext.class).setUnfilteredIdPAttributes(
Collections.singleton(source));
final NameID id = generator.generate(prc, NameID.PERSISTENT);
- Assert.assertNotNull(id);
+ assert id!=null;
Assert.assertNotNull(id.getValue());
Assert.assertEquals(id.getFormat(), NameID.PERSISTENT);
Assert.assertEquals(id.getNameQualifier(), TestSources.IDP_ENTITY_ID);
Assert.assertEquals(id.getSPNameQualifier(), TestSources.SP_ENTITY_ID);
- final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class, true);
+ final SubjectCanonicalizationContext scc = prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class);
scc.setRequesterId(TestSources.SP_ENTITY_ID);
scc.setResponderId(TestSources.IDP_ENTITY_ID);
@@ -164,21 +168,23 @@ public class StoredPersistentIdDecoderTest extends OpenSAMLInitBaseTestCase {
generator.setSPNameQualifier("http://affiliation.org");
generator.initialize();
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName("foo");
Assert.assertNull(generator.generate(prc, NameID.PERSISTENT));
final IdPAttribute source = new IdPAttribute("SOURCE");
source.setValues(Collections.singletonList(new StringAttributeValue(TestSources.COMMON_ATTRIBUTE_VALUE_STRING)));
- prc.getSubcontext(RelyingPartyContext.class).getSubcontext(AttributeContext.class, true).setUnfilteredIdPAttributes(
+ final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpc!=null;
+ rpc.getOrCreateSubcontext(AttributeContext.class).setUnfilteredIdPAttributes(
Collections.singleton(source));
final NameID id = generator.generate(prc, NameID.PERSISTENT);
- Assert.assertNotNull(id);
+ assert id!=null;
Assert.assertNotNull(id.getValue());
Assert.assertEquals(id.getFormat(), NameID.PERSISTENT);
Assert.assertEquals(id.getNameQualifier(), TestSources.IDP_ENTITY_ID);
Assert.assertEquals(id.getSPNameQualifier(), "http://affiliation.org");
- final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class, true);
+ final SubjectCanonicalizationContext scc = prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class);
scc.setRequesterId(TestSources.SP_ENTITY_ID);
scc.setResponderId(TestSources.IDP_ENTITY_ID);
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/StoredTransientSAML1NameIdentifierGeneratorTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/StoredTransientSAML1NameIdentifierGeneratorTest.java
index bb132c64d..08018e8f8 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/StoredTransientSAML1NameIdentifierGeneratorTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/StoredTransientSAML1NameIdentifierGeneratorTest.java
@@ -20,6 +20,7 @@ package net.shibboleth.idp.saml.nameid.impl;
import net.shibboleth.idp.authn.context.SubjectContext;
import net.shibboleth.idp.profile.testing.RequestContextBuilder;
import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.shared.component.ComponentInitializationException;
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
@@ -77,8 +78,10 @@ public class StoredTransientSAML1NameIdentifierGeneratorTest extends OpenSAMLIni
@Test public void testNoRelyingParty() throws Exception {
final ProfileRequestContext prc = new RequestContextBuilder().buildProfileRequestContext();
- prc.getSubcontext(RelyingPartyContext.class).setRelyingPartyId(null);
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName("jdoe");
+ final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpc!=null;
+ rpc.setRelyingPartyId(null);
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName("jdoe");
final NameIdentifier name = generator.generate(prc, generator.getFormat());
@@ -89,20 +92,24 @@ public class StoredTransientSAML1NameIdentifierGeneratorTest extends OpenSAMLIni
final ProfileRequestContext prc = new RequestContextBuilder().buildProfileRequestContext();
final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName("jdoe");
+ assert rpc!=null;
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName("jdoe");
final NameIdentifier name = generator.generate(prc, generator.getFormat());
+ assert name!=null;
- Assert.assertNotNull(name);
+ final RelyingPartyConfiguration rpConfig = rpc.getConfiguration();
+ assert rpConfig!=null;
+
Assert.assertEquals(name.getFormat(), generator.getFormat());
- Assert.assertEquals(name.getNameQualifier(),
- ((net.shibboleth.profile.relyingparty.RelyingPartyConfiguration) rpc.getConfiguration()).getIssuer(prc));
+ Assert.assertEquals(name.getNameQualifier(), rpConfig.getIssuer(prc));
String val = name.getValue();
+ assert val!=null;
final StorageRecord<?> record = store.read(TransientIdParameters.CONTEXT, val);
-
- Assert.assertNotNull(record);
+
+ assert record!=null;
Assert.assertTrue(val.length() >= transientGenerator.getIdSize());
TransientIdParameters parms = new TransientIdParameters(record.getValue());
@@ -112,4 +119,4 @@ public class StoredTransientSAML1NameIdentifierGeneratorTest extends OpenSAMLIni
Assert.assertEquals(parms.getPrincipal(), "jdoe");
}
-}
\ No newline at end of file
+}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/StoredTransientSAML2NameIDGeneratorTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/StoredTransientSAML2NameIDGeneratorTest.java
index 76417a8bd..854776fb9 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/StoredTransientSAML2NameIDGeneratorTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/StoredTransientSAML2NameIDGeneratorTest.java
@@ -20,6 +20,7 @@ package net.shibboleth.idp.saml.nameid.impl;
import net.shibboleth.idp.authn.context.SubjectContext;
import net.shibboleth.idp.profile.testing.RequestContextBuilder;
import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.shared.component.ComponentInitializationException;
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
@@ -78,8 +79,10 @@ public class StoredTransientSAML2NameIDGeneratorTest extends OpenSAMLInitBaseTes
@Test public void testNoRelyingParty() throws Exception {
final ProfileRequestContext prc = new RequestContextBuilder().buildProfileRequestContext();
- prc.getSubcontext(RelyingPartyContext.class).setRelyingPartyId(null);
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName("jdoe");
+ final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpc!=null;
+ rpc.setRelyingPartyId(null);
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName("jdoe");
final NameID name = generator.generate(prc, generator.getFormat());
@@ -90,21 +93,24 @@ public class StoredTransientSAML2NameIDGeneratorTest extends OpenSAMLInitBaseTes
final ProfileRequestContext prc = new RequestContextBuilder().buildProfileRequestContext();
final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName("jdoe");
+ assert rpc!=null;
+ final RelyingPartyConfiguration rpConfig = rpc.getConfiguration();
+ assert rpConfig!=null;
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName("jdoe");
final NameID name = generator.generate(prc, generator.getFormat());
- Assert.assertNotNull(name);
+ assert name!=null;
Assert.assertEquals(name.getFormat(), generator.getFormat());
- Assert.assertEquals(name.getNameQualifier(),
- ((net.shibboleth.profile.relyingparty.RelyingPartyConfiguration) rpc.getConfiguration()).getIssuer(prc));
+ Assert.assertEquals(name.getNameQualifier(), rpConfig.getIssuer(prc));
Assert.assertEquals(name.getSPNameQualifier(), rpc.getRelyingPartyId());
String val = name.getValue();
+ assert val!=null;
final StorageRecord<?> record = store.read(TransientIdParameters.CONTEXT, val);
- Assert.assertNotNull(record);
+ assert record!=null && val!=null;
Assert.assertTrue(val.length() >= transientGenerator.getIdSize());
TransientIdParameters parms = new TransientIdParameters(record.getValue());
@@ -114,4 +120,4 @@ public class StoredTransientSAML2NameIDGeneratorTest extends OpenSAMLInitBaseTes
Assert.assertEquals(parms.getPrincipal(), "jdoe");
}
-}
\ No newline at end of file
+}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/TransientDecoderTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/TransientDecoderTest.java
index 884834f70..1145c5d02 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/TransientDecoderTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/nameid/impl/TransientDecoderTest.java
@@ -28,6 +28,7 @@ import net.shibboleth.idp.saml.authn.principal.NameIDPrincipal;
import net.shibboleth.idp.saml.impl.testing.TestSources;
import net.shibboleth.idp.saml.nameid.NameDecoderException;
import net.shibboleth.idp.saml.nameid.NameIDCanonicalizationFlowDescriptor;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
@@ -140,12 +141,13 @@ public class TransientDecoderTest extends OpenSAMLInitBaseTestCase {
ProfileRequestContext prc =
new RequestContextBuilder().setInboundMessageIssuer(TestSources.SP_ENTITY_ID).buildProfileRequestContext();
- prc.getSubcontext(SubjectContext.class, true).setPrincipalName(TestSources.PRINCIPAL_ID);
+ prc.getOrCreateSubcontext(SubjectContext.class).setPrincipalName(TestSources.PRINCIPAL_ID);
final NameID nameid = generator.generate(prc, generator.getFormat());
+ assert nameid!=null;
final NameIDCanonicalizationFlowDescriptor descriptor = new NameIDCanonicalizationFlowDescriptor();
- descriptor.setFormats(Collections.singleton(generator.getFormat()));
+ descriptor.setFormats(CollectionSupport.singleton(generator.getFormat()));
descriptor.setId("NameIdFlowDescriptor");
descriptor.initialize();
final NameIDCanonicalization canon = new NameIDCanonicalization();
@@ -158,7 +160,7 @@ public class TransientDecoderTest extends OpenSAMLInitBaseTestCase {
canon.initialize();
prc = new ProfileRequestContext();
- final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class, true);
+ final SubjectCanonicalizationContext scc = prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class);
final Subject subject = new Subject();
subject.getPrincipals().add(new NameIDPrincipal(nameid));
scc.setSubject(subject);
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/context/navigate/tests/DefaultNameIdentifierFormatStrategyTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/context/navigate/tests/DefaultNameIdentifierFormatStrategyTest.java
index cf02e70d0..3355b16f2 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/context/navigate/tests/DefaultNameIdentifierFormatStrategyTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/context/navigate/tests/DefaultNameIdentifierFormatStrategyTest.java
@@ -28,6 +28,7 @@ import net.shibboleth.shared.component.ComponentInitializationException;
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
+import org.opensaml.messaging.context.MessageContext;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.saml.common.SAMLObjectBuilder;
import org.opensaml.saml.common.messaging.context.SAMLMetadataContext;
@@ -69,10 +70,14 @@ public class DefaultNameIdentifierFormatStrategyTest extends OpenSAMLInitBaseTes
final EntityDescriptor entity = edBuilder.buildObject();
role = roleBuilder.buildObject();
entity.getRoleDescriptors().add(role);
- prc.getInboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true).getSubcontext(
- SAMLMetadataContext.class, true).setEntityDescriptor(entity);
- prc.getInboundMessageContext().getSubcontext(SAMLPeerEntityContext.class).getSubcontext(
- SAMLMetadataContext.class).setRoleDescriptor(entity.getRoleDescriptors().get(0));
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.getOrCreateSubcontext(SAMLPeerEntityContext.class).getOrCreateSubcontext(SAMLMetadataContext.class).setEntityDescriptor(entity);
+ final SAMLPeerEntityContext pec = imc.getSubcontext(SAMLPeerEntityContext.class);
+ assert pec!=null;
+ final SAMLMetadataContext mctx = pec.getSubcontext(SAMLMetadataContext.class);
+ assert mctx!=null;
+ mctx.setRoleDescriptor(entity.getRoleDescriptors().get(0));
strategy = new DefaultNameIdentifierFormatStrategy();
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/ExtractSubjectFromRequestTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/ExtractSubjectFromRequestTest.java
index 8637bddf0..7f28774bd 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/ExtractSubjectFromRequestTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/ExtractSubjectFromRequestTest.java
@@ -29,7 +29,10 @@ import net.shibboleth.profile.context.navigate.RelyingPartyIdLookupFunction;
import net.shibboleth.profile.context.navigate.IssuerLookupFunction;
import net.shibboleth.shared.component.ComponentInitializationException;
+import javax.security.auth.Subject;
+
import org.opensaml.core.testing.XMLObjectBaseTestCase;
+import org.opensaml.messaging.context.MessageContext;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.saml.common.profile.logic.DefaultNameIDPolicyPredicate;
import org.opensaml.saml.saml1.core.Request;
@@ -79,7 +82,9 @@ public class ExtractSubjectFromRequestTest extends XMLObjectBaseTestCase {
@Test
public void testNoMessage() {
- prc.getInboundMessageContext().setMessage(null);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(null);
final Event event = action.execute(rc);
ActionTestingSupport.assertEvent(event, ExtractSubjectFromRequest.NO_SUBJECT);
@@ -87,7 +92,9 @@ public class ExtractSubjectFromRequestTest extends XMLObjectBaseTestCase {
@Test
public void testNoSubject() {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
final Event event = action.execute(rc);
ActionTestingSupport.assertEvent(event, ExtractSubjectFromRequest.NO_SUBJECT);
@@ -97,7 +104,9 @@ public class ExtractSubjectFromRequestTest extends XMLObjectBaseTestCase {
public void testSAML2Subject() {
final AuthnRequest request = SAML2ActionTestingSupport.buildAuthnRequest();
request.setSubject(SAML2ActionTestingSupport.buildSubject("foo"));
- prc.getInboundMessageContext().setMessage(request);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(request);
request.getSubject().getNameID().setFormat(NameID.TRANSIENT);
request.getSubject().getNameID().setNameQualifier("foo");
@@ -114,10 +123,12 @@ public class ExtractSubjectFromRequestTest extends XMLObjectBaseTestCase {
ActionTestingSupport.assertProceedEvent(event);
final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class);
- Assert.assertNotNull(scc);
- Assert.assertEquals(scc.getSubject().getPrincipals(NameIDPrincipal.class).size(), 1);
+ assert scc!=null;
+ final Subject subject = scc.getSubject();
+ assert subject!=null;
+ Assert.assertEquals(subject.getPrincipals(NameIDPrincipal.class).size(), 1);
- final NameIDPrincipal princ = scc.getSubject().getPrincipals(NameIDPrincipal.class).iterator().next();
+ final NameIDPrincipal princ = subject.getPrincipals(NameIDPrincipal.class).iterator().next();
Assert.assertEquals(princ.getNameID().getValue(), "foo");
}
@@ -125,7 +136,9 @@ public class ExtractSubjectFromRequestTest extends XMLObjectBaseTestCase {
public void testSAML1Subject() {
final Request request = SAML1ActionTestingSupport.buildAttributeQueryRequest(
SAML1ActionTestingSupport.buildSubject("foo"));
- prc.getInboundMessageContext().setMessage(request);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(request);
request.getAttributeQuery().getSubject().getNameIdentifier().setFormat(NameID.TRANSIENT);
request.getAttributeQuery().getSubject().getNameIdentifier().setNameQualifier("foo");
@@ -137,11 +150,13 @@ public class ExtractSubjectFromRequestTest extends XMLObjectBaseTestCase {
ActionTestingSupport.assertProceedEvent(event);
final SubjectCanonicalizationContext scc = prc.getSubcontext(SubjectCanonicalizationContext.class);
- Assert.assertNotNull(scc);
- Assert.assertEquals(scc.getSubject().getPrincipals(NameIdentifierPrincipal.class).size(), 1);
+ assert scc!=null;
+ final Subject subject = scc.getSubject();
+ assert subject!=null;
+ Assert.assertEquals(subject.getPrincipals(NameIdentifierPrincipal.class).size(), 1);
final NameIdentifierPrincipal princ =
- scc.getSubject().getPrincipals(NameIdentifierPrincipal.class).iterator().next();
+ subject.getPrincipals(NameIdentifierPrincipal.class).iterator().next();
Assert.assertEquals(princ.getNameIdentifier().getValue(), "foo");
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/FinalizeSAMLSubjectCanonicalizationTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/FinalizeSAMLSubjectCanonicalizationTest.java
index ff4987f6d..e740156dc 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/FinalizeSAMLSubjectCanonicalizationTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/FinalizeSAMLSubjectCanonicalizationTest.java
@@ -63,13 +63,13 @@ public class FinalizeSAMLSubjectCanonicalizationTest {
}
@Test public void testMatch() {
- prc.getSubcontext(SubjectCanonicalizationContext.class, true).setPrincipalName("foo");
+ prc.getOrCreateSubcontext(SubjectCanonicalizationContext.class).setPrincipalName("foo");
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
final SubjectContext sc = prc.getSubcontext(SubjectContext.class);
- Assert.assertNotNull(sc);
+ assert sc!=null;
Assert.assertEquals(sc.getPrincipalName(), "foo");
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeAuthenticationContextTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeAuthenticationContextTest.java
index fd057d3ac..fd3f737af 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeAuthenticationContextTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeAuthenticationContextTest.java
@@ -28,6 +28,7 @@ import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.FunctionSupport;
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.saml.saml2.core.AuthnRequest;
@@ -62,13 +63,14 @@ public class InitializeAuthenticationContextTest extends OpenSAMLInitBaseTestCas
@Test public void testNoInboundMessageContext() throws ComponentInitializationException {
final RequestContext requestCtx = new RequestContextBuilder().buildRequestContext();
final ProfileRequestContext prc = new WebflowRequestContextProfileRequestContextLookup().apply(requestCtx);
+ assert prc!=null;
prc.setInboundMessageContext(null);
final Event event = action.execute(requestCtx);
ActionTestingSupport.assertProceedEvent(event);
final AuthenticationContext authnCtx = prc.getSubcontext(AuthenticationContext.class);
- Assert.assertNotNull(authnCtx);
+ assert authnCtx!=null;
Assert.assertFalse(authnCtx.isForceAuthn());
Assert.assertFalse(authnCtx.isPassive());
Assert.assertEquals(authnCtx.getProxyCount(), Integer.valueOf(1));
@@ -82,12 +84,13 @@ public class InitializeAuthenticationContextTest extends OpenSAMLInitBaseTestCas
@Test public void testNoInboundMessage() throws ComponentInitializationException {
final RequestContext requestCtx = new RequestContextBuilder().setInboundMessage(null).buildRequestContext();
final ProfileRequestContext prc = new WebflowRequestContextProfileRequestContextLookup().apply(requestCtx);
+ assert prc!=null;
final Event event = action.execute(requestCtx);
ActionTestingSupport.assertProceedEvent(event);
final AuthenticationContext authnCtx = prc.getSubcontext(AuthenticationContext.class);
- Assert.assertNotNull(authnCtx);
+ assert authnCtx!=null;
Assert.assertFalse(authnCtx.isForceAuthn());
Assert.assertFalse(authnCtx.isPassive());
Assert.assertEquals(authnCtx.getProxyCount(), Integer.valueOf(1));
@@ -104,12 +107,12 @@ public class InitializeAuthenticationContextTest extends OpenSAMLInitBaseTestCas
new IdPInitiatedSSORequest("https://sp.example.org/sp", null, null, null)
).buildRequestContext();
final ProfileRequestContext prc = new WebflowRequestContextProfileRequestContextLookup().apply(requestCtx);
-
+ assert prc!=null;
final Event event = action.execute(requestCtx);
ActionTestingSupport.assertProceedEvent(event);
AuthenticationContext authnCtx = prc.getSubcontext(AuthenticationContext.class);
- Assert.assertNotNull(authnCtx);
+ assert authnCtx!=null;
Assert.assertFalse(authnCtx.isForceAuthn());
Assert.assertFalse(authnCtx.isPassive());
Assert.assertEquals(authnCtx.getProxyCount(), Integer.valueOf(1));
@@ -128,12 +131,12 @@ public class InitializeAuthenticationContextTest extends OpenSAMLInitBaseTestCas
final RequestContext requestCtx =
new RequestContextBuilder().setInboundMessage(authnRequest).buildRequestContext();
final ProfileRequestContext prc = new WebflowRequestContextProfileRequestContextLookup().apply(requestCtx);
-
+ assert prc!=null;
final Event event = action.execute(requestCtx);
ActionTestingSupport.assertProceedEvent(event);
final AuthenticationContext authnCtx = prc.getSubcontext(AuthenticationContext.class);
- Assert.assertNotNull(authnCtx);
+ assert authnCtx!=null;
Assert.assertTrue(authnCtx.isForceAuthn());
Assert.assertTrue(authnCtx.isPassive());
Assert.assertEquals(authnCtx.getProxyCount(), Integer.valueOf(1));
@@ -147,9 +150,13 @@ public class InitializeAuthenticationContextTest extends OpenSAMLInitBaseTestCas
final RequestContext requestCtx =
new RequestContextBuilder().setInboundMessage(authnRequest).buildRequestContext();
final ProfileRequestContext prc = new WebflowRequestContextProfileRequestContextLookup().apply(requestCtx);
-
+ assert prc!=null;
final Scoping scoping = SAML2ActionTestingSupport.buildScoping(0, null);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setScoping(scoping);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ final AuthnRequest authnRequest2 = (AuthnRequest) imc.getMessage();
+ assert authnRequest2!=null;
+ authnRequest2.setScoping(scoping);
action = new InitializeAuthenticationContext();
action.setProxyCountLookupStrategy(FunctionSupport.constant(1));
@@ -160,7 +167,7 @@ public class InitializeAuthenticationContextTest extends OpenSAMLInitBaseTestCas
ActionTestingSupport.assertProceedEvent(event);
final AuthenticationContext authnCtx = prc.getSubcontext(AuthenticationContext.class);
- Assert.assertNotNull(authnCtx);
+ assert authnCtx!=null;
Assert.assertTrue(authnCtx.isForceAuthn());
Assert.assertTrue(authnCtx.isPassive());
Assert.assertEquals(authnCtx.getProxyCount(), Integer.valueOf(1));
@@ -174,9 +181,14 @@ public class InitializeAuthenticationContextTest extends OpenSAMLInitBaseTestCas
final RequestContext requestCtx =
new RequestContextBuilder().setInboundMessage(authnRequest).buildRequestContext();
final ProfileRequestContext prc = new WebflowRequestContextProfileRequestContextLookup().apply(requestCtx);
+ assert prc!=null;
final Scoping scoping = SAML2ActionTestingSupport.buildScoping(0, null);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setScoping(scoping);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ final AuthnRequest authnRequest2 = (AuthnRequest) imc.getMessage();
+ assert authnRequest2!=null;
+ authnRequest2.setScoping(scoping);
final BrowserSSOProfileConfiguration config = new BrowserSSOProfileConfiguration();
config.setDisallowedFeatures(BrowserSSOProfileConfiguration.FEATURE_SCOPING);
@@ -197,13 +209,19 @@ public class InitializeAuthenticationContextTest extends OpenSAMLInitBaseTestCas
final RequestContext requestCtx =
new RequestContextBuilder().setInboundMessage(authnRequest).buildRequestContext();
final ProfileRequestContext prc = new WebflowRequestContextProfileRequestContextLookup().apply(requestCtx);
+ assert prc!=null;
final Scoping scoping = SAML2ActionTestingSupport.buildScoping(0, null);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setScoping(scoping);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ final AuthnRequest authnRequest2 = (AuthnRequest) imc.getMessage();
+ assert authnRequest2!=null;
+ authnRequest2.setScoping(scoping);
final Event event = action.execute(requestCtx);
ActionTestingSupport.assertProceedEvent(event);
final AuthenticationContext authnCtx = prc.getSubcontext(AuthenticationContext.class);
+ assert authnCtx!=null;
Assert.assertEquals(authnCtx.getProxyCount(), Integer.valueOf(0));
}
@@ -215,13 +233,19 @@ public class InitializeAuthenticationContextTest extends OpenSAMLInitBaseTestCas
final RequestContext requestCtx =
new RequestContextBuilder().setInboundMessage(authnRequest).buildRequestContext();
final ProfileRequestContext prc = new WebflowRequestContextProfileRequestContextLookup().apply(requestCtx);
-
+ assert prc!=null;
+
final Scoping scoping = SAML2ActionTestingSupport.buildScoping(0, CollectionSupport.setOf("foo", "bar"));
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setScoping(scoping);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ final AuthnRequest authnRequest2 = (AuthnRequest) imc.getMessage();
+ assert authnRequest2!=null;
+ authnRequest2.setScoping(scoping);
final Event event = action.execute(requestCtx);
ActionTestingSupport.assertProceedEvent(event);
final AuthenticationContext authnCtx = prc.getSubcontext(AuthenticationContext.class);
+ assert authnCtx!=null;
Assert.assertEquals(authnCtx.getProxyCount(), Integer.valueOf(0));
Assert.assertEquals(authnCtx.getProxiableAuthorities(), CollectionSupport.setOf("foo", "bar"));
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContextForErrorTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContextForErrorTest.java
index d9e83068d..cbb8bd213 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContextForErrorTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContextForErrorTest.java
@@ -82,51 +82,65 @@ public class InitializeOutboundMessageContextForErrorTest extends OpenSAMLInitBa
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
- Assert.assertNotNull(prc.getOutboundMessageContext());
- final SAMLBindingContext bindingCtx = prc.getOutboundMessageContext().getSubcontext(SAMLBindingContext.class);
- Assert.assertNotNull(bindingCtx);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ final SAMLBindingContext bindingCtx = omc.getSubcontext(SAMLBindingContext.class);
+ assert bindingCtx!=null;
Assert.assertEquals(bindingCtx.getBindingUri(), SAMLConstants.SAML1_SOAP11_BINDING_URI);
- Assert.assertNull(prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class));
+ Assert.assertNull(omc.getSubcontext(SAMLPeerEntityContext.class));
}
@Test public void testNoPeerEntityContext() {
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
- Assert.assertNotNull(prc.getOutboundMessageContext());
- final SAMLBindingContext bindingCtx = prc.getOutboundMessageContext().getSubcontext(SAMLBindingContext.class);
- Assert.assertNotNull(bindingCtx);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+
+ final SAMLBindingContext bindingCtx = omc.getSubcontext(SAMLBindingContext.class);
+ assert bindingCtx!=null;
Assert.assertEquals(bindingCtx.getBindingUri(), SAMLConstants.SAML1_SOAP11_BINDING_URI);
- Assert.assertNull(prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class));
+ Assert.assertNull(omc.getSubcontext(SAMLPeerEntityContext.class));
}
@Test public void testPeerEntityContextNoIssuer() {
- SAMLPeerEntityContext ctx = prc.getInboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true);
- prc.getSubcontext(RelyingPartyContext.class).setRelyingPartyIdContextTree(ctx);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ SAMLPeerEntityContext ctx = imc.getOrCreateSubcontext(SAMLPeerEntityContext.class);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.setRelyingPartyIdContextTree(ctx);
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
- Assert.assertNotNull(prc.getOutboundMessageContext());
- final SAMLBindingContext bindingCtx = prc.getOutboundMessageContext().getSubcontext(SAMLBindingContext.class);
- Assert.assertNotNull(bindingCtx);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ final SAMLBindingContext bindingCtx = omc.getSubcontext(SAMLBindingContext.class);
+ assert bindingCtx!=null;
Assert.assertEquals(bindingCtx.getBindingUri(), SAMLConstants.SAML1_SOAP11_BINDING_URI);
- ctx = prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class);
- Assert.assertNotNull(ctx);
+ ctx = omc.getSubcontext(SAMLPeerEntityContext.class);
+ assert ctx!=null;
Assert.assertNull(ctx.getEntityId());
}
@Test public void testPeerEntityContextIssuer() {
- SAMLPeerEntityContext ctx = prc.getInboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true);
- prc.getSubcontext(RelyingPartyContext.class).setRelyingPartyIdContextTree(ctx);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ SAMLPeerEntityContext ctx = imc.getOrCreateSubcontext(SAMLPeerEntityContext.class);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.setRelyingPartyIdContextTree(ctx);
attributeQuery.getAttributeQuery().setResource("issuer");
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
Assert.assertNotNull(prc.getOutboundMessageContext());
- final SAMLBindingContext bindingCtx = prc.getOutboundMessageContext().getSubcontext(SAMLBindingContext.class);
- Assert.assertNotNull(bindingCtx);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ final SAMLBindingContext bindingCtx = omc.getSubcontext(SAMLBindingContext.class);
+ assert bindingCtx!=null;
Assert.assertEquals(bindingCtx.getBindingUri(), SAMLConstants.SAML1_SOAP11_BINDING_URI);
- ctx = prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class);
- Assert.assertNotNull(ctx);
+ ctx = omc.getSubcontext(SAMLPeerEntityContext.class);
+ assert ctx!=null;
Assert.assertEquals(ctx.getEntityId(), "issuer");
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContextTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContextTest.java
index 94c17f176..2451a9a52 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContextTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeOutboundMessageContextTest.java
@@ -25,6 +25,7 @@ import net.shibboleth.profile.context.RelyingPartyContext;
import net.shibboleth.shared.component.ComponentInitializationException;
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
+import org.opensaml.messaging.context.MessageContext;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext;
import org.opensaml.saml.saml1.core.Request;
@@ -72,27 +73,39 @@ public class InitializeOutboundMessageContextTest extends OpenSAMLInitBaseTestCa
}
@Test public void testPeerEntityContextNoIssuer() {
- SAMLPeerEntityContext ctx = prc.getInboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true);
- prc.getSubcontext(RelyingPartyContext.class).setRelyingPartyIdContextTree(ctx);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ SAMLPeerEntityContext ctx = imc.getOrCreateSubcontext(SAMLPeerEntityContext.class);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.setRelyingPartyIdContextTree(ctx);
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
- Assert.assertNotNull(prc.getOutboundMessageContext());
- ctx = prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class);
- Assert.assertNotNull(ctx);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+
+ ctx = omc.getSubcontext(SAMLPeerEntityContext.class);
+ assert ctx!=null;
Assert.assertNull(ctx.getEntityId());
}
@Test public void testPeerEntityContextIssuer() {
- SAMLPeerEntityContext ctx = prc.getInboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true);
- prc.getSubcontext(RelyingPartyContext.class).setRelyingPartyIdContextTree(ctx);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ SAMLPeerEntityContext ctx = imc.getOrCreateSubcontext(SAMLPeerEntityContext.class);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.setRelyingPartyIdContextTree(ctx);
attributeQuery.getAttributeQuery().setResource("issuer");
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
- Assert.assertNotNull(prc.getOutboundMessageContext());
- ctx = prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class);
- Assert.assertNotNull(ctx);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+
+ ctx = omc.getSubcontext(SAMLPeerEntityContext.class);
+ assert ctx!=null;
Assert.assertEquals(ctx.getEntityId(), "issuer");
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeRelyingPartyContextFromSAMLPeerTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeRelyingPartyContextFromSAMLPeerTest.java
index dabc60733..978ab5dec 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeRelyingPartyContextFromSAMLPeerTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/InitializeRelyingPartyContextFromSAMLPeerTest.java
@@ -17,6 +17,7 @@
package net.shibboleth.idp.saml.profile.impl;
+import org.opensaml.messaging.context.MessageContext;
import org.opensaml.profile.action.EventIds;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext;
@@ -62,15 +63,17 @@ public class InitializeRelyingPartyContextFromSAMLPeerTest {
@Test
public void testPeerContext() {
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
final SAMLPeerEntityContext peer =
- prc.getInboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true);
+ imc.getOrCreateSubcontext(SAMLPeerEntityContext.class);
peer.setEntityId("foo");
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
final RelyingPartyContext rp = prc.getSubcontext(RelyingPartyContext.class);
- Assert.assertNotNull(rp);
+ assert rp!=null;
Assert.assertSame(rp.getRelyingPartyIdContextTree(), peer);
Assert.assertEquals(rp.getRelyingPartyId(), "foo");
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/PopulateBindingAndEndpointContextsTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/PopulateBindingAndEndpointContextsTest.java
index c42cc5064..69422e7e5 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/PopulateBindingAndEndpointContextsTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/profile/impl/PopulateBindingAndEndpointContextsTest.java
@@ -42,6 +42,7 @@ import net.shibboleth.shared.xml.XMLParserException;
import org.opensaml.core.testing.XMLObjectBaseTestCase;
import org.opensaml.core.xml.io.Unmarshaller;
import org.opensaml.core.xml.io.UnmarshallingException;
+import org.opensaml.messaging.context.MessageContext;
import org.opensaml.profile.action.EventIds;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.saml.common.binding.BindingDescriptor;
@@ -54,6 +55,7 @@ import org.opensaml.saml.common.profile.SAMLEventIds;
import org.opensaml.saml.common.xml.SAMLConstants;
import org.opensaml.saml.saml2.core.AuthnRequest;
import org.opensaml.saml.saml2.metadata.AssertionConsumerService;
+import org.opensaml.saml.saml2.metadata.Endpoint;
import org.opensaml.saml.saml2.metadata.EntityDescriptor;
import org.opensaml.saml.saml2.testing.SAML2ActionTestingSupport;
import org.springframework.webflow.execution.Event;
@@ -93,12 +95,17 @@ public class PopulateBindingAndEndpointContextsTest extends XMLObjectBaseTestCas
rc = new RequestContextBuilder().setInboundMessage(request).setRelyingPartyProfileConfigurations(
Collections.<ProfileConfiguration>singletonList(profileConfig)).buildRequestContext();
prc = new WebflowRequestContextProfileRequestContextLookup().apply(rc);
- prc.getInboundMessageContext().getSubcontext(SAMLBindingContext.class, true).setRelayState(RELAY_STATE);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc !=null;
+ imc.getOrCreateSubcontext(SAMLBindingContext.class).setRelayState(RELAY_STATE);
// Set these up so the context will be seen as anonymous or not based on metadata in the outbound context.
- prc.getSubcontext(RelyingPartyContext.class).setVerificationLookupStrategy(new SAMLVerificationLookupStrategy());
- prc.getSubcontext(RelyingPartyContext.class).setRelyingPartyIdContextTree(
- prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true));
+ final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpc!=null;
+ rpc.setVerificationLookupStrategy(new SAMLVerificationLookupStrategy());
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ rpc.setRelyingPartyIdContextTree(omc.getOrCreateSubcontext(SAMLPeerEntityContext.class));
action = new PopulateBindingAndEndpointContexts();
action.setEndpointResolver(new DefaultEndpointResolver<>());
@@ -152,19 +159,23 @@ public class PopulateBindingAndEndpointContextsTest extends XMLObjectBaseTestCas
public void testNoMetadata() {
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
- final SAMLBindingContext bindingCtx = prc.getOutboundMessageContext().getSubcontext(SAMLBindingContext.class);
- Assert.assertNotNull(bindingCtx);
+ final SAMLBindingContext bindingCtx = omc.getSubcontext(SAMLBindingContext.class);
+ assert bindingCtx!=null;
Assert.assertNotNull(bindingCtx.getBindingDescriptor());
Assert.assertEquals(bindingCtx.getRelayState(), RELAY_STATE);
Assert.assertEquals(bindingCtx.getBindingUri(), SAMLConstants.SAML2_POST_BINDING_URI);
- final SAMLEndpointContext epCtx = prc.getOutboundMessageContext().getSubcontext(
- SAMLPeerEntityContext.class, false).getSubcontext(SAMLEndpointContext.class, false);
- Assert.assertNotNull(epCtx);
- Assert.assertNotNull(epCtx.getEndpoint());
- Assert.assertEquals(epCtx.getEndpoint().getBinding(), SAMLConstants.SAML2_POST_BINDING_URI);
- Assert.assertEquals(epCtx.getEndpoint().getLocation(), LOCATION_POST);
+ final SAMLPeerEntityContext pec = omc.getSubcontext(SAMLPeerEntityContext.class);
+ assert pec!=null;
+ final SAMLEndpointContext epCtx = pec.getSubcontext(SAMLEndpointContext.class, false);
+ assert epCtx!=null;
+ final Endpoint ep =epCtx.getEndpoint();
+ assert ep!=null;
+ Assert.assertEquals(ep.getBinding(), SAMLConstants.SAML2_POST_BINDING_URI);
+ Assert.assertEquals(ep.getLocation(), LOCATION_POST);
}
/**
@@ -178,7 +189,9 @@ public class PopulateBindingAndEndpointContextsTest extends XMLObjectBaseTestCas
final SAMLMetadataContext mdCtx = new SAMLMetadataContext();
mdCtx.setEntityDescriptor(entity);
mdCtx.setRoleDescriptor(entity.getSPSSODescriptor("required"));
- prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true).addSubcontext(mdCtx);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ omc.getOrCreateSubcontext(SAMLPeerEntityContext.class).addSubcontext(mdCtx);
final Event event = action.execute(rc);
ActionTestingSupport.assertEvent(event, SAMLEventIds.ENDPOINT_RESOLUTION_FAILED);
@@ -195,7 +208,9 @@ public class PopulateBindingAndEndpointContextsTest extends XMLObjectBaseTestCas
final SAMLMetadataContext mdCtx = new SAMLMetadataContext();
mdCtx.setEntityDescriptor(entity);
mdCtx.setRoleDescriptor(entity.getSPSSODescriptor("required"));
- prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true).addSubcontext(mdCtx);
+ MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ omc.getOrCreateSubcontext(SAMLPeerEntityContext.class).addSubcontext(mdCtx);
Event event = action.execute(rc);
ActionTestingSupport.assertEvent(event, SAMLEventIds.ENDPOINT_RESOLUTION_FAILED);
@@ -207,17 +222,27 @@ public class PopulateBindingAndEndpointContextsTest extends XMLObjectBaseTestCas
// Request is signed but we don't care.
profileConfig.setSkipEndpointValidationWhenSigned(false);
- prc.getInboundMessageContext().getSubcontext(SAMLBindingContext.class).setHasBindingSignature(true);
+ MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ SAMLBindingContext sbc = imc.getSubcontext(SAMLBindingContext.class);
+ assert sbc != null;
+ sbc.setHasBindingSignature(true);
event = action.execute(rc);
ActionTestingSupport.assertEvent(event, SAMLEventIds.ENDPOINT_RESOLUTION_FAILED);
// Request is signed and we care.
profileConfig.setSkipEndpointValidationWhenSigned(true);
- prc.getInboundMessageContext().getSubcontext(SAMLBindingContext.class).setHasBindingSignature(true);
+ imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ sbc = imc.getSubcontext(SAMLBindingContext.class);
+ assert sbc != null;
+ sbc.setHasBindingSignature(true);
event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- final SAMLBindingContext bindingCtx = prc.getOutboundMessageContext().getSubcontext(SAMLBindingContext.class);
- Assert.assertNotNull(bindingCtx);
+ omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ final SAMLBindingContext bindingCtx = omc.getSubcontext(SAMLBindingContext.class);
+ assert bindingCtx!=null;
Assert.assertNotNull(bindingCtx.getBindingDescriptor());
Assert.assertEquals(bindingCtx.getRelayState(), RELAY_STATE);
Assert.assertEquals(bindingCtx.getBindingUri(), SAMLConstants.SAML2_POST_BINDING_URI);
@@ -234,9 +259,15 @@ public class PopulateBindingAndEndpointContextsTest extends XMLObjectBaseTestCas
final SAMLMetadataContext mdCtx = new SAMLMetadataContext();
mdCtx.setEntityDescriptor(entity);
mdCtx.setRoleDescriptor(entity.getSPSSODescriptor("required"));
- prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true).addSubcontext(mdCtx);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ omc.getOrCreateSubcontext(SAMLPeerEntityContext.class).addSubcontext(mdCtx);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setAssertionConsumerServiceURL(LOCATION);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc != null;
+ final AuthnRequest authnRequest = (AuthnRequest) imc.getMessage();
+ assert authnRequest!=null;
+ authnRequest.setAssertionConsumerServiceURL(LOCATION);
final Event event = action.execute(rc);
ActionTestingSupport.assertEvent(event, SAMLEventIds.ENDPOINT_RESOLUTION_FAILED);
@@ -253,9 +284,15 @@ public class PopulateBindingAndEndpointContextsTest extends XMLObjectBaseTestCas
final SAMLMetadataContext mdCtx = new SAMLMetadataContext();
mdCtx.setEntityDescriptor(entity);
mdCtx.setRoleDescriptor(entity.getSPSSODescriptor("required"));
- prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true).addSubcontext(mdCtx);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setProtocolBinding(SAMLConstants.SAML2_SOAP11_BINDING_URI);
+ omc.getOrCreateSubcontext(SAMLPeerEntityContext.class).addSubcontext(mdCtx);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc != null;
+ final AuthnRequest authnRequest = (AuthnRequest) imc.getMessage();
+ assert authnRequest!=null;
+ authnRequest.setProtocolBinding(SAMLConstants.SAML2_SOAP11_BINDING_URI);
final Event event = action.execute(rc);
ActionTestingSupport.assertEvent(event, SAMLEventIds.ENDPOINT_RESOLUTION_FAILED);
@@ -272,10 +309,16 @@ public class PopulateBindingAndEndpointContextsTest extends XMLObjectBaseTestCas
final SAMLMetadataContext mdCtx = new SAMLMetadataContext();
mdCtx.setEntityDescriptor(entity);
mdCtx.setRoleDescriptor(entity.getSPSSODescriptor("required"));
- prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true).addSubcontext(mdCtx);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ omc.getOrCreateSubcontext(SAMLPeerEntityContext.class).addSubcontext(mdCtx);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setAssertionConsumerServiceURL(LOCATION_ART);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setProtocolBinding(SAMLConstants.SAML2_ARTIFACT_BINDING_URI);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc != null;
+ final AuthnRequest authnRequest = (AuthnRequest) imc.getMessage();
+ assert authnRequest!=null;
+ authnRequest.setAssertionConsumerServiceURL(LOCATION_ART);
+ authnRequest.setProtocolBinding(SAMLConstants.SAML2_ARTIFACT_BINDING_URI);
final Event event = action.execute(rc);
ActionTestingSupport.assertEvent(event, SAMLEventIds.ENDPOINT_RESOLUTION_FAILED);
@@ -292,11 +335,17 @@ public class PopulateBindingAndEndpointContextsTest extends XMLObjectBaseTestCas
final SAMLMetadataContext mdCtx = new SAMLMetadataContext();
mdCtx.setEntityDescriptor(entity);
mdCtx.setRoleDescriptor(entity.getSPSSODescriptor("required"));
- prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true).addSubcontext(mdCtx);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ omc.getOrCreateSubcontext(SAMLPeerEntityContext.class).addSubcontext(mdCtx);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setAssertionConsumerServiceIndex(10);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setAssertionConsumerServiceURL(null);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setProtocolBinding(null);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc != null;
+ final AuthnRequest authnRequest = (AuthnRequest) imc.getMessage();
+ assert authnRequest!=null;
+ authnRequest.setAssertionConsumerServiceIndex(10);
+ authnRequest.setAssertionConsumerServiceURL(null);
+ authnRequest.setProtocolBinding(null);
final Event event = action.execute(rc);
ActionTestingSupport.assertEvent(event, SAMLEventIds.ENDPOINT_RESOLUTION_FAILED);
@@ -309,7 +358,13 @@ public class PopulateBindingAndEndpointContextsTest extends XMLObjectBaseTestCas
*/
@Test
public void testSynchronous() throws ComponentInitializationException {
- prc.getInboundMessageContext().getSubcontext(SAMLBindingContext.class).setBindingUri(
+
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ final SAMLBindingContext sbc = imc.getSubcontext(SAMLBindingContext.class);
+ assert sbc != null;
+
+ sbc.setBindingUri(
SAMLConstants.SAML2_SOAP11_BINDING_URI);
final BindingDescriptor binding = new BindingDescriptor();
@@ -324,8 +379,10 @@ public class PopulateBindingAndEndpointContextsTest extends XMLObjectBaseTestCas
final Event event = badaction.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- final SAMLBindingContext bindingCtx = prc.getOutboundMessageContext().getSubcontext(SAMLBindingContext.class);
- Assert.assertNotNull(bindingCtx);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ final SAMLBindingContext bindingCtx = omc.getSubcontext(SAMLBindingContext.class);
+ assert bindingCtx!=null;
Assert.assertEquals(bindingCtx.getRelayState(), RELAY_STATE);
Assert.assertEquals(bindingCtx.getBindingUri(), SAMLConstants.SAML2_SOAP11_BINDING_URI);
Assert.assertSame(binding, bindingCtx.getBindingDescriptor());
@@ -342,23 +399,28 @@ public class PopulateBindingAndEndpointContextsTest extends XMLObjectBaseTestCas
final SAMLMetadataContext mdCtx = new SAMLMetadataContext();
mdCtx.setEntityDescriptor(entity);
mdCtx.setRoleDescriptor(entity.getSPSSODescriptor("required"));
- prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true).addSubcontext(mdCtx);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ omc.getOrCreateSubcontext(SAMLPeerEntityContext.class).addSubcontext(mdCtx);
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- final SAMLBindingContext bindingCtx = prc.getOutboundMessageContext().getSubcontext(SAMLBindingContext.class);
- Assert.assertNotNull(bindingCtx);
+ final SAMLBindingContext bindingCtx = omc.getSubcontext(SAMLBindingContext.class);
+ assert bindingCtx!=null;
Assert.assertNotNull(bindingCtx.getBindingDescriptor());
Assert.assertEquals(bindingCtx.getRelayState(), RELAY_STATE);
Assert.assertEquals(bindingCtx.getBindingUri(), SAMLConstants.SAML2_POST_BINDING_URI);
- final SAMLEndpointContext epCtx = prc.getOutboundMessageContext().getSubcontext(
- SAMLPeerEntityContext.class, false).getSubcontext(SAMLEndpointContext.class, false);
- Assert.assertNotNull(epCtx);
- Assert.assertNotNull(epCtx.getEndpoint());
- Assert.assertEquals(epCtx.getEndpoint().getBinding(), SAMLConstants.SAML2_POST_BINDING_URI);
- Assert.assertEquals(epCtx.getEndpoint().getLocation(), LOCATION_POST);
+ final SAMLPeerEntityContext pec = omc.getSubcontext(SAMLPeerEntityContext.class);
+ assert pec!=null;
+ final SAMLEndpointContext epCtx = pec.getSubcontext(SAMLEndpointContext.class, false);
+ assert epCtx!=null;
+ final Endpoint ep =epCtx.getEndpoint();
+ assert ep!=null;
+
+ Assert.assertEquals(ep.getBinding(), SAMLConstants.SAML2_POST_BINDING_URI);
+ Assert.assertEquals(ep.getLocation(), LOCATION_POST);
}
/**
@@ -372,27 +434,36 @@ public class PopulateBindingAndEndpointContextsTest extends XMLObjectBaseTestCas
final SAMLMetadataContext mdCtx = new SAMLMetadataContext();
mdCtx.setEntityDescriptor(entity);
mdCtx.setRoleDescriptor(entity.getSPSSODescriptor("required"));
- prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true).addSubcontext(mdCtx);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ omc.getOrCreateSubcontext(SAMLPeerEntityContext.class).addSubcontext(mdCtx);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setAssertionConsumerServiceIndex(2);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setAssertionConsumerServiceURL(null);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setProtocolBinding(null);
+
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc != null;
+ final AuthnRequest authnRequest = (AuthnRequest) imc.getMessage();
+ assert authnRequest!=null;
+ authnRequest.setAssertionConsumerServiceIndex(2);
+ authnRequest.setAssertionConsumerServiceURL(null);
+ authnRequest.setProtocolBinding(null);
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- final SAMLBindingContext bindingCtx = prc.getOutboundMessageContext().getSubcontext(SAMLBindingContext.class);
- Assert.assertNotNull(bindingCtx);
+ final SAMLBindingContext bindingCtx = omc.getSubcontext(SAMLBindingContext.class);
+ assert bindingCtx!=null;
Assert.assertNotNull(bindingCtx.getBindingDescriptor());
Assert.assertEquals(bindingCtx.getRelayState(), RELAY_STATE);
Assert.assertEquals(bindingCtx.getBindingUri(), SAMLConstants.SAML2_POST_BINDING_URI);
- final SAMLEndpointContext epCtx = prc.getOutboundMessageContext().getSubcontext(
- SAMLPeerEntityContext.class, false).getSubcontext(SAMLEndpointContext.class, false);
- Assert.assertNotNull(epCtx);
- Assert.assertNotNull(epCtx.getEndpoint());
- Assert.assertEquals(epCtx.getEndpoint().getBinding(), SAMLConstants.SAML2_POST_BINDING_URI);
- Assert.assertEquals(epCtx.getEndpoint().getLocation(), LOCATION_POST);
+ final SAMLPeerEntityContext pec = omc.getSubcontext(SAMLPeerEntityContext.class);
+ assert pec!=null;
+ final SAMLEndpointContext epCtx = pec.getSubcontext(SAMLEndpointContext.class, false);
+ assert epCtx!=null;
+ final Endpoint ep =epCtx.getEndpoint();
+ assert ep!=null;
+ Assert.assertEquals(ep.getBinding(), SAMLConstants.SAML2_POST_BINDING_URI);
+ Assert.assertEquals(ep.getLocation(), LOCATION_POST);
}
/**
@@ -406,11 +477,17 @@ public class PopulateBindingAndEndpointContextsTest extends XMLObjectBaseTestCas
final SAMLMetadataContext mdCtx = new SAMLMetadataContext();
mdCtx.setEntityDescriptor(entity);
mdCtx.setRoleDescriptor(entity.getSPSSODescriptor("required"));
- prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true).addSubcontext(mdCtx);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ omc.getOrCreateSubcontext(SAMLPeerEntityContext.class).addSubcontext(mdCtx);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setAssertionConsumerServiceIndex(3);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setAssertionConsumerServiceURL(null);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setProtocolBinding(null);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc != null;
+ final AuthnRequest authnRequest = (AuthnRequest) imc.getMessage();
+ assert authnRequest!=null;
+ authnRequest.setAssertionConsumerServiceIndex(3);
+ authnRequest.setAssertionConsumerServiceURL(null);
+ authnRequest.setProtocolBinding(null);
final Event event = action.execute(rc);
ActionTestingSupport.assertEvent(event, SAMLEventIds.ENDPOINT_RESOLUTION_FAILED);
@@ -427,26 +504,34 @@ public class PopulateBindingAndEndpointContextsTest extends XMLObjectBaseTestCas
final SAMLMetadataContext mdCtx = new SAMLMetadataContext();
mdCtx.setEntityDescriptor(entity);
mdCtx.setRoleDescriptor(entity.getSPSSODescriptor("required"));
- prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true).addSubcontext(mdCtx);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ omc.getOrCreateSubcontext(SAMLPeerEntityContext.class).addSubcontext(mdCtx);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setAssertionConsumerServiceURL(null);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setProtocolBinding(null);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc != null;
+ final AuthnRequest authnRequest = (AuthnRequest) imc.getMessage();
+ assert authnRequest!=null;
+ authnRequest.setAssertionConsumerServiceURL(null);
+ authnRequest.setProtocolBinding(null);
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- final SAMLBindingContext bindingCtx = prc.getOutboundMessageContext().getSubcontext(SAMLBindingContext.class);
- Assert.assertNotNull(bindingCtx);
+ final SAMLBindingContext bindingCtx = omc.getSubcontext(SAMLBindingContext.class);
+ assert bindingCtx!=null;
Assert.assertNotNull(bindingCtx.getBindingDescriptor());
Assert.assertEquals(bindingCtx.getRelayState(), RELAY_STATE);
Assert.assertEquals(bindingCtx.getBindingUri(), SAMLConstants.SAML2_POST_BINDING_URI);
- final SAMLEndpointContext epCtx = prc.getOutboundMessageContext().getSubcontext(
- SAMLPeerEntityContext.class, false).getSubcontext(SAMLEndpointContext.class, false);
- Assert.assertNotNull(epCtx);
- Assert.assertNotNull(epCtx.getEndpoint());
- Assert.assertEquals(epCtx.getEndpoint().getBinding(), SAMLConstants.SAML2_POST_BINDING_URI);
- Assert.assertEquals(epCtx.getEndpoint().getLocation(), LOCATION_POST.replace("POST2", "POST"));
+ final SAMLPeerEntityContext pec = omc.getSubcontext(SAMLPeerEntityContext.class);
+ assert pec!=null;
+ final SAMLEndpointContext epCtx = pec.getSubcontext(SAMLEndpointContext.class, false);
+ assert epCtx!=null;
+ final Endpoint ep =epCtx.getEndpoint();
+ assert ep!=null;
+ Assert.assertEquals(ep.getBinding(), SAMLConstants.SAML2_POST_BINDING_URI);
+ Assert.assertEquals(ep.getLocation(), LOCATION_POST.replace("POST2", "POST"));
}
/**
@@ -460,26 +545,32 @@ public class PopulateBindingAndEndpointContextsTest extends XMLObjectBaseTestCas
final SAMLMetadataContext mdCtx = new SAMLMetadataContext();
mdCtx.setEntityDescriptor(entity);
mdCtx.setRoleDescriptor(entity.getSPSSODescriptor("required"));
- prc.getOutboundMessageContext().getSubcontext(SAMLPeerEntityContext.class, true).addSubcontext(mdCtx);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ omc.getOrCreateSubcontext(SAMLPeerEntityContext.class).addSubcontext(mdCtx);
final IdPInitiatedSSORequest saml1Request = new IdPInitiatedSSORequest("foo", LOCATION_POST, null, null);
- prc.getInboundMessageContext().setMessage(saml1Request);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc != null;
+ imc.setMessage(saml1Request);
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- final SAMLBindingContext bindingCtx = prc.getOutboundMessageContext().getSubcontext(SAMLBindingContext.class);
- Assert.assertNotNull(bindingCtx);
+ final SAMLBindingContext bindingCtx = omc.getSubcontext(SAMLBindingContext.class);
+ assert bindingCtx!=null;
Assert.assertNotNull(bindingCtx.getBindingDescriptor());
Assert.assertEquals(bindingCtx.getRelayState(), RELAY_STATE);
Assert.assertEquals(bindingCtx.getBindingUri(), SAMLConstants.SAML2_POST_BINDING_URI);
- final SAMLEndpointContext epCtx = prc.getOutboundMessageContext().getSubcontext(
- SAMLPeerEntityContext.class, false).getSubcontext(SAMLEndpointContext.class, false);
- Assert.assertNotNull(epCtx);
- Assert.assertNotNull(epCtx.getEndpoint());
- Assert.assertEquals(epCtx.getEndpoint().getBinding(), SAMLConstants.SAML2_POST_BINDING_URI);
- Assert.assertEquals(epCtx.getEndpoint().getLocation(), LOCATION_POST);
+ final SAMLPeerEntityContext pec = omc.getSubcontext(SAMLPeerEntityContext.class);
+ assert pec!=null;
+ final SAMLEndpointContext epCtx = pec.getSubcontext(SAMLEndpointContext.class, false);
+ assert epCtx!=null;
+ final Endpoint ep =epCtx.getEndpoint();
+ assert ep!=null;
+ Assert.assertEquals(ep.getBinding(), SAMLConstants.SAML2_POST_BINDING_URI);
+ Assert.assertEquals(ep.getLocation(), LOCATION_POST);
}
@Nonnull private EntityDescriptor loadMetadata(@Nonnull @NotEmpty final String path) throws UnmarshallingException {
@@ -488,6 +579,7 @@ public class PopulateBindingAndEndpointContextsTest extends XMLObjectBaseTestCas
final URL url = getClass().getResource(path);
Document doc = parserPool.parse(new FileInputStream(new File(url.toURI())));
final Unmarshaller unmarshaller = unmarshallerFactory.getUnmarshaller(doc.getDocumentElement());
+ assert unmarshaller!=null;
return (EntityDescriptor) unmarshaller.unmarshall(doc.getDocumentElement());
} catch (FileNotFoundException | XMLParserException | URISyntaxException e) {
throw new UnmarshallingException(e);
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAttributeStatementToAssertionTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAttributeStatementToAssertionTest.java
index bb48a819d..0f466ccf6 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAttributeStatementToAssertionTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAttributeStatementToAssertionTest.java
@@ -28,6 +28,7 @@ import javax.annotation.Nullable;
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
import org.opensaml.core.xml.XMLObject;
import org.opensaml.core.xml.schema.impl.XSStringImpl;
+import org.opensaml.messaging.context.MessageContext;
import org.opensaml.profile.action.EventIds;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.saml.saml1.core.Assertion;
@@ -57,6 +58,7 @@ import net.shibboleth.idp.saml.attribute.transcoding.AbstractSAML1AttributeTrans
import net.shibboleth.idp.saml.attribute.transcoding.SAML1AttributeTranscoder;
import net.shibboleth.idp.saml.attribute.transcoding.impl.SAML1StringAttributeTranscoder;
import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.testing.MockApplicationContext;
import net.shibboleth.shared.testing.MockReloadableService;
@@ -167,7 +169,9 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
prc.setOutboundMessageContext(null);
final AttributeContext attribCtx = buildAttributeContext();
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attribCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.addSubcontext(attribCtx);
action.initialize();
final Event result = action.execute(rc);
@@ -192,7 +196,9 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
*/
@Test public void testNoAttributes() throws Exception {
final AttributeContext attribCtx = new AttributeContext();
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attribCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.addSubcontext(attribCtx);
action.initialize();
Event result = action.execute(rc);
@@ -221,7 +227,7 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
rule.put(SAML1AttributeTranscoder.PROP_NAME, MY_NAME_1);
rule.put(SAML1AttributeTranscoder.PROP_NAMESPACE, MY_NAMESPACE);
- localregistry.setTranscoderRegistry(Collections.singletonList(new TranscodingRule(rule)));
+ localregistry.setTranscoderRegistry(CollectionSupport.singletonList(new TranscodingRule(rule)));
localregistry.setApplicationContext(new MockApplicationContext());
localregistry.initialize();
@@ -232,7 +238,9 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
final AttributeContext attribCtx = new AttributeContext();
attribCtx.setIdPAttributes(Arrays.asList(attribute));
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attribCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.addSubcontext(attribCtx);
action.setIgnoringUnencodableAttributes(true);
action.initialize();
@@ -262,7 +270,7 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
rule.put(SAML1AttributeTranscoder.PROP_NAME, MY_NAME_1);
rule.put(SAML1AttributeTranscoder.PROP_NAMESPACE, MY_NAMESPACE);
- localregistry.setTranscoderRegistry(Collections.singletonList(new TranscodingRule(rule)));
+ localregistry.setTranscoderRegistry(CollectionSupport.singletonList(new TranscodingRule(rule)));
localregistry.setApplicationContext(new MockApplicationContext());
localregistry.initialize();
@@ -273,7 +281,9 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
final AttributeContext attribCtx = new AttributeContext();
attribCtx.setIdPAttributes(Arrays.asList(attribute));
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attribCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.addSubcontext(attribCtx);
action.setIgnoringUnencodableAttributes(false);
action.initialize();
@@ -288,19 +298,25 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
* @throws Exception if something goes wrong
*/
@Test public void testAddedAttributeStatement() throws Exception {
-
- ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().add(
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ Response response = (Response) omc.getMessage();
+ assert response != null;
+ response.getAssertions().add(
SAML1ActionTestingSupport.buildAssertion());
final AttributeContext attribCtx = buildAttributeContext();
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attribCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.addSubcontext(attribCtx);
action.setStatementInOwnAssertion(true);
action.initialize();
final Event result = action.execute(rc);
ActionTestingSupport.assertProceedEvent(result);
+ response = (Response) omc.getMessage();
+ assert response != null;
- final Response response = (Response) prc.getOutboundMessageContext().getMessage();
Assert.assertEquals(response.getAssertions().size(), 2);
for (final Assertion assertion : response.getAssertions()) {
@@ -320,17 +336,24 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
* @throws Exception if something goes wrong
*/
@Test public void testAssertionInResponse() throws Exception {
- ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().add(
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ Response response = (Response) omc.getMessage();
+ assert response != null;
+ response.getAssertions().add(
SAML1ActionTestingSupport.buildAssertion());
final AttributeContext attribCtx = buildAttributeContext();
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attribCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.addSubcontext(attribCtx);
action.initialize();
final Event result = action.execute(rc);
ActionTestingSupport.assertProceedEvent(result);
- final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+ response = (Response) omc.getMessage();
+ assert response != null;
Assert.assertEquals(response.getAssertions().size(), 1);
Assertion assertion = response.getAssertions().get(0);
@@ -350,13 +373,19 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
*/
@Test public void testNoAssertionInResponse() throws Exception {
final AttributeContext attribCtx = buildAttributeContext();
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attribCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.addSubcontext(attribCtx);
action.initialize();
final Event result = action.execute(rc);
ActionTestingSupport.assertProceedEvent(result);
-
- final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc != null;
+
+ final Response response = (Response) omc.getMessage();
+ assert response!=null;
Assert.assertEquals(response.getAssertions().size(), 1);
Assertion assertion = response.getAssertions().get(0);
@@ -400,17 +429,20 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
boolean one = false, altone = false, two = false;
for (final Attribute samlAttr : attributeStatement.getAttributes()) {
- if (samlAttr.getAttributeName().equals(MY_NAME_1)) {
+ assert samlAttr!=null;
+ final String attrName = samlAttr.getAttributeName();
+ assert attrName!=null;
+ if (attrName.equals(MY_NAME_1)) {
Assert.assertEquals(samlAttr.getAttributeValues().size(), 1);
final XMLObject xmlObject = samlAttr.getAttributeValues().get(0);
Assert.assertEquals(((XSStringImpl) xmlObject).getValue(), MY_VALUE_1);
one = true;
- } else if (samlAttr.getAttributeName().equals(MY_NAME_2)) {
+ } else if (attrName.equals(MY_NAME_2)) {
Assert.assertEquals(samlAttr.getAttributeValues().size(), 1);
final XMLObject xmlObject = samlAttr.getAttributeValues().get(0);
Assert.assertEquals(((XSStringImpl) xmlObject).getValue(), MY_VALUE_2);
altone = true;
- } else if (samlAttr.getAttributeName().equals(MY_ALTNAME_1)) {
+ } else if (attrName.equals(MY_ALTNAME_1)) {
Assert.assertEquals(samlAttr.getAttributeValues().size(), 2);
final String val1 = ((XSStringImpl) samlAttr.getAttributeValues().get(0)).getValue();
final String val2 = ((XSStringImpl) samlAttr.getAttributeValues().get(1)).getValue();
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAuthenticationStatementToAssertionTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAuthenticationStatementToAssertionTest.java
index 662feef05..785024298 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAuthenticationStatementToAssertionTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/AddAuthenticationStatementToAssertionTest.java
@@ -19,9 +19,11 @@ package net.shibboleth.idp.saml.saml1.profile.impl;
import java.time.Instant;
+import javax.annotation.Nonnull;
import javax.security.auth.Subject;
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.saml.saml1.core.Assertion;
@@ -29,6 +31,7 @@ import org.opensaml.saml.saml1.core.AuthenticationStatement;
import org.opensaml.saml.saml1.core.Response;
import org.opensaml.storage.StorageSerializer;
import org.springframework.mock.web.MockHttpServletRequest;
+import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.webflow.execution.Event;
import org.springframework.webflow.execution.RequestContext;
import org.testng.Assert;
@@ -47,6 +50,7 @@ import net.shibboleth.idp.profile.testing.RequestContextBuilder;
import net.shibboleth.idp.saml.authn.principal.AuthenticationMethodPrincipal;
import net.shibboleth.profile.context.RelyingPartyContext;
import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.servlet.impl.HttpServletRequestResponseContext;
import net.shibboleth.shared.testing.ConstantSupplier;
/** {@link AddAuthenticationStatementToAssertion} unit test. */
@@ -57,6 +61,12 @@ public class AddAuthenticationStatementToAssertionTest extends OpenSAMLInitBaseT
private ProfileRequestContext prc;
private AddAuthenticationStatementToAssertion action;
+
+ @Nonnull private MockHttpServletRequest getMockHttpServletRequest() {
+ final MockHttpServletRequest result = (MockHttpServletRequest) action.getHttpServletRequest();
+ assert result != null;
+ return result;
+ }
/**
* Test setup.
@@ -104,7 +114,7 @@ public class AddAuthenticationStatementToAssertionTest extends OpenSAMLInitBaseT
*/
@Test public void testNoContext() throws Exception {
prc.setOutboundMessageContext(null);
- prc.getSubcontext(AuthenticationContext.class, true).setAuthenticationResult(
+ prc.getOrCreateSubcontext(AuthenticationContext.class).setAuthenticationResult(
new AuthenticationResult("Test", new AuthenticationMethodPrincipal("Test")));
final Event event = action.execute(rc);
@@ -141,19 +151,24 @@ public class AddAuthenticationStatementToAssertionTest extends OpenSAMLInitBaseT
fd.setResultSerializer(serializer);
fd.initialize();
- prc.getSubcontext(AuthenticationContext.class, true).getAvailableFlows().put("Test", fd);
- prc.getSubcontext(AuthenticationContext.class).setAuthenticationResult(
+ prc.getOrCreateSubcontext(AuthenticationContext.class).getAvailableFlows().put("Test", fd);
+ final AuthenticationContext ac = prc.getSubcontext(AuthenticationContext.class);
+ assert ac!=null;
+ ac.setAuthenticationResult(
new AuthenticationResult("Test", new AuthenticationMethodPrincipal("Test")));
- ((MockHttpServletRequest) action.getHttpServletRequest()).setRemoteAddr("127.0.0.1");
+ getMockHttpServletRequest().setRemoteAddr("127.0.0.1");
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
- Assert.assertNotNull(prc.getOutboundMessageContext().getMessage());
- Assert.assertTrue(prc.getOutboundMessageContext().getMessage() instanceof Response);
+ Assert.assertNotNull(omc.getMessage());
+ Assert.assertTrue(omc.getMessage() instanceof Response);
- final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+ final Response response = (Response) omc.getMessage();
+ assert response !=null;
Assert.assertEquals(response.getAssertions().size(), 1);
Assert.assertNotNull(response.getAssertions().get(0));
@@ -178,19 +193,24 @@ public class AddAuthenticationStatementToAssertionTest extends OpenSAMLInitBaseT
final Subject subject = new Subject();
subject.getPrincipals().add(new AuthenticationMethodPrincipal("Foo"));
subject.getPrincipals().add(new AuthenticationMethodPrincipal("Bar"));
- prc.getSubcontext(AuthenticationContext.class, true).setAuthenticationResult(
+ prc.getOrCreateSubcontext(AuthenticationContext.class).setAuthenticationResult(
new AuthenticationResult("Test", subject));
final RequestedPrincipalContext requested = new RequestedPrincipalContext();
requested.setMatchingPrincipal(new AuthenticationMethodPrincipal("Bar"));
- prc.getSubcontext(AuthenticationContext.class, false).addSubcontext(requested);
+ final AuthenticationContext ac = prc.getSubcontext(AuthenticationContext.class, false);
+ assert ac!=null;
+ ac.addSubcontext(requested);
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
- Assert.assertNotNull(prc.getOutboundMessageContext().getMessage());
- Assert.assertTrue(prc.getOutboundMessageContext().getMessage() instanceof Response);
+ Assert.assertNotNull(omc.getMessage());
+ Assert.assertTrue(omc.getMessage() instanceof Response);
- final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+ final Response response = (Response) omc.getMessage();
+ assert response != null;
Assert.assertEquals(response.getAssertions().size(), 1);
Assert.assertNotNull(response.getAssertions().get(0));
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/FilterByQueriedAttributeDesignatorsTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/FilterByQueriedAttributeDesignatorsTest.java
index adf5aaf75..eac0a1cc9 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/FilterByQueriedAttributeDesignatorsTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/FilterByQueriedAttributeDesignatorsTest.java
@@ -117,8 +117,8 @@ public class FilterByQueriedAttributeDesignatorsTest extends XMLObjectBaseTestCa
}
@Test public void noValues() {
- final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class,true);
- final AttributeContext ac = rpc.getSubcontext(AttributeContext.class,true);
+ final RelyingPartyContext rpc = prc.getOrCreateSubcontext(RelyingPartyContext.class);
+ final AttributeContext ac = rpc.getOrCreateSubcontext(AttributeContext.class);
final List<IdPAttribute> attributes = List.of(
new IdPAttribute("eduPersonAssurance"),
new IdPAttribute("flooby"),
@@ -132,8 +132,8 @@ public class FilterByQueriedAttributeDesignatorsTest extends XMLObjectBaseTestCa
/** This is a non-issue for SAML 1, but just for completeness. */
@Test public void values() {
- final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class,true);
- final AttributeContext ac = rpc.getSubcontext(AttributeContext.class,true);
+ final RelyingPartyContext rpc = prc.getOrCreateSubcontext(RelyingPartyContext.class);
+ final AttributeContext ac = rpc.getOrCreateSubcontext(AttributeContext.class);
final IdPAttribute eduPersonAssurance = new IdPAttribute("eduPersonAssurance");
eduPersonAssurance.setValues(List.of(new StringAttributeValue("green-blue"))); // not turquoise
final IdPAttribute flooby = new IdPAttribute("flooby");
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/IdPInitiatedSSORequestMessageDecoderTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/IdPInitiatedSSORequestMessageDecoderTest.java
index f99c9217e..3ea0a8bb4 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/IdPInitiatedSSORequestMessageDecoderTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/IdPInitiatedSSORequestMessageDecoderTest.java
@@ -81,24 +81,24 @@ public class IdPInitiatedSSORequestMessageDecoderTest {
decoder.decode();
MessageContext messageContext = decoder.getMessageContext();
- Assert.assertNotNull(messageContext);
+ assert messageContext!=null;
IdPInitiatedSSORequest ssoRequest = (IdPInitiatedSSORequest) messageContext.getMessage();
- Assert.assertNotNull(ssoRequest);
+ assert ssoRequest!=null;
Assert.assertEquals(ssoRequest.getEntityId(), entityId, "Incorrect decoded entityId value");
Assert.assertEquals(ssoRequest.getAssertionConsumerServiceURL(), acsUrl, "Incorrect decoded ACS URL value");
Assert.assertEquals(ssoRequest.getRelayState(), relayState, "Incorrect decoded relay state value");
Assert.assertEquals(ssoRequest.getTime(), time.truncatedTo(ChronoUnit.SECONDS), "Incorrect decoded time value");
- Assert.assertEquals(messageContext.getSubcontext(SAMLPeerEntityContext.class, true).getEntityId(), entityId,
+ Assert.assertEquals(messageContext.getOrCreateSubcontext(SAMLPeerEntityContext.class).getEntityId(), entityId,
"Incorrect decoded entityId value in peer context");
- SAMLBindingContext bindingContext = messageContext.getSubcontext(SAMLBindingContext.class, true);
+ SAMLBindingContext bindingContext = messageContext.getOrCreateSubcontext(SAMLBindingContext.class);
Assert.assertEquals(bindingContext.getRelayState(), relayState, "Incorrect decoded relay state value in binding context");
Assert.assertEquals(bindingContext.getBindingUri(), "urn:mace:shibboleth:1.0:profiles:AuthnRequest",
"Incorrect binding URI in binding context");
- SAMLMessageInfoContext msgInfoContext = messageContext.getSubcontext(SAMLMessageInfoContext.class, true);
+ SAMLMessageInfoContext msgInfoContext = messageContext.getOrCreateSubcontext(SAMLMessageInfoContext.class);
Assert.assertEquals(msgInfoContext.getMessageIssueInstant(), time.truncatedTo(ChronoUnit.SECONDS),
"Incorrect decoded issue instant value in message info context");
Assert.assertEquals(msgInfoContext.getMessageId(), messageID,
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/SAML1ActionSupportTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/SAML1ActionSupportTest.java
index 4e76b4515..4c6265bc3 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/SAML1ActionSupportTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml1/profile/impl/SAML1ActionSupportTest.java
@@ -19,7 +19,9 @@ package net.shibboleth.idp.saml.saml1.profile.impl;
import net.shibboleth.idp.profile.testing.RequestContextBuilder;
import net.shibboleth.idp.saml.profile.testing.ActionTestSupportAction;
+import net.shibboleth.profile.config.ProfileConfiguration;
import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.shared.component.ComponentInitializationException;
import java.util.function.Function;
@@ -31,6 +33,7 @@ import org.opensaml.saml.saml1.core.Assertion;
import org.opensaml.saml.saml1.core.Conditions;
import org.opensaml.saml.saml1.core.Response;
import org.opensaml.saml.saml1.profile.SAML1ActionSupport;
+import org.opensaml.security.config.SecurityConfiguration;
import org.springframework.webflow.execution.RequestContext;
import org.testng.Assert;
import org.testng.annotations.Test;
@@ -63,17 +66,27 @@ public class SAML1ActionSupportTest extends OpenSAMLInitBaseTestCase {
ProfileRequestContext.BINDING_KEY);
ActionTestSupportAction action = new ActionTestSupportAction();
- RelyingPartyContext relyingPartyCtx = relyingPartyContextLookupStrategy.apply(profileRequestContext);
-
+ final RelyingPartyContext relyingPartyCtx = relyingPartyContextLookupStrategy.apply(profileRequestContext);
+ assert relyingPartyCtx!=null;
Assert.assertEquals(response.getAssertions().size(), 0, "Expected zarro assertions before insert");
+
+ final ProfileConfiguration pc = relyingPartyCtx.getProfileConfig();
+ assert pc!=null;
+ final SecurityConfiguration sc = pc.getSecurityConfiguration(profileRequestContext);
+ assert sc!=null;
+ final RelyingPartyConfiguration rpConfig = relyingPartyCtx.getConfiguration();
+ assert rpConfig != null;
+ final String issuer =rpConfig.getIssuer(profileRequestContext);
+ assert issuer != null;
+
final Assertion assertion = SAML1ActionSupport.addAssertionToResponse(action, response,
- relyingPartyCtx.getProfileConfig().getSecurityConfiguration(profileRequestContext).getIdGenerator(),
- ((net.shibboleth.profile.relyingparty.RelyingPartyConfiguration) relyingPartyCtx.getConfiguration()).getIssuer(profileRequestContext));
+ sc.getIdGenerator(),
+ issuer);
Assert.assertEquals(response.getAssertions().size(), 1, "Expected but one assertion after insert");
Assert.assertTrue(response.getAssertions().contains(assertion), "Inserted assertion should be there");
final Assertion second = SAML1ActionSupport.addAssertionToResponse(action, response,
- relyingPartyCtx.getProfileConfig().getSecurityConfiguration(profileRequestContext).getIdGenerator(),
- ((net.shibboleth.profile.relyingparty.RelyingPartyConfiguration) relyingPartyCtx.getConfiguration()).getIssuer(profileRequestContext));
+ sc.getIdGenerator(),
+ issuer);
Assert.assertEquals(response.getAssertions().size(), 2, "Expected two assertions after two inserts");
Assert.assertTrue(response.getAssertions().contains(assertion), "Inserted assertion should be there");
Assert.assertNotSame(second, assertion, "Two separate assertions should have been added");
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/config/navigate/tests/ProxyRestrictionLookupFunctionTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/config/navigate/tests/ProxyRestrictionLookupFunctionTest.java
index cd9c44c49..5365db4db 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/config/navigate/tests/ProxyRestrictionLookupFunctionTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/config/navigate/tests/ProxyRestrictionLookupFunctionTest.java
@@ -29,6 +29,7 @@ import net.shibboleth.idp.profile.testing.RequestContextBuilder;
import net.shibboleth.idp.saml.saml2.profile.config.impl.BrowserSSOProfileConfiguration;
import net.shibboleth.idp.saml.saml2.profile.config.navigate.ProxyRestrictionLookupFunction;
import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.collection.Pair;
import net.shibboleth.shared.component.ComponentInitializationException;
@@ -54,9 +55,13 @@ public class ProxyRestrictionLookupFunctionTest extends OpenSAMLInitBaseTestCase
prc = new RequestContextBuilder()
.setRelyingPartyProfileConfigurations(Collections.singletonList(new BrowserSSOProfileConfiguration()))
.buildProfileRequestContext();
- config = (BrowserSSOProfileConfiguration) prc.getSubcontext(RelyingPartyContext.class).getConfiguration().getProfileConfiguration(
+ final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpc!=null;
+ final RelyingPartyConfiguration rpCfg = rpc.getConfiguration();
+ assert rpCfg!=null;
+ config = (BrowserSSOProfileConfiguration)rpCfg.getProfileConfiguration(
prc, BrowserSSOProfileConfiguration.PROFILE_ID);
- prc.getSubcontext(RelyingPartyContext.class).setProfileConfig(config);
+ rpc.setProfileConfig(config);
sc = prc.getOrCreateSubcontext(SubjectContext.class);
sc.getAuthenticationResults().put("test1", new AuthenticationResult("test1", new Subject()));
sc.getAuthenticationResults().put("test2", new AuthenticationResult("test2", new Subject()));
@@ -67,7 +72,9 @@ public class ProxyRestrictionLookupFunctionTest extends OpenSAMLInitBaseTestCase
public void testNoPrincipals() {
result = fn.apply(prc);
Assert.assertNull(result.getFirst());
- Assert.assertTrue(result.getSecond().isEmpty());
+ final Set<String> second = result.getSecond();
+ assert second!=null;
+ Assert.assertTrue(second.isEmpty());
}
@Test
@@ -77,7 +84,9 @@ public class ProxyRestrictionLookupFunctionTest extends OpenSAMLInitBaseTestCase
result = fn.apply(prc);
Assert.assertNull(result.getFirst());
- Assert.assertTrue(result.getSecond().isEmpty());
+ final Set<String> second = result.getSecond();
+ assert second!=null;
+ Assert.assertTrue(second.isEmpty());
}
@Test
@@ -88,7 +97,9 @@ public class ProxyRestrictionLookupFunctionTest extends OpenSAMLInitBaseTestCase
result = fn.apply(prc);
Assert.assertEquals(result.getFirst(), Integer.valueOf(9));
- Assert.assertTrue(result.getSecond().isEmpty());
+ final Set<String> second = result.getSecond();
+ assert second!=null;
+ Assert.assertTrue(second.isEmpty());
proxy.setProxyCount(1);
result = fn.apply(prc);
@@ -111,7 +122,9 @@ public class ProxyRestrictionLookupFunctionTest extends OpenSAMLInitBaseTestCase
result = fn.apply(prc);
Assert.assertEquals(result.getFirst(), Integer.valueOf(4));
- Assert.assertTrue(result.getSecond().isEmpty());
+ final Set<String> second = result.getSecond();
+ assert second!=null;
+ Assert.assertTrue(second.isEmpty());
proxy1.setProxyCount(1);
proxy2.setProxyCount(1);
@@ -159,7 +172,9 @@ public class ProxyRestrictionLookupFunctionTest extends OpenSAMLInitBaseTestCase
proxy2.getAudiences().clear();
proxy2.getAudiences().add("foo");
result = fn.apply(prc);
- Assert.assertTrue(result.getSecond().isEmpty());
+ final Set<String> second = result.getSecond();
+ assert second!=null;
+ Assert.assertTrue(second.isEmpty());
}
@Test
@@ -187,7 +202,9 @@ public class ProxyRestrictionLookupFunctionTest extends OpenSAMLInitBaseTestCase
result = fn.apply(prc);
Assert.assertEquals(result.getFirst(), Integer.valueOf(4));
- Assert.assertTrue(result.getSecond().isEmpty());
+ final Set<String> second = result.getSecond();
+ assert second!=null;
+ Assert.assertTrue(second.isEmpty());
config.setProxyCount(1);
proxy1.setProxyCount(1);
@@ -228,7 +245,10 @@ public class ProxyRestrictionLookupFunctionTest extends OpenSAMLInitBaseTestCase
proxy1.getAudiences().clear();
proxy1.getAudiences().add("bar");
result = fn.apply(prc);
- Assert.assertTrue(result.getSecond().isEmpty());
+ final Set<String> second = result.getSecond();
+ assert second!=null;
+
+ Assert.assertTrue(second.isEmpty());
Assert.assertEquals(result.getFirst(), Integer.valueOf(0));
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAttributeStatementToAssertionTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAttributeStatementToAssertionTest.java
index 712cc1dce..9a2704c00 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAttributeStatementToAssertionTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAttributeStatementToAssertionTest.java
@@ -41,6 +41,7 @@ import net.shibboleth.idp.saml.attribute.transcoding.AbstractSAML2AttributeTrans
import net.shibboleth.idp.saml.attribute.transcoding.SAML2AttributeTranscoder;
import net.shibboleth.idp.saml.attribute.transcoding.impl.SAML2StringAttributeTranscoder;
import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.testing.MockApplicationContext;
import net.shibboleth.shared.testing.MockReloadableService;
@@ -48,6 +49,7 @@ import net.shibboleth.shared.testing.MockReloadableService;
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
import org.opensaml.core.xml.XMLObject;
import org.opensaml.core.xml.schema.impl.XSStringImpl;
+import org.opensaml.messaging.context.MessageContext;
import org.opensaml.profile.action.EventIds;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.saml.saml2.core.Assertion;
@@ -175,7 +177,9 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
prc.setOutboundMessageContext(null);
final AttributeContext attribCtx = buildAttributeContext();
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attribCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.addSubcontext(attribCtx);
action.initialize();
final Event result = action.execute(rc);
@@ -200,7 +204,9 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
*/
@Test public void testNoAttributes() throws Exception {
final AttributeContext attribCtx = new AttributeContext();
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attribCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.addSubcontext(attribCtx);
action.initialize();
Event result = action.execute(rc);
@@ -240,7 +246,9 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
final AttributeContext attribCtx = new AttributeContext();
attribCtx.setIdPAttributes(Arrays.asList(attribute));
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attribCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.addSubcontext(attribCtx);
action.setIgnoringUnencodableAttributes(true);
action.initialize();
@@ -270,7 +278,7 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
rule.put(SAML2AttributeTranscoder.PROP_NAME, MY_NAME_1);
rule.put(SAML2AttributeTranscoder.PROP_NAME_FORMAT, MY_NAMESPACE);
- localregistry.setTranscoderRegistry(Collections.singletonList(new TranscodingRule(rule)));
+ localregistry.setTranscoderRegistry(CollectionSupport.singletonList(new TranscodingRule(rule)));
localregistry.setApplicationContext(new MockApplicationContext());
localregistry.initialize();
@@ -281,7 +289,9 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
final AttributeContext attribCtx = new AttributeContext();
attribCtx.setIdPAttributes(Arrays.asList(attribute));
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attribCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.addSubcontext(attribCtx);
action.setIgnoringUnencodableAttributes(false);
action.initialize();
@@ -296,19 +306,25 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
* @throws Exception if something goes wrong
*/
@Test public void testAddedAttributeStatement() throws Exception {
-
- ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().add(
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ Response response = (Response) omc.getMessage();
+ assert response != null;
+ response.getAssertions().add(
SAML2ActionTestingSupport.buildAssertion());
final AttributeContext attribCtx = buildAttributeContext();
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attribCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.addSubcontext(attribCtx);
action.setStatementInOwnAssertion(true);
action.initialize();
final Event result = action.execute(rc);
ActionTestingSupport.assertProceedEvent(result);
- final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+ response = (Response) omc.getMessage();
+ assert response != null;
Assert.assertEquals(response.getAssertions().size(), 2);
for (final Assertion assertion : response.getAssertions()) {
@@ -328,17 +344,24 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
* @throws Exception if something goes wrong
*/
@Test public void testAssertionInResponse() throws Exception {
- ((Response) prc.getOutboundMessageContext().getMessage()).getAssertions().add(
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ Response response = (Response) omc.getMessage();
+ assert response != null;
+ response.getAssertions().add(
SAML2ActionTestingSupport.buildAssertion());
final AttributeContext attribCtx = buildAttributeContext();
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attribCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.addSubcontext(attribCtx);
action.initialize();
final Event result = action.execute(rc);
ActionTestingSupport.assertProceedEvent(result);
- final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+ response = (Response) omc.getMessage();
+ assert response != null;
Assert.assertEquals(response.getAssertions().size(), 1);
final Assertion assertion = response.getAssertions().get(0);
@@ -357,13 +380,17 @@ public class AddAttributeStatementToAssertionTest extends OpenSAMLInitBaseTestCa
*/
@Test public void testNoAssertionInResponse() throws Exception {
final AttributeContext attribCtx = buildAttributeContext();
- prc.getSubcontext(RelyingPartyContext.class).addSubcontext(attribCtx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.addSubcontext(attribCtx);
action.initialize();
final Event result = action.execute(rc);
ActionTestingSupport.assertProceedEvent(result);
-
- final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ final Response response = (Response) omc.getMessage();
+ assert response != null;
Assert.assertEquals(response.getAssertions().size(), 1);
final Assertion assertion = response.getAssertions().get(0);
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAuthnRequestTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAuthnRequestTest.java
index 1c2fc3e24..8df4f3f5c 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAuthnRequestTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAuthnRequestTest.java
@@ -59,6 +59,7 @@ import org.opensaml.saml.saml2.core.IDPEntry;
import org.opensaml.saml.saml2.core.NameIDPolicy;
import org.opensaml.saml.saml2.core.NameIDType;
import org.opensaml.saml.saml2.core.RequestedAuthnContext;
+import org.opensaml.saml.saml2.core.Response;
import org.opensaml.saml.saml2.core.Scoping;
import org.opensaml.saml.saml2.metadata.RequestedAttribute;
import org.opensaml.xmlsec.config.BasicXMLSecurityConfiguration;
@@ -97,7 +98,9 @@ public class AddAuthnRequestTest extends OpenSAMLInitBaseTestCase {
rp.initialize();
rpc.setConfiguration(rp);
rpc.setProfileConfig(new BrowserSSOProfileConfiguration());
- ((BrowserSSOProfileConfiguration) rpc.getProfileConfig()).setSecurityConfiguration(new BasicXMLSecurityConfiguration());
+ BrowserSSOProfileConfiguration bspc = (BrowserSSOProfileConfiguration) rpc.getProfileConfig();
+ assert bspc!=null;
+ bspc.setSecurityConfiguration(new BasicXMLSecurityConfiguration());
action = new AddAuthnRequest();
action.setProfileContextLookupStrategy(
@@ -127,7 +130,9 @@ public class AddAuthnRequestTest extends OpenSAMLInitBaseTestCase {
/** Test that the action errors out properly if there is a message there. */
@Test public void testExistingMessage() {
- prc2.getOutboundMessageContext().setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
+ final MessageContext omc = prc2.getOutboundMessageContext();
+ assert omc!=null;
+ omc.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
final Event event = action.execute(rc);
ActionTestingSupport.assertEvent(event, EventIds.INVALID_MSG_CTX);
@@ -137,11 +142,14 @@ public class AddAuthnRequestTest extends OpenSAMLInitBaseTestCase {
@Test public void testSimple() {
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
+ final MessageContext omc = prc2.getOutboundMessageContext();
+ assert omc!=null;
- assertNotNull(prc2.getOutboundMessageContext().getMessage());
- assertTrue(prc2.getOutboundMessageContext().getMessage() instanceof AuthnRequest);
+ assertNotNull(omc.getMessage());
+ assertTrue(omc.getMessage() instanceof AuthnRequest);
- final AuthnRequest request = (AuthnRequest) prc2.getOutboundMessageContext().getMessage();
+ final AuthnRequest request = (AuthnRequest) omc.getMessage();
+ assert request!=null;
assertEquals(request.getIssuer().getValue(), ActionTestingSupport.OUTBOUND_MSG_ISSUER);
assertFalse(request.isForceAuthn());
assertFalse(request.isPassive());
@@ -167,35 +175,47 @@ public class AddAuthnRequestTest extends OpenSAMLInitBaseTestCase {
Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
-
- assertNotNull(prc2.getOutboundMessageContext().getMessage());
- assertTrue(prc2.getOutboundMessageContext().getMessage() instanceof AuthnRequest);
+ final MessageContext omc = prc2.getOutboundMessageContext();
+ assert omc!=null;
+
+ assertNotNull(omc.getMessage());
+ assertTrue(omc.getMessage() instanceof AuthnRequest);
- final AuthnRequest request = (AuthnRequest) prc2.getOutboundMessageContext().getMessage();
+ final AuthnRequest request = (AuthnRequest) omc.getMessage();
+ assert request!=null;
assertEquals(request.getIssuer().getValue(), ActionTestingSupport.OUTBOUND_MSG_ISSUER);
assertTrue(request.isForceAuthn());
assertTrue(request.isPassive());
- prc2.getOutboundMessageContext().setMessage(null);
- ((BrowserSSOProfileConfiguration) rpc.getProfileConfig()).setForceAuthn(false);
+ omc.setMessage(null);
+ BrowserSSOProfileConfiguration bspc = (BrowserSSOProfileConfiguration) rpc.getProfileConfig();
+ assert bspc!=null;
+ bspc.setForceAuthn(false);
event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- assertFalse(((AuthnRequest) prc2.getOutboundMessageContext().getMessage()).isForceAuthn());
+ final AuthnRequest ar =(AuthnRequest) omc.getMessage();
+ assert ar!=null;
+ assertFalse(ar.isForceAuthn());
}
/** Test that the action works with a NameID format set. */
@Test public void testNameIDFormat() {
- ((BrowserSSOProfileConfiguration) rpc.getProfileConfig()).setNameIDFormatPrecedence(
+ BrowserSSOProfileConfiguration bspc = (BrowserSSOProfileConfiguration) rpc.getProfileConfig();
+ assert bspc!=null;
+ bspc.setNameIDFormatPrecedence(
CollectionSupport.listOf(NameIDType.EMAIL, NameIDType.KERBEROS));
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
-
- assertNotNull(prc2.getOutboundMessageContext().getMessage());
- assertTrue(prc2.getOutboundMessageContext().getMessage() instanceof AuthnRequest);
+ final MessageContext omc = prc2.getOutboundMessageContext();
+ assert omc!=null;
+
+ assertNotNull(omc.getMessage());
+ assertTrue(omc.getMessage() instanceof AuthnRequest);
- final AuthnRequest request = (AuthnRequest) prc2.getOutboundMessageContext().getMessage();
+ final AuthnRequest request = (AuthnRequest) omc.getMessage();
+ assert request!=null;
final NameIDPolicy nid = request.getNameIDPolicy();
assertNotNull(nid);
assertEquals(nid.getFormat(), NameIDType.EMAIL);
@@ -204,15 +224,20 @@ public class AddAuthnRequestTest extends OpenSAMLInitBaseTestCase {
/** Test that the action works with SPNameQualifier set. */
@Test public void testSPNameQualifier() {
- ((BrowserSSOProfileConfiguration) rpc.getProfileConfig()).setSPNameQualifier(ActionTestingSupport.INBOUND_MSG_ISSUER);
+ BrowserSSOProfileConfiguration bspc = (BrowserSSOProfileConfiguration) rpc.getProfileConfig();
+ assert bspc!=null;
+ bspc.setSPNameQualifier(ActionTestingSupport.INBOUND_MSG_ISSUER);
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- assertNotNull(prc2.getOutboundMessageContext().getMessage());
- assertTrue(prc2.getOutboundMessageContext().getMessage() instanceof AuthnRequest);
+ final MessageContext omc = prc2.getOutboundMessageContext();
+ assert omc!=null;
+ assertNotNull(omc.getMessage());
+ assertTrue(omc.getMessage() instanceof AuthnRequest);
- final AuthnRequest request = (AuthnRequest) prc2.getOutboundMessageContext().getMessage();
+ final AuthnRequest request = (AuthnRequest) omc.getMessage();
+ assert request!=null;
final NameIDPolicy nid = request.getNameIDPolicy();
assertNotNull(nid);
assertEquals(nid.getSPNameQualifier(), ActionTestingSupport.INBOUND_MSG_ISSUER);
@@ -220,15 +245,21 @@ public class AddAuthnRequestTest extends OpenSAMLInitBaseTestCase {
/** Test that the action works with AttributeConsumingrServiceIndex set. */
@Test public void testAttributeIndex() {
- ((BrowserSSOProfileConfiguration) rpc.getProfileConfig()).setAttributeIndex(42);
+
+ BrowserSSOProfileConfiguration bspc = (BrowserSSOProfileConfiguration) rpc.getProfileConfig();
+ assert bspc!=null;
+ bspc.setAttributeIndex(42);
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- assertNotNull(prc2.getOutboundMessageContext().getMessage());
- assertTrue(prc2.getOutboundMessageContext().getMessage() instanceof AuthnRequest);
+ final MessageContext omc = prc2.getOutboundMessageContext();
+ assert omc!=null;
+ assertNotNull(omc.getMessage());
+ assertTrue(omc.getMessage() instanceof AuthnRequest);
- final AuthnRequest request = (AuthnRequest) prc2.getOutboundMessageContext().getMessage();
+ final AuthnRequest request = (AuthnRequest) omc.getMessage();
+ assert request!=null;
assertEquals(request.getAttributeConsumingServiceIndex(), 42);
}
@@ -245,15 +276,20 @@ public class AddAuthnRequestTest extends OpenSAMLInitBaseTestCase {
attr2.setNameFormat(Attribute.URI_REFERENCE);
attr2.setName("https://attr2.example.org");
- ((BrowserSSOProfileConfiguration) rpc.getProfileConfig()).setRequestedAttributes(CollectionSupport.listOf(attr1, attr2));
+ BrowserSSOProfileConfiguration bspc = (BrowserSSOProfileConfiguration) rpc.getProfileConfig();
+ assert bspc!=null;
+ bspc.setRequestedAttributes(CollectionSupport.listOf(attr1, attr2));
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- assertNotNull(prc2.getOutboundMessageContext().getMessage());
- assertTrue(prc2.getOutboundMessageContext().getMessage() instanceof AuthnRequest);
+ final MessageContext omc = prc2.getOutboundMessageContext();
+ assert omc!=null;
+ assertNotNull(omc.getMessage());
+ assertTrue(omc.getMessage() instanceof AuthnRequest);
- final AuthnRequest request = (AuthnRequest) prc2.getOutboundMessageContext().getMessage();
+ final AuthnRequest request = (AuthnRequest) omc.getMessage();
+ assert request!=null;
assertNotNull(request.getExtensions());
assertEquals(request.getExtensions().getUnknownXMLObjects(RequestedAttributes.DEFAULT_ELEMENT_NAME).size(), 1);
final RequestedAttributes extension =
@@ -269,10 +305,13 @@ public class AddAuthnRequestTest extends OpenSAMLInitBaseTestCase {
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- assertNotNull(prc2.getOutboundMessageContext().getMessage());
- assertTrue(prc2.getOutboundMessageContext().getMessage() instanceof AuthnRequest);
+ final MessageContext omc = prc2.getOutboundMessageContext();
+ assert omc!=null;
+ assertNotNull(omc.getMessage());
+ assertTrue(omc.getMessage() instanceof AuthnRequest);
- final AuthnRequest request = (AuthnRequest) prc2.getOutboundMessageContext().getMessage();
+ final AuthnRequest request = (AuthnRequest) omc.getMessage();
+ assert request!=null;
final Scoping scoping = request.getScoping();
assertNotNull(scoping);
assertNull(scoping.getProxyCount());
@@ -295,10 +334,13 @@ public class AddAuthnRequestTest extends OpenSAMLInitBaseTestCase {
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- assertNotNull(prc2.getOutboundMessageContext().getMessage());
- assertTrue(prc2.getOutboundMessageContext().getMessage() instanceof AuthnRequest);
+ final MessageContext omc = prc2.getOutboundMessageContext();
+ assert omc!=null;
+ assertNotNull(omc.getMessage());
+ assertTrue(omc.getMessage() instanceof AuthnRequest);
- final AuthnRequest request = (AuthnRequest) prc2.getOutboundMessageContext().getMessage();
+ final AuthnRequest request = (AuthnRequest) omc.getMessage();
+ assert request!=null;
final Scoping scoping = request.getScoping();
assertNotNull(scoping);
assertNull(scoping.getIDPList());
@@ -313,10 +355,13 @@ public class AddAuthnRequestTest extends OpenSAMLInitBaseTestCase {
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- assertNotNull(prc2.getOutboundMessageContext().getMessage());
- assertTrue(prc2.getOutboundMessageContext().getMessage() instanceof AuthnRequest);
+ final MessageContext omc = prc2.getOutboundMessageContext();
+ assert omc!=null;
+ assertNotNull(omc.getMessage());
+ assertTrue(omc.getMessage() instanceof AuthnRequest);
- final AuthnRequest request = (AuthnRequest) prc2.getOutboundMessageContext().getMessage();
+ final AuthnRequest request = (AuthnRequest) omc.getMessage();
+ assert request!=null;
final Scoping scoping = request.getScoping();
assertNotNull(scoping);
assertNull(scoping.getIDPList());
@@ -330,11 +375,13 @@ public class AddAuthnRequestTest extends OpenSAMLInitBaseTestCase {
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
-
- assertNotNull(prc2.getOutboundMessageContext().getMessage());
- assertTrue(prc2.getOutboundMessageContext().getMessage() instanceof AuthnRequest);
+ final MessageContext omc = prc2.getOutboundMessageContext();
+ assert omc!=null;
+ assertNotNull(omc.getMessage());
+ assertTrue(omc.getMessage() instanceof AuthnRequest);
- final AuthnRequest request = (AuthnRequest) prc2.getOutboundMessageContext().getMessage();
+ final AuthnRequest request = (AuthnRequest) omc.getMessage();
+ assert request!=null;
final Scoping scoping = request.getScoping();
assertNotNull(scoping);
assertNull(scoping.getIDPList());
@@ -344,7 +391,7 @@ public class AddAuthnRequestTest extends OpenSAMLInitBaseTestCase {
/** Test that the action works for RequestedAuthnContext. */
@Test public void testAuthnContext() {
- final RequestedPrincipalContext reqctx = ac.getSubcontext(RequestedPrincipalContext.class, true);
+ final RequestedPrincipalContext reqctx = ac.getOrCreateSubcontext(RequestedPrincipalContext.class);
reqctx.setOperator("exact");
reqctx.setRequestedPrincipals(
Arrays.asList(new AuthnContextClassRefPrincipal(AuthnContext.KERBEROS_AUTHN_CTX),
@@ -354,30 +401,34 @@ public class AddAuthnRequestTest extends OpenSAMLInitBaseTestCase {
Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- assertNotNull(prc2.getOutboundMessageContext().getMessage());
- assertTrue(prc2.getOutboundMessageContext().getMessage() instanceof AuthnRequest);
+ final MessageContext omc = prc2.getOutboundMessageContext();
+ assert omc!=null;
+ assertNotNull(omc.getMessage());
+ assertTrue(omc.getMessage() instanceof AuthnRequest);
- AuthnRequest request = (AuthnRequest) prc2.getOutboundMessageContext().getMessage();
+ AuthnRequest request = (AuthnRequest) omc.getMessage();
+ assert request!=null;
RequestedAuthnContext rac = request.getRequestedAuthnContext();
- assertNotNull(rac);
+ assert rac!=null;
assertEquals(rac.getComparison(), AuthnContextComparisonTypeEnumeration.EXACT);
assertEquals(rac.getAuthnContextClassRefs().size(), 2);
assertEquals(rac.getAuthnContextClassRefs().get(0).getURI(), AuthnContext.KERBEROS_AUTHN_CTX);
assertEquals(rac.getAuthnContextClassRefs().get(1).getURI(), AuthnContext.X509_AUTHN_CTX);
-
- ((BrowserSSOProfileConfiguration) rpc.getProfileConfig()).setAuthnContextComparison(
- AuthnContextComparisonTypeEnumeration.EXACT);
- ((BrowserSSOProfileConfiguration) rpc.getProfileConfig()).setDefaultAuthenticationMethods(
+ BrowserSSOProfileConfiguration bspc = (BrowserSSOProfileConfiguration) rpc.getProfileConfig();
+ assert bspc!=null;
+ bspc.setAuthnContextComparison(AuthnContextComparisonTypeEnumeration.EXACT);
+ bspc.setDefaultAuthenticationMethods(
Arrays.asList(new AuthnContextClassRefPrincipal(AuthnContext.KERBEROS_AUTHN_CTX),
new AuthnContextClassRefPrincipal(AuthnContext.X509_AUTHN_CTX)));
- prc2.getOutboundMessageContext().setMessage(null);
+ omc.setMessage(null);
event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- request = (AuthnRequest) prc2.getOutboundMessageContext().getMessage();
+ request = (AuthnRequest) omc.getMessage();
+ assert request!=null;
rac = request.getRequestedAuthnContext();
- assertNotNull(rac);
+ assert rac != null;
assertEquals(rac.getComparison(), AuthnContextComparisonTypeEnumeration.EXACT);
assertEquals(rac.getAuthnContextClassRefs().size(), 2);
assertEquals(rac.getAuthnContextClassRefs().get(0).getURI(), AuthnContext.KERBEROS_AUTHN_CTX);
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAuthnStatementToAssertionTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAuthnStatementToAssertionTest.java
index d3a1584c8..b63b61471 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAuthnStatementToAssertionTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/AddAuthnStatementToAssertionTest.java
@@ -24,6 +24,7 @@ import java.util.List;
import javax.security.auth.Subject;
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.saml.saml2.core.Assertion;
@@ -94,7 +95,7 @@ public class AddAuthnStatementToAssertionTest extends OpenSAMLInitBaseTestCase {
/** Test that the action errors out properly if there is no context. */
@Test public void testNoContext() {
prc.setOutboundMessageContext(null);
- prc.getSubcontext(AuthenticationContext.class, true).setAuthenticationResult(
+ prc.getOrCreateSubcontext(AuthenticationContext.class).setAuthenticationResult(
new AuthenticationResult("Test", new AuthnContextClassRefPrincipal("Test")));
final Event event = action.execute(rc);
@@ -132,19 +133,27 @@ public class AddAuthnStatementToAssertionTest extends OpenSAMLInitBaseTestCase {
fd.setResultSerializer(serializer);
fd.initialize();
- prc.getSubcontext(AuthenticationContext.class, true).getAvailableFlows().put("Test", fd);
- prc.getSubcontext(AuthenticationContext.class).setAuthenticationResult(
+ prc.getOrCreateSubcontext(AuthenticationContext.class).getAvailableFlows().put("Test", fd);
+ final AuthenticationContext ac = prc.getSubcontext(AuthenticationContext.class);
+ assert ac !=null;
+ ac.setAuthenticationResult(
new AuthenticationResult("Test", new AuthnContextClassRefPrincipal("Test")));
- ((MockHttpServletRequest) action.getHttpServletRequest()).setRemoteAddr("127.0.0.1");
+ final MockHttpServletRequest req = ((MockHttpServletRequest) action.getHttpServletRequest());
+ assert req!=null;
+ req.setRemoteAddr("127.0.0.1");
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
+
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
- Assert.assertNotNull(prc.getOutboundMessageContext().getMessage());
- Assert.assertTrue(prc.getOutboundMessageContext().getMessage() instanceof Response);
+ Assert.assertNotNull(omc.getMessage());
+ Assert.assertTrue(omc.getMessage() instanceof Response);
- final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+ final Response response = (Response) omc.getMessage();
+ assert response!=null;
Assert.assertEquals(response.getAssertions().size(), 1);
Assert.assertNotNull(response.getAssertions().get(0));
@@ -172,15 +181,21 @@ public class AddAuthnStatementToAssertionTest extends OpenSAMLInitBaseTestCase {
final BrowserSSOProfileConfiguration ssoConfig = new BrowserSSOProfileConfiguration();
ssoConfig.setMaximumSPSessionLifetime(Duration.ofHours(1));
ssoConfig.setSecurityConfiguration(new BasicXMLSecurityConfiguration());
- prc.getSubcontext(RelyingPartyContext.class).setProfileConfig(ssoConfig);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.setProfileConfig(ssoConfig);
- prc.getSubcontext(AuthenticationContext.class, true).setAuthenticationResult(
+ prc.getOrCreateSubcontext(AuthenticationContext.class).setAuthenticationResult(
new AuthenticationResult("Test", new AuthnContextClassRefPrincipal("Test")));
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+
+ final Response response = (Response) omc.getMessage();
+ assert response!=null;
final Assertion assertion = response.getAssertions().get(0);
final AuthnStatement authenticationStatement = assertion.getAuthnStatements().get(0);
Assert.assertNotNull(authenticationStatement.getSessionNotOnOrAfter());
@@ -191,19 +206,25 @@ public class AddAuthnStatementToAssertionTest extends OpenSAMLInitBaseTestCase {
final Subject subject = new Subject();
subject.getPrincipals().add(new AuthnContextClassRefPrincipal("Foo"));
subject.getPrincipals().add(new AuthnContextClassRefPrincipal("Bar"));
- prc.getSubcontext(AuthenticationContext.class, true).setAuthenticationResult(
+ prc.getOrCreateSubcontext(AuthenticationContext.class).setAuthenticationResult(
new AuthenticationResult("Test", subject));
final RequestedPrincipalContext requested = new RequestedPrincipalContext();
requested.setMatchingPrincipal(new AuthnContextClassRefPrincipal("Bar"));
- prc.getSubcontext(AuthenticationContext.class, false).addSubcontext(requested);
+ final AuthenticationContext ac = prc.getSubcontext(AuthenticationContext.class);
+ assert ac !=null;
+ ac.addSubcontext(requested);
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- Assert.assertNotNull(prc.getOutboundMessageContext().getMessage());
- Assert.assertTrue(prc.getOutboundMessageContext().getMessage() instanceof Response);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+
+ Assert.assertNotNull(omc.getMessage());
+ Assert.assertTrue(omc.getMessage() instanceof Response);
- final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+ final Response response = (Response) omc.getMessage();
+ assert response!=null;
Assert.assertEquals(response.getAssertions().size(), 1);
Assert.assertNotNull(response.getAssertions().get(0));
@@ -220,13 +241,16 @@ public class AddAuthnStatementToAssertionTest extends OpenSAMLInitBaseTestCase {
}
@Test public void testAuthenticatingAuthorities() {
- prc.getSubcontext(AuthenticationContext.class, true).setAuthenticationResult(
+ prc.getOrCreateSubcontext(AuthenticationContext.class).setAuthenticationResult(
new AuthenticationResult("Test", new ProxyAuthenticationPrincipal(List.of("foo", "bar", "baz"))));
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
+ final Response response = (Response) omc.getMessage();
+ assert response!=null;
final Assertion assertion = response.getAssertions().get(0);
final AuthnStatement authenticationStatement = assertion.getAuthnStatements().get(0);
final AuthnContext authnContext = authenticationStatement.getAuthnContext();
@@ -241,15 +265,20 @@ public class AddAuthnStatementToAssertionTest extends OpenSAMLInitBaseTestCase {
final BrowserSSOProfileConfiguration ssoConfig = new BrowserSSOProfileConfiguration();
ssoConfig.setSuppressAuthenticatingAuthority(true);
ssoConfig.setSecurityConfiguration(new BasicXMLSecurityConfiguration());
- prc.getSubcontext(RelyingPartyContext.class).setProfileConfig(ssoConfig);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.setProfileConfig(ssoConfig);
- prc.getSubcontext(AuthenticationContext.class, true).setAuthenticationResult(
+ prc.getOrCreateSubcontext(AuthenticationContext.class).setAuthenticationResult(
new AuthenticationResult("Test", new ProxyAuthenticationPrincipal(List.of("foo", "bar", "baz"))));
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
+ final MessageContext omc = prc.getOutboundMessageContext();
+ assert omc!=null;
- final Response response = (Response) prc.getOutboundMessageContext().getMessage();
+ final Response response = (Response) omc.getMessage();
+ assert response!=null;
final Assertion assertion = response.getAssertions().get(0);
final AuthnStatement authenticationStatement = assertion.getAuthnStatements().get(0);
final AuthnContext authnContext = authenticationStatement.getAuthnContext();
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/EnforceDisallowedSSOFeaturesTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/EnforceDisallowedSSOFeaturesTest.java
index f3a8522a4..4197cc08f 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/EnforceDisallowedSSOFeaturesTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/EnforceDisallowedSSOFeaturesTest.java
@@ -28,6 +28,7 @@ import net.shibboleth.shared.component.ComponentInitializationException;
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
+import org.opensaml.messaging.context.MessageContext;
import org.opensaml.saml.common.SAMLObjectBuilder;
import org.opensaml.saml.saml2.core.AuthnRequest;
import org.opensaml.saml.saml2.core.NameIDPolicy;
@@ -71,15 +72,21 @@ public class EnforceDisallowedSSOFeaturesTest extends OpenSAMLInitBaseTestCase {
}
@Test public void testGeneric() {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
}
@Test public void testForceAuthn() {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setForceAuthn(true);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
+ AuthnRequest ar = (AuthnRequest)imc.getMessage();
+ assert ar!=null;
+ ar.setForceAuthn(true);
Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
@@ -88,18 +95,24 @@ public class EnforceDisallowedSSOFeaturesTest extends OpenSAMLInitBaseTestCase {
event = action.execute(src);
ActionTestingSupport.assertEvent(event, EventIds.ACCESS_DENIED);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setForceAuthn(false);
+ ar = (AuthnRequest)imc.getMessage();
+ assert ar!=null;
+ ar.setForceAuthn(false);
event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
}
@Test public void testFormat() {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
final NameIDPolicy policy = nidBuilder.buildObject();
policy.setFormat(NameIDType.EMAIL);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setNameIDPolicy(policy);
+ final AuthnRequest ar = (AuthnRequest)imc.getMessage();
+ assert ar!=null;
+ ar.setNameIDPolicy(policy);
Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
@@ -122,12 +135,16 @@ public class EnforceDisallowedSSOFeaturesTest extends OpenSAMLInitBaseTestCase {
}
@Test public void testSPNameQualifier() {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
final NameIDPolicy policy = nidBuilder.buildObject();
policy.setSPNameQualifier(ActionTestingSupport.OUTBOUND_MSG_ISSUER);
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setNameIDPolicy(policy);
+ final AuthnRequest ar = (AuthnRequest)imc.getMessage();
+ assert ar!=null;
+ ar.setNameIDPolicy(policy);
Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/FilterByQueriedAttributesTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/FilterByQueriedAttributesTest.java
index 7f5e921c8..65c32dc8b 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/FilterByQueriedAttributesTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/FilterByQueriedAttributesTest.java
@@ -116,8 +116,8 @@ public class FilterByQueriedAttributesTest extends XMLObjectBaseTestCase {
}
@Test public void noValues() {
- final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class,true);
- final AttributeContext ac = rpc.getSubcontext(AttributeContext.class,true);
+ final RelyingPartyContext rpc = prc.getOrCreateSubcontext(RelyingPartyContext.class);
+ final AttributeContext ac = rpc.getOrCreateSubcontext(AttributeContext.class);
final List<IdPAttribute> attributes = List.of(
new IdPAttribute("eduPersonAssurance"),
new IdPAttribute("flooby"),
@@ -130,8 +130,8 @@ public class FilterByQueriedAttributesTest extends XMLObjectBaseTestCase {
}
@Test public void values() {
- final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class,true);
- final AttributeContext ac = rpc.getSubcontext(AttributeContext.class,true);
+ final RelyingPartyContext rpc = prc.getOrCreateSubcontext(RelyingPartyContext.class);
+ final AttributeContext ac = rpc.getOrCreateSubcontext(AttributeContext.class);
final IdPAttribute eduPersonAssurance = new IdPAttribute("eduPersonAssurance");
eduPersonAssurance.setValues(List.of(new StringAttributeValue("green-blue"))); // not turquoise
final IdPAttribute flooby = new IdPAttribute("flooby");
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/IdPInitiatedSSORequestMessageDecoderTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/IdPInitiatedSSORequestMessageDecoderTest.java
index 00c14dbae..25b0c09f4 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/IdPInitiatedSSORequestMessageDecoderTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/IdPInitiatedSSORequestMessageDecoderTest.java
@@ -82,9 +82,9 @@ public class IdPInitiatedSSORequestMessageDecoderTest extends XMLObjectBaseTestC
decoder.decode();
final MessageContext messageContext = decoder.getMessageContext();
- Assert.assertNotNull(messageContext);
+ assert messageContext!=null;
AuthnRequest authnRequest = (AuthnRequest) messageContext.getMessage();
- Assert.assertNotNull(authnRequest);
+ assert authnRequest!=null;
Assert.assertEquals(authnRequest.getIssuer().getValue(), entityId, "Incorrect decoded message entityId value");
Assert.assertEquals(authnRequest.getAssertionConsumerServiceURL(), acsUrl, "Incorrect decoded message ACS URL value");
@@ -92,16 +92,16 @@ public class IdPInitiatedSSORequestMessageDecoderTest extends XMLObjectBaseTestC
"Incorrect decoded message issue instant value");
Assert.assertEquals(authnRequest.getID(), messageID, "Incorrect decoded message ID value");
- Assert.assertEquals(messageContext.getSubcontext(SAMLPeerEntityContext.class, true).getEntityId(), entityId,
+ Assert.assertEquals(messageContext.getOrCreateSubcontext(SAMLPeerEntityContext.class).getEntityId(), entityId,
"Incorrect decoded entityId value in peer context");
- SAMLBindingContext bindingContext = messageContext.getSubcontext(SAMLBindingContext.class, true);
+ SAMLBindingContext bindingContext = messageContext.getOrCreateSubcontext(SAMLBindingContext.class);
Assert.assertEquals(bindingContext.getRelayState(), relayState,
"Incorrect decoded relay state value in binding context");
Assert.assertEquals(bindingContext.getBindingUri(), "urn:mace:shibboleth:2.0:profiles:AuthnRequest",
"Incorrect binding URI in binding context");
- SAMLMessageInfoContext msgInfoContext = messageContext.getSubcontext(SAMLMessageInfoContext.class, true);
+ SAMLMessageInfoContext msgInfoContext = messageContext.getOrCreateSubcontext(SAMLMessageInfoContext.class);
Assert.assertEquals(msgInfoContext.getMessageIssueInstant(), time.truncatedTo(ChronoUnit.SECONDS),
"Incorrect decoded issue instant value in message info context");
Assert.assertEquals(msgInfoContext.getMessageId(), messageID,
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/PopulateEncryptionParametersTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/PopulateEncryptionParametersTest.java
index c0dcb0b99..25568e072 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/PopulateEncryptionParametersTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/PopulateEncryptionParametersTest.java
@@ -19,12 +19,17 @@ package net.shibboleth.idp.saml.saml2.profile.impl;
import java.util.Collections;
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
import net.shibboleth.idp.profile.IdPEventIds;
import net.shibboleth.idp.profile.context.navigate.WebflowRequestContextProfileRequestContextLookup;
import net.shibboleth.idp.profile.testing.ActionTestingSupport;
import net.shibboleth.idp.profile.testing.RequestContextBuilder;
import net.shibboleth.idp.saml.saml2.profile.config.impl.BrowserSSOProfileConfiguration;
+import net.shibboleth.profile.config.ProfileConfiguration;
import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.shared.collection.CollectionSupport;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.logic.Constraint;
@@ -81,7 +86,9 @@ public class PopulateEncryptionParametersTest extends OpenSAMLInitBaseTestCase {
action.setEncryptionParametersResolver(new MockResolver(false));
action.initialize();
- prc.getSubcontext(RelyingPartyContext.class).setProfileConfig(null);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.setProfileConfig(null);
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
@@ -91,7 +98,9 @@ public class PopulateEncryptionParametersTest extends OpenSAMLInitBaseTestCase {
action.setEncryptionParametersResolver(new MockResolver(false));
action.initialize();
- prc.getSubcontext(RelyingPartyContext.class).setProfileConfig(
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ rpCtx.setProfileConfig(
new net.shibboleth.idp.saml.saml1.profile.config.impl.BrowserSSOProfileConfiguration());
final Event event = action.execute(rc);
@@ -112,9 +121,10 @@ public class PopulateEncryptionParametersTest extends OpenSAMLInitBaseTestCase {
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
-
- final EncryptionContext ctx = prc.getSubcontext(RelyingPartyContext.class).getSubcontext(EncryptionContext.class);
- Assert.assertNotNull(ctx);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ final EncryptionContext ctx = rpCtx.getSubcontext(EncryptionContext.class);
+ assert ctx!=null;
Assert.assertNotNull(ctx.getAssertionEncryptionParameters());
Assert.assertNull(ctx.getIdentifierEncryptionParameters());
Assert.assertNull(ctx.getAttributeEncryptionParameters());
@@ -124,14 +134,17 @@ public class PopulateEncryptionParametersTest extends OpenSAMLInitBaseTestCase {
action.setEncryptionParametersResolver(new MockResolver(true));
action.initialize();
- ((BrowserSSOProfileConfiguration) prc.getSubcontext(
- RelyingPartyContext.class).getProfileConfig()).setEncryptionOptional(true);
+ final RelyingPartyContext rpCtx = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpCtx!=null;
+ final BrowserSSOProfileConfiguration rpConf = (BrowserSSOProfileConfiguration) rpCtx.getProfileConfig();
+ assert rpConf!=null;
+ rpConf.setEncryptionOptional(true);
final Event event = action.execute(rc);
ActionTestingSupport.assertProceedEvent(event);
- final EncryptionContext ctx = prc.getSubcontext(RelyingPartyContext.class).getSubcontext(EncryptionContext.class);
- Assert.assertNotNull(ctx);
+ final EncryptionContext ctx = rpCtx.getSubcontext(EncryptionContext.class);
+ assert ctx!=null;
Assert.assertNull(ctx.getAssertionEncryptionParameters());
Assert.assertNull(ctx.getIdentifierEncryptionParameters());
Assert.assertNull(ctx.getAttributeEncryptionParameters());
@@ -147,17 +160,17 @@ public class PopulateEncryptionParametersTest extends OpenSAMLInitBaseTestCase {
/** {@inheritDoc} */
@Override
- public Iterable<EncryptionParameters> resolve(CriteriaSet criteria) throws ResolverException {
- return Collections.singletonList(resolveSingle(criteria));
+ public @Nonnull Iterable<EncryptionParameters> resolve(@Nullable CriteriaSet criteria) throws ResolverException {
+ return CollectionSupport.singletonList(resolveSingle(criteria));
}
/** {@inheritDoc} */
@Override
- public EncryptionParameters resolveSingle(CriteriaSet criteria) throws ResolverException {
+ public EncryptionParameters resolveSingle(@Nullable CriteriaSet criteria) throws ResolverException {
if (throwException) {
throw new ResolverException();
}
-
+ assert criteria!=null;
Constraint.isNotNull(criteria.get(EncryptionConfigurationCriterion.class), "Criterion was null");
return new EncryptionParameters();
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/PreProcessLogoutMessageTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/PreProcessLogoutMessageTest.java
index c0371c750..a0819b652 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/PreProcessLogoutMessageTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/PreProcessLogoutMessageTest.java
@@ -24,10 +24,12 @@ import net.shibboleth.shared.component.ComponentInitializationException;
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
+import org.opensaml.messaging.context.MessageContext;
import org.opensaml.profile.action.EventIds;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.saml.common.SAMLObjectBuilder;
import org.opensaml.saml.ext.saml2aslo.Asynchronous;
+import org.opensaml.saml.saml2.core.AuthnRequest;
import org.opensaml.saml.saml2.core.Extensions;
import org.opensaml.saml.saml2.core.LogoutRequest;
import org.springframework.webflow.execution.Event;
@@ -60,19 +62,25 @@ public class PreProcessLogoutMessageTest extends OpenSAMLInitBaseTestCase {
@Test public void testLogoutResponse() {
//final NameID nameId = SAML2ActionTestingSupport.buildNameID("jdoe");
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildLogoutResponse());
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildLogoutResponse());
final Event event = action.execute(src);
ActionTestingSupport.assertEvent(event, PreProcessLogoutMessage.IS_LOGOUT_RESPONSE);
}
@Test public void testLogoutRequest() {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildLogoutRequest(null));
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildLogoutRequest(null));
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
}
@Test public void testAssumeAsyncLogoutRequest() throws ComponentInitializationException {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildLogoutRequest(null));
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildLogoutRequest(null));
action = new PreProcessLogoutMessage();
action.setAssumeAsynchronousLogout(true);
@@ -83,7 +91,9 @@ public class PreProcessLogoutMessageTest extends OpenSAMLInitBaseTestCase {
}
@Test public void testAsyncLogoutRequest() {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildLogoutRequest(null));
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildLogoutRequest(null));
final SAMLObjectBuilder<Extensions> extsBuilder = (SAMLObjectBuilder<Extensions>)
XMLObjectProviderRegistrySupport.getBuilderFactory().<Extensions>getBuilderOrThrow(
@@ -91,9 +101,10 @@ public class PreProcessLogoutMessageTest extends OpenSAMLInitBaseTestCase {
final SAMLObjectBuilder<Asynchronous> asyncBuilder = (SAMLObjectBuilder<Asynchronous>)
XMLObjectProviderRegistrySupport.getBuilderFactory().<Asynchronous>getBuilderOrThrow(
Asynchronous.DEFAULT_ELEMENT_NAME);
-
- ((LogoutRequest) prc.getInboundMessageContext().getMessage()).setExtensions(extsBuilder.buildObject());
- ((LogoutRequest) prc.getInboundMessageContext().getMessage()).getExtensions().getUnknownXMLObjects().add(
+ final LogoutRequest lr = (LogoutRequest)imc.getMessage();
+ assert lr!=null;
+ lr.setExtensions(extsBuilder.buildObject());
+ lr.getExtensions().getUnknownXMLObjects().add(
asyncBuilder.buildObject());
final Event event = action.execute(src);
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessAssertionsForAuthenticationTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessAssertionsForAuthenticationTest.java
index 20f0f0112..9d2ccb1fc 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessAssertionsForAuthenticationTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessAssertionsForAuthenticationTest.java
@@ -25,6 +25,7 @@ import java.util.function.Function;
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
import org.opensaml.core.xml.util.XMLObjectSupport;
+import org.opensaml.messaging.context.MessageContext;
import org.opensaml.messaging.decoder.MessageDecoder;
import org.opensaml.profile.action.ProfileAction;
import org.opensaml.profile.context.ProfileRequestContext;
@@ -35,6 +36,7 @@ import org.opensaml.saml.common.assertion.ValidationProcessingData;
import org.opensaml.saml.common.assertion.ValidationResult;
import org.opensaml.saml.saml2.assertion.SAML2AssertionValidationParameters;
import org.opensaml.saml.saml2.core.Assertion;
+import org.opensaml.saml.saml2.core.AuthnStatement;
import org.opensaml.saml.saml2.core.Response;
import org.opensaml.saml.saml2.core.Subject;
import org.opensaml.saml.saml2.core.SubjectConfirmation;
@@ -50,6 +52,7 @@ import com.google.common.base.Predicates;
import net.shibboleth.idp.authn.AuthnEventIds;
import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.shared.component.ComponentInitializationException;
+import net.shibboleth.shared.logic.PredicateSupport;
import net.shibboleth.shared.testing.ConstantSupplier;
/**
@@ -69,6 +72,8 @@ public class ProcessAssertionsForAuthenticationTest extends OpenSAMLInitBaseTest
private MockHttpServletRequest httpRequest;
private MockHttpServletResponse httpResponse;
+ private Object nullObj;
+
@BeforeMethod
public void beforeMethod() {
httpRequest = new MockHttpServletRequest();
@@ -85,7 +90,7 @@ public class ProcessAssertionsForAuthenticationTest extends OpenSAMLInitBaseTest
prc = new RequestContextBuilder().buildProfileRequestContext();
- final AuthenticationContext authnContext = prc.getSubcontext(AuthenticationContext.class, true);
+ final AuthenticationContext authnContext = prc.getOrCreateSubcontext(AuthenticationContext.class);
samlAuthnContext = new SAMLAuthnContext(new MockProfileAction(), new MockMessageDecoderFunction());
authnContext.addSubcontext(samlAuthnContext);
authnContext.addSubcontext(prcInner);
@@ -256,7 +261,9 @@ public class ProcessAssertionsForAuthenticationTest extends OpenSAMLInitBaseTest
@Test
public void testNoResponse() throws ComponentInitializationException {
- prcInner.getInboundMessageContext().setMessage(null);
+ final MessageContext imc = prcInner.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(null);
action.initialize();
@@ -283,7 +290,9 @@ public class ProcessAssertionsForAuthenticationTest extends OpenSAMLInitBaseTest
final Assertion assertion1 = buildAssertion(ValidationResult.VALID);
samlResponse.getAssertions().add(assertion1);
- prc.getSubcontext(AuthenticationContext.class).removeSubcontext(SAMLAuthnContext.class);
+ AuthenticationContext ac = prc.getSubcontext(AuthenticationContext.class);
+ assert ac!=null;
+ ac.removeSubcontext(SAMLAuthnContext.class);
action.initialize();
@@ -344,7 +353,7 @@ public class ProcessAssertionsForAuthenticationTest extends OpenSAMLInitBaseTest
final Assertion assertion1 = buildAssertion(ValidationResult.VALID);
samlResponse.getAssertions().add(assertion1);
- action.setActivationCondition(Predicates.alwaysFalse());
+ action.setActivationCondition(PredicateSupport.alwaysFalse());
action.initialize();
@@ -360,7 +369,7 @@ public class ProcessAssertionsForAuthenticationTest extends OpenSAMLInitBaseTest
final Assertion assertion1 = buildAssertion(ValidationResult.VALID);
samlResponse.getAssertions().add(assertion1);
- action.setAuthnAssertionSelectionStrategy(null);
+ action.setAuthnAssertionSelectionStrategy((Function<List<Assertion>, Assertion>) nullObj);
action.initialize();
}
@@ -370,7 +379,7 @@ public class ProcessAssertionsForAuthenticationTest extends OpenSAMLInitBaseTest
final Assertion assertion1 = buildAssertion(ValidationResult.VALID);
samlResponse.getAssertions().add(assertion1);
- action.setAuthnStatementSelectionStrategy(null);
+ action.setAuthnStatementSelectionStrategy((Function<Assertion, AuthnStatement>) nullObj);
action.initialize();
}
@@ -380,7 +389,7 @@ public class ProcessAssertionsForAuthenticationTest extends OpenSAMLInitBaseTest
final Assertion assertion1 = buildAssertion(ValidationResult.VALID);
samlResponse.getAssertions().add(assertion1);
- action.setResponseResolver(null);
+ action.setResponseResolver((Function<ProfileRequestContext, Response>) nullObj);
action.initialize();
}
@@ -390,7 +399,7 @@ public class ProcessAssertionsForAuthenticationTest extends OpenSAMLInitBaseTest
final Assertion assertion1 = buildAssertion(ValidationResult.VALID);
samlResponse.getAssertions().add(assertion1);
- action.setSAMLAuthnContextLookupStrategy(null);
+ action.setSAMLAuthnContextLookupStrategy((Function<ProfileRequestContext, SAMLAuthnContext>) nullObj);
action.initialize();
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessLogoutRequestTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessLogoutRequestTest.java
index 80f72c075..836d6979f 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessLogoutRequestTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessLogoutRequestTest.java
@@ -24,6 +24,8 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
+import javax.annotation.Nonnull;
+
import jakarta.servlet.http.Cookie;
import net.shibboleth.idp.authn.context.SubjectContext;
@@ -49,6 +51,7 @@ import net.shibboleth.shared.resolver.ResolverException;
import net.shibboleth.shared.servlet.impl.HttpServletRequestResponseContext;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
+import org.opensaml.messaging.context.MessageContext;
import org.opensaml.profile.action.EventIds;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.saml.common.SAMLObjectBuilder;
@@ -78,6 +81,12 @@ public class ProcessLogoutRequestTest extends SessionManagerBaseTestCase {
private ProcessLogoutRequest action;
+ @Nonnull private MockHttpServletRequest getMockHttpServletRequest() {
+ final MockHttpServletRequest result = (MockHttpServletRequest) HttpServletRequestResponseContext.getRequest();
+ assert result != null;
+ return result;
+ }
+
@BeforeMethod public void setUpAction() throws ComponentInitializationException {
sessionIndexBuilder = (SAMLObjectBuilder<SessionIndex>)
XMLObjectProviderRegistrySupport.getBuilderFactory().<SessionIndex>getBuilderOrThrow(
@@ -117,7 +126,9 @@ public class ProcessLogoutRequestTest extends SessionManagerBaseTestCase {
}
@Test public void testNoNameID() {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildLogoutRequest(null));
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildLogoutRequest(null));
HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), new MockHttpServletResponse());
final Event event = action.execute(src);
ActionTestingSupport.assertEvent(event, EventIds.INVALID_MESSAGE);
@@ -128,7 +139,9 @@ public class ProcessLogoutRequestTest extends SessionManagerBaseTestCase {
@Test public void testNoSession() {
final NameID nameId = SAML2ActionTestingSupport.buildNameID("jdoe");
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), new MockHttpServletResponse());
final Event event = action.execute(src);
ActionTestingSupport.assertEvent(event, SAMLEventIds.SESSION_NOT_FOUND);
@@ -141,10 +154,12 @@ public class ProcessLogoutRequestTest extends SessionManagerBaseTestCase {
final Cookie cookie = createSession("joe");
final NameID nameId = SAML2ActionTestingSupport.buildNameID("joe");
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), new MockHttpServletResponse());
- ((MockHttpServletRequest) HttpServletRequestResponseContext.getRequest()).setCookies(cookie);
+ getMockHttpServletRequest().setCookies(cookie);
final Event event = action.execute(src);
ActionTestingSupport.assertEvent(event, SAMLEventIds.SESSION_NOT_FOUND);
@@ -159,16 +174,18 @@ public class ProcessLogoutRequestTest extends SessionManagerBaseTestCase {
final NameID nameId = SAML2ActionTestingSupport.buildNameID("joe");
nameId.setSPNameQualifier("affiliation");
final NameID nameIdForSession = SAML2ActionTestingSupport.buildNameID("joe");
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), new MockHttpServletResponse());
- ((MockHttpServletRequest) HttpServletRequestResponseContext.getRequest()).setCookies(cookie);
+ getMockHttpServletRequest().setCookies(cookie);
final Instant creation = Instant.now();
final Instant expiration = creation.plusSeconds(3600);
final IdPSession session = sessionManager.resolveSingle(new CriteriaSet(new HttpServletRequestCriterion()));
- Assert.assertNotNull(session);
+ assert session!=null;
session.addSPSession(new SAML2SPSession(ActionTestingSupport.INBOUND_MSG_ISSUER, creation, expiration,
nameIdForSession, "index", "foo", false));
@@ -178,7 +195,9 @@ public class ProcessLogoutRequestTest extends SessionManagerBaseTestCase {
Assert.assertNull(prc.getSubcontext(SubjectContext.class));
Assert.assertNull(prc.getSubcontext(LogoutContext.class));
- sessionManager.destroySession(session.getId(), false);
+ final String id = session.getId();
+ assert id!=null;
+ sessionManager.destroySession(id, false);
}
@Test public void testDefaultedRequestQualifiers() throws SessionException, ResolverException {
@@ -187,16 +206,18 @@ public class ProcessLogoutRequestTest extends SessionManagerBaseTestCase {
final NameID nameId = SAML2ActionTestingSupport.buildNameID("joe");
nameId.setNameQualifier(ActionTestingSupport.OUTBOUND_MSG_ISSUER);
nameId.setSPNameQualifier(ActionTestingSupport.INBOUND_MSG_ISSUER);
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), new MockHttpServletResponse());
- ((MockHttpServletRequest) HttpServletRequestResponseContext.getRequest()).setCookies(cookie);
+ getMockHttpServletRequest().setCookies(cookie);
final Instant creation = Instant.now();
final Instant expiration = creation.plusSeconds(3600);
final IdPSession session = sessionManager.resolveSingle(new CriteriaSet(new HttpServletRequestCriterion()));
- Assert.assertNotNull(session);
+ assert session!=null;
final NameID nameIdForSession = SAML2ActionTestingSupport.buildNameID("joe");
session.addSPSession(new SAML2SPSession(ActionTestingSupport.INBOUND_MSG_ISSUER, creation, expiration,
nameIdForSession, "index", "foo", false));
@@ -204,36 +225,42 @@ public class ProcessLogoutRequestTest extends SessionManagerBaseTestCase {
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
final SubjectContext subjectCtx = prc.getSubcontext(SubjectContext.class);
- Assert.assertNotNull(subjectCtx);
+ assert subjectCtx!=null;
Assert.assertEquals(subjectCtx.getPrincipalName(), "joe");
final SessionContext sessionCtx = prc.getSubcontext(SessionContext.class);
- Assert.assertNotNull(sessionCtx);
- Assert.assertEquals(session.getId(), sessionCtx.getIdPSession().getId());
+ assert sessionCtx!=null;
+ final IdPSession idpSession=sessionCtx.getIdPSession();
+ assert idpSession!=null;
+ Assert.assertEquals(session.getId(), idpSession.getId());
final LogoutContext logoutCtx = prc.getSubcontext(LogoutContext.class);
- Assert.assertNotNull(logoutCtx);
+ assert logoutCtx!=null;
Assert.assertEquals(logoutCtx.getIdPSessions().size(), 1);
Assert.assertSame(logoutCtx.getIdPSessions().iterator().next(), sessionCtx.getIdPSession());
Assert.assertEquals(logoutCtx.getSessionMap().size(), 0);
- sessionManager.destroySession(session.getId(), false);
+ final String id = session.getId();
+ assert id!=null;
+ sessionManager.destroySession(id, false);
}
@Test public void testDefaultedSessionQualifiers() throws SessionException, ResolverException {
final Cookie cookie = createSession("joe");
final NameID nameId = SAML2ActionTestingSupport.buildNameID("joe");
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), new MockHttpServletResponse());
- ((MockHttpServletRequest) HttpServletRequestResponseContext.getRequest()).setCookies(cookie);
+ getMockHttpServletRequest().setCookies(cookie);
final Instant creation = Instant.now();
final Instant expiration = creation.plusSeconds(3600);
final IdPSession session = sessionManager.resolveSingle(new CriteriaSet(new HttpServletRequestCriterion()));
- Assert.assertNotNull(session);
+ assert session!=null;
final NameID nameIdForSession = SAML2ActionTestingSupport.buildNameID("joe");
nameIdForSession.setNameQualifier(ActionTestingSupport.OUTBOUND_MSG_ISSUER);
nameIdForSession.setSPNameQualifier(ActionTestingSupport.INBOUND_MSG_ISSUER);
@@ -243,56 +270,66 @@ public class ProcessLogoutRequestTest extends SessionManagerBaseTestCase {
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
final SubjectContext subjectCtx = prc.getSubcontext(SubjectContext.class);
- Assert.assertNotNull(subjectCtx);
+ assert subjectCtx!=null;
Assert.assertEquals(subjectCtx.getPrincipalName(), "joe");
final SessionContext sessionCtx = prc.getSubcontext(SessionContext.class);
- Assert.assertNotNull(sessionCtx);
- Assert.assertEquals(session.getId(), sessionCtx.getIdPSession().getId());
+ assert sessionCtx!=null;
+ final IdPSession idpSession=sessionCtx.getIdPSession();
+ assert idpSession!=null;
+ Assert.assertEquals(session.getId(), idpSession.getId());
final LogoutContext logoutCtx = prc.getSubcontext(LogoutContext.class);
- Assert.assertNotNull(logoutCtx);
+ assert logoutCtx!=null;
Assert.assertEquals(logoutCtx.getIdPSessions().size(), 1);
Assert.assertSame(logoutCtx.getIdPSessions().iterator().next(), sessionCtx.getIdPSession());
Assert.assertEquals(logoutCtx.getSessionMap().size(), 0);
- sessionManager.destroySession(session.getId(), false);
+ final String id = session.getId();
+ assert id!=null;
+ sessionManager.destroySession(id, false);
}
@Test public void testSessionOneSPSession() throws SessionException, ResolverException {
final Cookie cookie = createSession("joe");
final NameID nameId = SAML2ActionTestingSupport.buildNameID("joe");
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), new MockHttpServletResponse());
- ((MockHttpServletRequest) HttpServletRequestResponseContext.getRequest()).setCookies(cookie);
+ getMockHttpServletRequest().setCookies(cookie);
final Instant creation = Instant.now();
final Instant expiration = creation.plusSeconds(3600);
final IdPSession session = sessionManager.resolveSingle(new CriteriaSet(new HttpServletRequestCriterion()));
- Assert.assertNotNull(session);
+ assert session!=null;;
session.addSPSession(new SAML2SPSession(ActionTestingSupport.INBOUND_MSG_ISSUER, creation, expiration,
nameId, "index", "foo", false));
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
final SubjectContext subjectCtx = prc.getSubcontext(SubjectContext.class);
- Assert.assertNotNull(subjectCtx);
+ assert subjectCtx!=null;
Assert.assertEquals(subjectCtx.getPrincipalName(), "joe");
final SessionContext sessionCtx = prc.getSubcontext(SessionContext.class);
- Assert.assertNotNull(sessionCtx);
- Assert.assertEquals(session.getId(), sessionCtx.getIdPSession().getId());
+ assert sessionCtx!=null;
+ final IdPSession idpSession=sessionCtx.getIdPSession();
+ assert idpSession!=null;
+ Assert.assertEquals(session.getId(), idpSession.getId());
final LogoutContext logoutCtx = prc.getSubcontext(LogoutContext.class);
- Assert.assertNotNull(logoutCtx);
+ assert logoutCtx!=null;
Assert.assertEquals(logoutCtx.getIdPSessions().size(), 1);
Assert.assertSame(logoutCtx.getIdPSessions().iterator().next(), sessionCtx.getIdPSession());
Assert.assertEquals(logoutCtx.getSessionMap().size(), 0);
- sessionManager.destroySession(session.getId(), false);
+ final String id = session.getId();
+ assert id!=null;
+ sessionManager.destroySession(id, false);
}
@Test public void testSessionTwoSPSessions() throws SessionException, ResolverException {
@@ -300,16 +337,18 @@ public class ProcessLogoutRequestTest extends SessionManagerBaseTestCase {
final NameID nameId = SAML2ActionTestingSupport.buildNameID("joe");
final NameID nameId2 = SAML2ActionTestingSupport.buildNameID("joe2");
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), new MockHttpServletResponse());
- ((MockHttpServletRequest) HttpServletRequestResponseContext.getRequest()).setCookies(cookie);
+ getMockHttpServletRequest().setCookies(cookie);
final Instant creation = Instant.now();
final Instant expiration = creation.plusSeconds(3600);
final IdPSession session = sessionManager.resolveSingle(new CriteriaSet(new HttpServletRequestCriterion()));
- Assert.assertNotNull(session);
+ assert session!=null;
session.addSPSession(new SAML2SPSession(ActionTestingSupport.INBOUND_MSG_ISSUER, creation, expiration,
nameId, "index", "foo", false));
session.addSPSession(new SAML2SPSession(ActionTestingSupport.INBOUND_MSG_ISSUER + "/2", creation, expiration,
@@ -318,15 +357,16 @@ public class ProcessLogoutRequestTest extends SessionManagerBaseTestCase {
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
final SubjectContext subjectCtx = prc.getSubcontext(SubjectContext.class);
- Assert.assertNotNull(subjectCtx);
+ assert subjectCtx!=null;
Assert.assertEquals(subjectCtx.getPrincipalName(), "joe");
final SessionContext sessionCtx = prc.getSubcontext(SessionContext.class);
- Assert.assertNotNull(sessionCtx);
- Assert.assertEquals(session.getId(), sessionCtx.getIdPSession().getId());
+ assert sessionCtx!=null;
+ final IdPSession idpSession=sessionCtx.getIdPSession();
+ assert idpSession!=null;
+ Assert.assertEquals(session.getId(), idpSession.getId());
- final LogoutContext logoutCtx = prc.getSubcontext(LogoutContext.class, true);
- Assert.assertNotNull(logoutCtx);
+ final LogoutContext logoutCtx = prc.getOrCreateSubcontext(LogoutContext.class);
Assert.assertEquals(logoutCtx.getIdPSessions().size(), 1);
Assert.assertSame(logoutCtx.getIdPSessions().iterator().next(), sessionCtx.getIdPSession());
Assert.assertEquals(logoutCtx.getSessionMap().size(), 1);
@@ -338,7 +378,9 @@ public class ProcessLogoutRequestTest extends SessionManagerBaseTestCase {
Assert.assertTrue(SAML2ObjectSupport.areNameIDsEquivalent(nameId2, sp.getNameID()));
Assert.assertEquals(sp.getSessionIndex(), "index2");
- sessionManager.destroySession(session.getId(), false);
+ final String id = session.getId();
+ assert id!=null;
+ sessionManager.destroySession(id, false);
}
@Test public void testTwoSPSessionsWrongRequester() throws SessionException, ResolverException {
@@ -346,16 +388,18 @@ public class ProcessLogoutRequestTest extends SessionManagerBaseTestCase {
final NameID nameId = SAML2ActionTestingSupport.buildNameID("joe");
final NameID nameId2 = SAML2ActionTestingSupport.buildNameID("joe2");
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId2));
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId2));
HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), new MockHttpServletResponse());
- ((MockHttpServletRequest) HttpServletRequestResponseContext.getRequest()).setCookies(cookie);
+ getMockHttpServletRequest().setCookies(cookie);
final Instant creation = Instant.now();
final Instant expiration = creation.plusSeconds(3600);
final IdPSession session = sessionManager.resolveSingle(new CriteriaSet(new HttpServletRequestCriterion()));
- Assert.assertNotNull(session);
+ assert session!=null;
session.addSPSession(new SAML2SPSession(ActionTestingSupport.INBOUND_MSG_ISSUER, creation, expiration,
nameId, "index", "foo", false));
session.addSPSession(new SAML2SPSession(ActionTestingSupport.INBOUND_MSG_ISSUER + "/2", creation, expiration,
@@ -367,7 +411,9 @@ public class ProcessLogoutRequestTest extends SessionManagerBaseTestCase {
Assert.assertNull(prc.getSubcontext(SubjectContext.class));
Assert.assertNull(prc.getSubcontext(LogoutContext.class));
- sessionManager.destroySession(session.getId(), false);
+ final String id = session.getId();
+ assert id!=null;
+ sessionManager.destroySession(id, false);
}
@Test public void testTwoSessionsOneMatch() throws SessionException, ResolverException {
@@ -377,46 +423,57 @@ public class ProcessLogoutRequestTest extends SessionManagerBaseTestCase {
final NameID nameId = SAML2ActionTestingSupport.buildNameID("joe");
final SessionIndex sessionIndex = sessionIndexBuilder.buildObject();
sessionIndex.setValue("index");
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
- ((LogoutRequest) prc.getInboundMessageContext().getMessage()).getSessionIndexes().add(sessionIndex);
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
+ final LogoutRequest lr = (LogoutRequest) imc.getMessage();
+ assert lr!= null;
+ lr.getSessionIndexes().add(sessionIndex);
final Instant creation = Instant.now();
final Instant expiration = creation.plusSeconds(3600);
HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), new MockHttpServletResponse());
- ((MockHttpServletRequest) HttpServletRequestResponseContext.getRequest()).setCookies(cookie);
+ getMockHttpServletRequest().setCookies(cookie);
final IdPSession session = sessionManager.resolveSingle(new CriteriaSet(new HttpServletRequestCriterion()));
- Assert.assertNotNull(session);
+ assert session!=null;
session.addSPSession(new SAML2SPSession(ActionTestingSupport.INBOUND_MSG_ISSUER, creation, expiration,
nameId, "index", "foo", false));
- ((MockHttpServletRequest) HttpServletRequestResponseContext.getRequest()).setCookies(cookie2);
+ getMockHttpServletRequest().setCookies(cookie2);
final IdPSession session2 = sessionManager.resolveSingle(new CriteriaSet(new HttpServletRequestCriterion()));
- Assert.assertNotNull(session2);
+ assert session2!=null;
session2.addSPSession(new SAML2SPSession(ActionTestingSupport.INBOUND_MSG_ISSUER, creation, expiration,
nameId, "index2", "foo", false));
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
final SubjectContext subjectCtx = prc.getSubcontext(SubjectContext.class);
- Assert.assertNotNull(subjectCtx);
+ assert subjectCtx!=null;
Assert.assertEquals(subjectCtx.getPrincipalName(), "joe");
final SessionContext sessionCtx = prc.getSubcontext(SessionContext.class);
- Assert.assertNotNull(sessionCtx);
- Assert.assertEquals(session.getId(), sessionCtx.getIdPSession().getId());
+ assert sessionCtx!=null;
+ final IdPSession idpSession=sessionCtx.getIdPSession();
+ assert idpSession!=null;
+ Assert.assertEquals(session.getId(), idpSession.getId());
final LogoutContext logoutCtx = prc.getSubcontext(LogoutContext.class, false);
- Assert.assertNotNull(logoutCtx);
+ assert logoutCtx!=null;
Assert.assertEquals(logoutCtx.getIdPSessions().size(), 1);
Assert.assertSame(logoutCtx.getIdPSessions().iterator().next(), sessionCtx.getIdPSession());
Assert.assertEquals(logoutCtx.getSessionMap().size(), 0);
- sessionManager.destroySession(session.getId(), false);
- sessionManager.destroySession(session2.getId(), false);
+ final String id = session.getId();
+ assert id!=null;
+ sessionManager.destroySession(id, false);
+ final String id2 = session2.getId();
+ assert id2!=null;
+ sessionManager.destroySession(id, false);
+ sessionManager.destroySession(id2, false);
}
@Test public void testTwoSessions() throws SessionException, ResolverException {
@@ -424,43 +481,50 @@ public class ProcessLogoutRequestTest extends SessionManagerBaseTestCase {
final Cookie cookie2 = createSession("joe");
final NameID nameId = SAML2ActionTestingSupport.buildNameID("joe");
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildLogoutRequest(nameId));
final Instant creation = Instant.now();
final Instant expiration = creation.plusSeconds(3600);
HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), new MockHttpServletResponse());
- ((MockHttpServletRequest) HttpServletRequestResponseContext.getRequest()).setCookies(cookie);
+ getMockHttpServletRequest().setCookies(cookie);
final IdPSession session = sessionManager.resolveSingle(new CriteriaSet(new HttpServletRequestCriterion()));
- Assert.assertNotNull(session);
+ assert session!=null;;
session.addSPSession(new SAML2SPSession(ActionTestingSupport.INBOUND_MSG_ISSUER, creation, expiration,
nameId, "index", "foo", false));
- ((MockHttpServletRequest) HttpServletRequestResponseContext.getRequest()).setCookies(cookie2);
+ getMockHttpServletRequest().setCookies(cookie2);
final IdPSession session2 = sessionManager.resolveSingle(new CriteriaSet(new HttpServletRequestCriterion()));
- Assert.assertNotNull(session2);
+ assert session2!=null;
session2.addSPSession(new SAML2SPSession(ActionTestingSupport.INBOUND_MSG_ISSUER, creation, expiration,
nameId, "index2", "foo", false));
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
final SubjectContext subjectCtx = prc.getSubcontext(SubjectContext.class);
- Assert.assertNotNull(subjectCtx);
+ assert subjectCtx!=null;
Assert.assertEquals(subjectCtx.getPrincipalName(), "joe");
final SessionContext sessionCtx = prc.getSubcontext(SessionContext.class);
Assert.assertNull(sessionCtx);
final LogoutContext logoutCtx = prc.getSubcontext(LogoutContext.class);
- Assert.assertNotNull(logoutCtx);
+ assert logoutCtx!=null;
Assert.assertEquals(logoutCtx.getIdPSessions().size(), 2);
Assert.assertEquals(logoutCtx.getSessionMap().size(), 0);
- sessionManager.destroySession(session.getId(), false);
- sessionManager.destroySession(session2.getId(), false);
+ final String id = session.getId();
+ assert id!=null;
+ sessionManager.destroySession(id, false);
+ final String id2 = session2.getId();
+ assert id2!=null;
+ sessionManager.destroySession(id, false);
+ sessionManager.destroySession(id2, false);
}
}
\ No newline at end of file
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessRequestedAuthnContextTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessRequestedAuthnContextTest.java
index 624b9be03..b0e8a7690 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessRequestedAuthnContextTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/ProcessRequestedAuthnContextTest.java
@@ -32,6 +32,7 @@ import java.util.Collections;
import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
+import org.opensaml.messaging.context.MessageContext;
import org.opensaml.saml.common.SAMLObjectBuilder;
import org.opensaml.saml.saml2.core.AuthnContext;
import org.opensaml.saml.saml2.core.AuthnContextClassRef;
@@ -77,7 +78,7 @@ public class ProcessRequestedAuthnContextTest extends OpenSAMLInitBaseTestCase {
src = (MockRequestContext) new RequestContextBuilder().buildRequestContext();
prc = (ProfileRequestContext) src.getConversationScope().get(ProfileRequestContext.BINDING_KEY);
ac = prc.getSubcontext(AuthenticationContext.class, true);
- prc.getSubcontext(RelyingPartyContext.class, true).setProfileConfig(new BrowserSSOProfileConfiguration());
+ prc.getOrCreateSubcontext(RelyingPartyContext.class).setProfileConfig(new BrowserSSOProfileConfiguration());
action = new ProcessRequestedAuthnContext();
action.initialize();
@@ -89,7 +90,9 @@ public class ProcessRequestedAuthnContextTest extends OpenSAMLInitBaseTestCase {
}
@Test public void testNoRAC() {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
@@ -97,9 +100,14 @@ public class ProcessRequestedAuthnContextTest extends OpenSAMLInitBaseTestCase {
}
@Test public void testEmptyRef() {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
final RequestedAuthnContext rac = racBuilder.buildObject();
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setRequestedAuthnContext(rac);
+
+ final AuthnRequest ar = (AuthnRequest)imc.getMessage();
+ assert ar!=null;
+ ar.setRequestedAuthnContext(rac);
final AuthnContextClassRef ref = classBuilder.buildObject();
rac.getAuthnContextClassRefs().add(ref);
@@ -109,15 +117,23 @@ public class ProcessRequestedAuthnContextTest extends OpenSAMLInitBaseTestCase {
}
@Test public void testDisallowed() {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
final RequestedAuthnContext rac = racBuilder.buildObject();
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setRequestedAuthnContext(rac);
+
+ final AuthnRequest ar = (AuthnRequest)imc.getMessage();
+ assert ar!=null;
+ ar.setRequestedAuthnContext(rac);
final AuthnContextClassRef ref = classBuilder.buildObject();
ref.setURI(AuthnContext.PASSWORD_AUTHN_CTX);
rac.getAuthnContextClassRefs().add(ref);
- ((BrowserSSOProfileConfiguration) prc.getSubcontext(RelyingPartyContext.class).getProfileConfig()).setDisallowedFeatures(
- BrowserSSOProfileConfiguration.FEATURE_AUTHNCONTEXT);
+ final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpc!=null;
+ BrowserSSOProfileConfiguration bspc = (BrowserSSOProfileConfiguration)rpc.getProfileConfig();
+ assert bspc!=null;
+ bspc.setDisallowedFeatures(BrowserSSOProfileConfiguration.FEATURE_AUTHNCONTEXT);
final Event event = action.execute(src);
ActionTestingSupport.assertEvent(event, EventIds.ACCESS_DENIED);
@@ -125,15 +141,22 @@ public class ProcessRequestedAuthnContextTest extends OpenSAMLInitBaseTestCase {
}
@Test public void testDisallowedButIgnored() {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
final RequestedAuthnContext rac = racBuilder.buildObject();
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setRequestedAuthnContext(rac);
+
+ final AuthnRequest ar = (AuthnRequest)imc.getMessage();
+ assert ar!=null;
+ ar.setRequestedAuthnContext(rac);
final AuthnContextClassRef ref = classBuilder.buildObject();
ref.setURI(AuthnContext.UNSPECIFIED_AUTHN_CTX);
rac.getAuthnContextClassRefs().add(ref);
-
- ((BrowserSSOProfileConfiguration) prc.getSubcontext(RelyingPartyContext.class).getProfileConfig()).setDisallowedFeatures(
- BrowserSSOProfileConfiguration.FEATURE_AUTHNCONTEXT);
+ final RelyingPartyContext rpc = prc.getSubcontext(RelyingPartyContext.class);
+ assert rpc!=null;
+ BrowserSSOProfileConfiguration bspc = (BrowserSSOProfileConfiguration)rpc.getProfileConfig();
+ assert bspc!=null;
+ bspc.setDisallowedFeatures(BrowserSSOProfileConfiguration.FEATURE_AUTHNCONTEXT);
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
@@ -141,9 +164,14 @@ public class ProcessRequestedAuthnContextTest extends OpenSAMLInitBaseTestCase {
}
@Test public void testNoOperator() {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
final RequestedAuthnContext rac = racBuilder.buildObject();
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setRequestedAuthnContext(rac);
+
+ final AuthnRequest ar = (AuthnRequest)imc.getMessage();
+ assert ar!=null;
+ ar.setRequestedAuthnContext(rac);
final AuthnContextClassRef ref = classBuilder.buildObject();
ref.setURI(AuthnContext.PPT_AUTHN_CTX);
rac.getAuthnContextClassRefs().add(ref);
@@ -151,16 +179,21 @@ public class ProcessRequestedAuthnContextTest extends OpenSAMLInitBaseTestCase {
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
final RequestedPrincipalContext rpc = ac.getSubcontext(RequestedPrincipalContext.class);
- Assert.assertNotNull(rpc);
+ assert rpc!=null;
Assert.assertEquals(rpc.getOperator(), AuthnContextComparisonTypeEnumeration.EXACT.toString());
Assert.assertEquals(rpc.getRequestedPrincipals().size(), 1);
Assert.assertEquals(rpc.getRequestedPrincipals().get(0).getName(), AuthnContext.PPT_AUTHN_CTX);
}
@Test public void testOperator() {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
final RequestedAuthnContext rac = racBuilder.buildObject();
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setRequestedAuthnContext(rac);
+
+ final AuthnRequest ar = (AuthnRequest)imc.getMessage();
+ assert ar!=null;
+ ar.setRequestedAuthnContext(rac);
rac.setComparison(AuthnContextComparisonTypeEnumeration.MINIMUM);
AuthnContextClassRef ref = classBuilder.buildObject();
ref.setURI(AuthnContext.PPT_AUTHN_CTX);
@@ -171,16 +204,21 @@ public class ProcessRequestedAuthnContextTest extends OpenSAMLInitBaseTestCase {
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
- final RequestedPrincipalContext rpc = ac.getSubcontext(RequestedPrincipalContext.class);
- Assert.assertNotNull(rpc);
+ final RequestedPrincipalContext rpc = ac.getSubcontext(RequestedPrincipalContext.class);
+ assert rpc!=null;
Assert.assertEquals(rpc.getOperator(), AuthnContextComparisonTypeEnumeration.MINIMUM.toString());
Assert.assertEquals(rpc.getRequestedPrincipals().size(), 2);
}
@Test public void testDecls() {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
final RequestedAuthnContext rac = racBuilder.buildObject();
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setRequestedAuthnContext(rac);
+
+ final AuthnRequest ar = (AuthnRequest)imc.getMessage();
+ assert ar!=null;
+ ar.setRequestedAuthnContext(rac);
rac.setComparison(AuthnContextComparisonTypeEnumeration.MINIMUM);
AuthnContextDeclRef ref = declBuilder.buildObject();
ref.setURI(AuthnContext.PPT_AUTHN_CTX);
@@ -191,16 +229,20 @@ public class ProcessRequestedAuthnContextTest extends OpenSAMLInitBaseTestCase {
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
- final RequestedPrincipalContext rpc = ac.getSubcontext(RequestedPrincipalContext.class);
- Assert.assertNotNull(rpc);
+ final RequestedPrincipalContext rpc = ac.getSubcontext(RequestedPrincipalContext.class);
+ assert rpc!=null;
Assert.assertEquals(rpc.getOperator(), AuthnContextComparisonTypeEnumeration.MINIMUM.toString());
Assert.assertEquals(rpc.getRequestedPrincipals().size(), 2);
}
@Test public void testIgnore() {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
final RequestedAuthnContext rac = racBuilder.buildObject();
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setRequestedAuthnContext(rac);
+ final AuthnRequest ar = (AuthnRequest)imc.getMessage();
+ assert ar!=null;
+ ar.setRequestedAuthnContext(rac);
final AuthnContextClassRef ref = classBuilder.buildObject();
ref.setURI(AuthnContext.UNSPECIFIED_AUTHN_CTX);
rac.getAuthnContextClassRefs().add(ref);
@@ -212,9 +254,14 @@ public class ProcessRequestedAuthnContextTest extends OpenSAMLInitBaseTestCase {
}
@Test public void testIgnore2() throws ComponentInitializationException {
- prc.getInboundMessageContext().setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ imc.setMessage(SAML2ActionTestingSupport.buildAuthnRequest());
final RequestedAuthnContext rac = racBuilder.buildObject();
- ((AuthnRequest) prc.getInboundMessageContext().getMessage()).setRequestedAuthnContext(rac);
+
+ final AuthnRequest ar = (AuthnRequest)imc.getMessage();
+ assert ar!=null;
+ ar.setRequestedAuthnContext(rac);
final AuthnContextClassRef ref = classBuilder.buildObject();
ref.setURI(AuthnContext.PPT_AUTHN_CTX);
rac.getAuthnContextClassRefs().add(ref);
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/SAML2ActionSupportTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/SAML2ActionSupportTest.java
index 7ff43603e..916fd059e 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/SAML2ActionSupportTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/SAML2ActionSupportTest.java
@@ -19,7 +19,9 @@ package net.shibboleth.idp.saml.saml2.profile.impl;
import net.shibboleth.idp.profile.testing.RequestContextBuilder;
import net.shibboleth.idp.saml.profile.testing.ActionTestSupportAction;
+import net.shibboleth.profile.config.ProfileConfiguration;
import net.shibboleth.profile.context.RelyingPartyContext;
+import net.shibboleth.profile.relyingparty.RelyingPartyConfiguration;
import net.shibboleth.shared.component.ComponentInitializationException;
import java.util.function.Function;
@@ -31,6 +33,7 @@ import org.opensaml.saml.saml2.core.Assertion;
import org.opensaml.saml.saml2.core.Conditions;
import org.opensaml.saml.saml2.core.Response;
import org.opensaml.saml.saml2.profile.SAML2ActionSupport;
+import org.opensaml.security.config.SecurityConfiguration;
import org.springframework.webflow.execution.RequestContext;
import org.testng.Assert;
import org.testng.annotations.Test;
@@ -64,16 +67,22 @@ public class SAML2ActionSupportTest extends OpenSAMLInitBaseTestCase {
ActionTestSupportAction action = new ActionTestSupportAction();
RelyingPartyContext relyingPartyCtx = relyingPartyContextLookupStrategy.apply(profileRequestContext);
-
+ assert relyingPartyCtx!=null;
Assert.assertEquals(response.getAssertions().size(), 0, "Expected zarro assertions before insert");
+ final ProfileConfiguration pc = relyingPartyCtx.getProfileConfig();
+ assert pc!=null;
+ final SecurityConfiguration sc = pc.getSecurityConfiguration(profileRequestContext);
+ assert sc!=null;
+ final RelyingPartyConfiguration rpConfig = relyingPartyCtx.getConfiguration();
+ assert rpConfig != null;
Assertion assertion = SAML2ActionSupport.addAssertionToResponse(action, response,
- relyingPartyCtx.getProfileConfig().getSecurityConfiguration(profileRequestContext).getIdGenerator(),
- ((net.shibboleth.profile.relyingparty.RelyingPartyConfiguration) relyingPartyCtx.getConfiguration()).getIssuer(profileRequestContext));
+ sc.getIdGenerator(),
+ rpConfig.getIssuer(profileRequestContext));
Assert.assertEquals(response.getAssertions().size(), 1, "Expected but one assertion after insert");
Assert.assertTrue(response.getAssertions().contains(assertion), "Inserted assertion should be there");
Assertion second = SAML2ActionSupport.addAssertionToResponse(action, response,
- relyingPartyCtx.getProfileConfig().getSecurityConfiguration(profileRequestContext).getIdGenerator(),
- ((net.shibboleth.profile.relyingparty.RelyingPartyConfiguration) relyingPartyCtx.getConfiguration()).getIssuer(profileRequestContext));
+ sc.getIdGenerator(),
+ rpConfig.getIssuer(profileRequestContext));
Assert.assertEquals(response.getAssertions().size(), 2, "Expected two assertions after two inserts");
Assert.assertTrue(response.getAssertions().contains(assertion), "Inserted assertion should be there");
Assert.assertNotSame(second, assertion, "Two separate assertions should have been added");
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/SessionManagerBaseTestCase.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/SessionManagerBaseTestCase.java
index 73c162434..fa4124c4b 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/SessionManagerBaseTestCase.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/SessionManagerBaseTestCase.java
@@ -47,6 +47,12 @@ public class SessionManagerBaseTestCase extends OpenSAMLInitBaseTestCase {
protected StorageBackedSessionManager sessionManager;
+ @Nonnull private MockHttpServletResponse getMockHttpServletResponse() {
+ final MockHttpServletResponse result = (MockHttpServletResponse) HttpServletRequestResponseContext.getResponse();
+ assert result != null;
+ return result;
+ }
+
@BeforeClass public void setUp() throws ComponentInitializationException {
storageService = new MemoryStorageService();
@@ -98,7 +104,7 @@ public class SessionManagerBaseTestCase extends OpenSAMLInitBaseTestCase {
protected Cookie createSession(@Nonnull @NotEmpty final String principalName) throws SessionException {
HttpServletRequestResponseContext.loadCurrent(new MockHttpServletRequest(), new MockHttpServletResponse());
sessionManager.createSession(principalName);
- Cookie cookie = ((MockHttpServletResponse) HttpServletRequestResponseContext.getResponse()).getCookies()[0];
+ Cookie cookie = getMockHttpServletResponse().getCookies()[0];
HttpServletRequestResponseContext.clearCurrent();
return cookie;
}
diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/session/impl/PrepareInboundMessageContextTest.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/session/impl/PrepareInboundMessageContextTest.java
index 308b61868..d3032ad25 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/session/impl/PrepareInboundMessageContextTest.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/session/impl/PrepareInboundMessageContextTest.java
@@ -21,12 +21,15 @@ import net.shibboleth.idp.profile.context.navigate.WebflowRequestContextProfileR
import net.shibboleth.idp.profile.testing.ActionTestingSupport;
import net.shibboleth.idp.profile.testing.RequestContextBuilder;
import net.shibboleth.idp.saml.session.SAML2SPSession;
+import net.shibboleth.idp.session.SPSession;
import net.shibboleth.idp.session.context.LogoutPropagationContext;
+import net.shibboleth.profile.context.RelyingPartyContext;
import net.shibboleth.shared.component.ComponentInitializationException;
import java.time.Instant;
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.saml.common.messaging.context.SAMLPeerEntityContext;
@@ -54,7 +57,7 @@ public class PrepareInboundMessageContextTest extends OpenSAMLInitBaseTestCase {
final SAML2SPSession session = new SAML2SPSession("https://sp.example.org", Instant.now(),
Instant.now().plusSeconds(1800), SAML2ActionTestingSupport.buildNameID("jdoe"), "foo", null, true);
- prc.getSubcontext(LogoutPropagationContext.class, true).setSession(session);
+ prc.getOrCreateSubcontext(LogoutPropagationContext.class).setSession(session);
action = new PrepareInboundMessageContext();
action.initialize();
@@ -69,7 +72,10 @@ public class PrepareInboundMessageContextTest extends OpenSAMLInitBaseTestCase {
}
@Test public void testNoSession() {
- prc.getSubcontext(LogoutPropagationContext.class).setSession(null);
+ final LogoutPropagationContext lpc = prc.getSubcontext(LogoutPropagationContext.class);
+ assert lpc!=null;
+
+ lpc.setSession(null);
final Event event = action.execute(src);
ActionTestingSupport.assertEvent(event, EventIds.INVALID_PROFILE_CTX);
Assert.assertNull(prc.getInboundMessageContext());
@@ -79,10 +85,15 @@ public class PrepareInboundMessageContextTest extends OpenSAMLInitBaseTestCase {
final Event event = action.execute(src);
ActionTestingSupport.assertProceedEvent(event);
- Assert.assertNotNull(prc.getInboundMessageContext());
- final SAMLPeerEntityContext ctx = prc.getInboundMessageContext().getSubcontext(SAMLPeerEntityContext.class);
- Assert.assertNotNull(ctx);
- Assert.assertEquals(ctx.getEntityId(), prc.getSubcontext(LogoutPropagationContext.class).getSession().getId());
+ final MessageContext imc = prc.getInboundMessageContext();
+ assert imc!=null;
+ final SAMLPeerEntityContext ctx = imc.getSubcontext(SAMLPeerEntityContext.class);
+ assert ctx!=null;
+ final LogoutPropagationContext lpc = prc.getSubcontext(LogoutPropagationContext.class);
+ assert lpc!=null;
+ final SPSession session = lpc.getSession();
+ assert session!=null;
+ Assert.assertEquals(ctx.getEntityId(), session.getId());
}
}
\ No newline at end of file
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list