[java-idp-oidc] branch main updated: JOIDC-193 - Flow cleanup to leverage ensureContext
Scott Cantor
cantor.2 at osu.edu
Mon Jan 22 22:03:04 UTC 2024
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch main
in repository java-idp-oidc.
View the commit online:
http://git.shibboleth.net/view/?p=java-idp-oidc.git;a=commit;h=aa9a8f18e880cdc1e4fc00d679635b2da62d1f32
The following commit(s) were added to refs/heads/main by this push:
new aa9a8f18 JOIDC-193 - Flow cleanup to leverage ensureContext
aa9a8f18 is described below
commit aa9a8f18e880cdc1e4fc00d679635b2da62d1f32
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Jan 22 17:03:01 2024 -0500
JOIDC-193 - Flow cleanup to leverage ensureContext
https://shibboleth.atlassian.net/browse/JOIDC-193
Substantial use of getXXXMessageContext and getSubcontext addressed.
---
.../idp/flows/admin/oidc/clients/clients-beans.xml | 2 +-
.../idp/flows/admin/oidc/clients/clients-flow.xml | 2 +-
.../issue-registration-access-token-flow.xml | 10 +++++-----
.../flows/authn/OAuth2Client/OAuth2Client-beans.xml | 10 +++++-----
.../logoutprop/oidc/oidc-logout-propagation-flow.xml | 10 +++++-----
.../oidc-abstract-api-info-flow.xml | 2 +-
.../oidc/abstract-api/oidc-abstract-api-flow.xml | 4 ++--
.../idp/flows/oidc/abstract/oidc-abstract-flow.xml | 2 +-
.../idp/flows/oidc/authorize/authorize-beans.xml | 20 ++++++++++----------
.../idp/flows/oidc/authorize/authorize-flow.xml | 14 +++++++-------
.../oidc/consent-lookup/consent-lookup-flow.xml | 4 ++--
.../idp/flows/oidc/end-session/end-session-flow.xml | 18 +++++++++---------
.../oidc/metadata-lookup/metadata-lookup-flow.xml | 4 ++--
.../idp/flows/oidc/register/register-flow.xml | 2 +-
.../shibboleth/idp/flows/oidc/token/token-flow.xml | 8 ++++----
.../idp/flows/oidc/userinfo/userinfo-flow.xml | 2 +-
16 files changed, 57 insertions(+), 57 deletions(-)
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/oidc/clients/clients-beans.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/oidc/clients/clients-beans.xml
index ab49080e..c5c7a5c4 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/oidc/clients/clients-beans.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/oidc/clients/clients-beans.xml
@@ -27,7 +27,7 @@
<bean id="shibboleth.AdminResourceLookupStrategy" parent="shibboleth.ContextFunctions.Expression"
c:outputType="#{T(java.lang.String)}"
- c:expression="#input.getSubcontext(T(net.shibboleth.idp.profile.context.SpringRequestContext)).getRequestContext().getFlowScope().get('clientId')" />
+ c:expression="#input.ensureSubcontext(T(net.shibboleth.idp.profile.context.SpringRequestContext)).getRequestContext().getFlowScope().get('clientId')" />
<!-- Work beans. -->
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/oidc/clients/clients-flow.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/oidc/clients/clients-flow.xml
index ed96cc60..c4530916 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/oidc/clients/clients-flow.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/oidc/clients/clients-flow.xml
@@ -5,7 +5,7 @@
<on-start>
<!-- Extract 'id' parameter in case authentication disturbs the URL. -->
- <evaluate expression="T(net.shibboleth.utilities.java.support.primitive.StringSupport).trimOrNull(externalContext.getNativeRequest().getParameter('client_id'))" result="flowScope.clientId" />
+ <evaluate expression="T(net.shibboleth.shared.primitive.StringSupport).trimOrNull(externalContext.getNativeRequest().getParameter('client_id'))" result="flowScope.clientId" />
</on-start>
<!-- Start action. -->
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/oidc/issue-registration-access-token/issue-registration-access-token-flow.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/oidc/issue-registration-access-token/issue-registration-access-token-flow.xml
index 52800437..a890003f 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/oidc/issue-registration-access-token/issue-registration-access-token-flow.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/oidc/issue-registration-access-token/issue-registration-access-token-flow.xml
@@ -7,11 +7,11 @@
<on-start>
<!-- Extract the parameters in case authentication disturbs the URL. -->
- <evaluate expression="T(net.shibboleth.utilities.java.support.primitive.StringSupport).trimOrNull(externalContext.getNativeRequest().getParameter('tokenLifetime'))" result="flowScope.tokenLifetime" />
- <evaluate expression="T(net.shibboleth.utilities.java.support.primitive.StringSupport).trimOrNull(externalContext.getNativeRequest().getParameter('policyLocation'))" result="flowScope.policyLocation" />
- <evaluate expression="T(net.shibboleth.utilities.java.support.primitive.StringSupport).trimOrNull(externalContext.getNativeRequest().getParameter('policyId'))" result="flowScope.policyId" />
- <evaluate expression="T(net.shibboleth.utilities.java.support.primitive.StringSupport).trimOrNull(externalContext.getNativeRequest().getParameter('clientId'))" result="flowScope.clientId" />
- <evaluate expression="T(net.shibboleth.utilities.java.support.primitive.StringSupport).trimOrNull(externalContext.getNativeRequest().getParameter('replacement'))" result="flowScope.replacement" />
+ <evaluate expression="T(net.shibboleth.shared.primitive.StringSupport).trimOrNull(externalContext.getNativeRequest().getParameter('tokenLifetime'))" result="flowScope.tokenLifetime" />
+ <evaluate expression="T(net.shibboleth.shared.primitive.StringSupport).trimOrNull(externalContext.getNativeRequest().getParameter('policyLocation'))" result="flowScope.policyLocation" />
+ <evaluate expression="T(net.shibboleth.shared.primitive.StringSupport).trimOrNull(externalContext.getNativeRequest().getParameter('policyId'))" result="flowScope.policyId" />
+ <evaluate expression="T(net.shibboleth.shared.primitive.StringSupport).trimOrNull(externalContext.getNativeRequest().getParameter('clientId'))" result="flowScope.clientId" />
+ <evaluate expression="T(net.shibboleth.shared.primitive.StringSupport).trimOrNull(externalContext.getNativeRequest().getParameter('replacement'))" result="flowScope.replacement" />
</on-start>
<action-state id="InitializeProfileRequestContext">
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/OAuth2Client/OAuth2Client-beans.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/OAuth2Client/OAuth2Client-beans.xml
index f7d99b72..eebd9585 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/OAuth2Client/OAuth2Client-beans.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/OAuth2Client/OAuth2Client-beans.xml
@@ -50,7 +50,7 @@
</bean>
<bean id="JWTAuthenticationCondition" parent="shibboleth.Conditions.Expression"
- c:expression="#input.getSubcontext(T(net.shibboleth.idp.authn.context.AuthenticationContext)).getSubcontext(T(net.shibboleth.oidc.authn.context.OAuth2ClientAuthenticationContext)).getClientAuthentication() instanceof T(com.nimbusds.oauth2.sdk.auth.JWTAuthentication)" />
+ c:expression="#input.ensureSubcontext(T(net.shibboleth.idp.authn.context.AuthenticationContext)).ensureSubcontext(T(net.shibboleth.oidc.authn.context.OAuth2ClientAuthenticationContext)).getClientAuthentication() instanceof T(com.nimbusds.oauth2.sdk.auth.JWTAuthentication)" />
<bean id="ValidateJWTSignature" class="net.shibboleth.idp.profile.impl.WebFlowMessageHandlerAdaptor"
scope="prototype" c:executionDirection="INBOUND" p:activationCondition-ref="JWTAuthenticationCondition"
@@ -66,13 +66,13 @@
class="net.shibboleth.profile.context.navigate.SpringExpressionContextLookupFunction"
c:_0="#{ T(org.opensaml.messaging.context.MessageContext) }"
c:outputType="#{T(com.nimbusds.jwt.SignedJWT)}"
- c:expression="#input.getParent().getSubcontext(T(net.shibboleth.idp.authn.context.AuthenticationContext)).getSubcontext(T(net.shibboleth.oidc.authn.context.OAuth2ClientAuthenticationContext)).getClientAuthentication().getClientAssertion()" />
+ c:expression="#input.getParent().ensureSubcontext(T(net.shibboleth.idp.authn.context.AuthenticationContext)).ensureSubcontext(T(net.shibboleth.oidc.authn.context.OAuth2ClientAuthenticationContext)).getClientAuthentication().getClientAssertion()" />
</property>
<property name="clientInformationLookupStrategy">
<bean
class="net.shibboleth.profile.context.navigate.SpringExpressionContextLookupFunction"
c:_0="#{ T(org.opensaml.messaging.context.MessageContext) }"
- c:expression="#input.getSubcontext(T(net.shibboleth.oidc.metadata.context.OIDCMetadataContext)).getClientInformation()" />
+ c:expression="#input.ensureSubcontext(T(net.shibboleth.oidc.metadata.context.OIDCMetadataContext)).getClientInformation()" />
</property>
<property name="signatureAlgorithmLookupStrategy">
<bean
@@ -87,13 +87,13 @@
class="net.shibboleth.profile.context.navigate.SpringExpressionContextLookupFunction"
c:_0="#{ T(org.opensaml.messaging.context.MessageContext) }"
c:outputType="#{T(com.nimbusds.jwt.SignedJWT)}"
- c:expression="#input.getParent().getSubcontext(T(net.shibboleth.idp.authn.context.AuthenticationContext)).getSubcontext(T(net.shibboleth.oidc.authn.context.OAuth2ClientAuthenticationContext)).getClientAuthentication().getClientAssertion()" />
+ c:expression="#input.getParent().ensureSubcontext(T(net.shibboleth.idp.authn.context.AuthenticationContext)).ensureSubcontext(T(net.shibboleth.oidc.authn.context.OAuth2ClientAuthenticationContext)).getClientAuthentication().getClientAssertion()" />
</property>
<property name="clientInformationLookupStrategy">
<bean
class="net.shibboleth.profile.context.navigate.SpringExpressionContextLookupFunction"
c:_0="#{ T(org.opensaml.messaging.context.MessageContext) }"
- c:expression="#input.getSubcontext(T(net.shibboleth.oidc.metadata.context.OIDCMetadataContext)).getClientInformation()" />
+ c:expression="#input.ensureSubcontext(T(net.shibboleth.oidc.metadata.context.OIDCMetadataContext)).getClientInformation()" />
</property>
</bean>
</list>
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/logoutprop/oidc/oidc-logout-propagation-flow.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/logoutprop/oidc/oidc-logout-propagation-flow.xml
index d88bd3ee..f5e50501 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/logoutprop/oidc/oidc-logout-propagation-flow.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/logoutprop/oidc/oidc-logout-propagation-flow.xml
@@ -25,18 +25,18 @@
</action-state>
<decision-state id="ChooseFrontChannelIfPreferredAndEnabled">
- <if test="frontChannelPreferred and opensamlProfileRequestContext.getOutboundMessageContext().getSubcontext('net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCLogoutPropagationContext').getFrontChannelLogoutUri() != null"
+ <if test="frontChannelPreferred and opensamlProfileRequestContext.ensureOutboundMessageContext().ensureSubcontext('net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCLogoutPropagationContext').getFrontChannelLogoutUri() != null"
then="DoFrontChannelLogout"
else="ChooseBackChannelIfEnabled" />
</decision-state>
<decision-state id="ChooseBackChannelIfEnabled">
- <if test="opensamlProfileRequestContext.getOutboundMessageContext().getSubcontext('net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCLogoutPropagationContext').getBackChannelLogoutUri() != null"
+ <if test="opensamlProfileRequestContext.ensureOutboundMessageContext().ensureSubcontext('net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCLogoutPropagationContext').getBackChannelLogoutUri() != null"
then="DoBackChannelLogout" else="ChooseFrontChannelIfEnabled" />
</decision-state>
<decision-state id="ChooseFrontChannelIfEnabled">
- <if test="opensamlProfileRequestContext.getOutboundMessageContext().getSubcontext('net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCLogoutPropagationContext').getFrontChannelLogoutUri() != null"
+ <if test="opensamlProfileRequestContext.ensureOutboundMessageContext().ensureSubcontext('net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCLogoutPropagationContext').getFrontChannelLogoutUri() != null"
then="DoFrontChannelLogout" else="HandleError" />
</decision-state>
@@ -67,7 +67,7 @@
<evaluate expression="T(net.shibboleth.shared.codec.HTMLEncoder)" result="viewScope.encoder" />
<evaluate expression="flowRequestContext.getExternalContext().getNativeRequest()" result="viewScope.request" />
<evaluate expression="flowRequestContext.getExternalContext().getNativeResponse()" result="viewScope.response" />
- <evaluate expression="opensamlProfileRequestContext.getOutboundMessageContext().getMessage().toHTTPResponse().getHeaderValue('Location')" result="viewScope.frontChannelLogoutLocation" />
+ <evaluate expression="opensamlProfileRequestContext.ensureOutboundMessageContext().getMessage().toHTTPResponse().getHeaderValue('Location')" result="viewScope.frontChannelLogoutLocation" />
<evaluate expression="flowRequestContext.getActiveFlow().getApplicationContext().containsBean('shibboleth.CustomViewContext') ? flowRequestContext.getActiveFlow().getApplicationContext().getBean('shibboleth.CustomViewContext') : null" result="viewScope.custom" />
</on-render>
<transition on="proceed" to="SetFrontChannelLogoutSuccess" />
@@ -81,7 +81,7 @@
<action-state id="DoBackChannelLogout">
<on-entry>
- <evaluate expression="opensamlProfileRequestContext.getOutboundMessageContext().getSubcontext('net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCLogoutPropagationContext').ensureSubcontext('net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCBackChannelLogoutPropagationContext')"/>
+ <evaluate expression="opensamlProfileRequestContext.ensureOutboundMessageContext().ensureSubcontext('net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCLogoutPropagationContext').ensureSubcontext('net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCBackChannelLogoutPropagationContext')"/>
</on-entry>
<evaluate expression="PopulateBackChannelLogoutTokenSignatureSigningParameters"/>
<evaluate expression="PopulateBackChannelLogoutTokenEncryptionParameters"/>
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/abstract-api-info/oidc-abstract-api-info-flow.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/abstract-api-info/oidc-abstract-api-info-flow.xml
index d02e715f..2081ae12 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/abstract-api-info/oidc-abstract-api-info-flow.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/abstract-api-info/oidc-abstract-api-info-flow.xml
@@ -17,7 +17,7 @@
</action-state>
<decision-state id="CheckInboundInterceptContext">
- <if test="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
+ <if test="opensamlProfileRequestContext.ensureSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
then="PopulateOutboundInterceptContext" else="DoInboundInterceptSubflow" />
</decision-state>
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/abstract-api/oidc-abstract-api-flow.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/abstract-api/oidc-abstract-api-flow.xml
index b313bf5a..6900d8b1 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/abstract-api/oidc-abstract-api-flow.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/abstract-api/oidc-abstract-api-flow.xml
@@ -7,7 +7,7 @@
<!-- Actions common to most OIDC profile backend flows. -->
<decision-state id="CheckInboundInterceptContext">
- <if test="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
+ <if test="opensamlProfileRequestContext.ensureSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
then="AuthenticationSetup" else="DoInboundInterceptSubflow" />
</decision-state>
@@ -34,7 +34,7 @@
<action-state id="HandleError">
<on-entry>
<evaluate
- expression="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.profile.context.SpringRequestContext), true).setRequestContext(flowRequestContext)" />
+ expression="opensamlProfileRequestContext.ensureSubcontext(T(net.shibboleth.idp.profile.context.SpringRequestContext)).setRequestContext(flowRequestContext)" />
<evaluate expression="LogEvent" />
</on-entry>
<evaluate expression="BuildErrorResponseFromEvent" />
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/abstract/oidc-abstract-flow.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/abstract/oidc-abstract-flow.xml
index 18256638..5fa09c23 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/abstract/oidc-abstract-flow.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/abstract/oidc-abstract-flow.xml
@@ -10,7 +10,7 @@
</action-state>
<decision-state id="CheckOutboundInterceptContext">
- <if test="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
+ <if test="opensamlProfileRequestContext.ensureSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
then="BuildResponseMessage" else="DoOutboundInterceptSubflow" />
</decision-state>
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/authorize/authorize-beans.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/authorize/authorize-beans.xml
index 5e4f05b8..51fc17f5 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/authorize/authorize-beans.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/authorize/authorize-beans.xml
@@ -120,7 +120,7 @@
p:requestObjectEnforcedPredicate-ref="UseRequestObjectPredicate"/>
<bean id="RequestObjectEncryptedCondition" parent="shibboleth.Conditions.Expression"
- c:expression="#input.getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getRequestObject() instanceof T(com.nimbusds.jwt.EncryptedJWT)" />
+ c:expression="#input.ensureOutboundMessageContext().ensureSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getRequestObject() instanceof T(com.nimbusds.jwt.EncryptedJWT)" />
<bean id="CheckClientJWTDecryptionConfiguration"
class="net.shibboleth.oidc.security.impl.CheckClientJWTDecryptionConfiguration" scope="prototype">
@@ -129,13 +129,13 @@
class="net.shibboleth.profile.context.navigate.SpringExpressionContextLookupFunction"
c:_0="#{ T(org.opensaml.profile.context.ProfileRequestContext) }"
c:outputType="#{T(com.nimbusds.jwt.JWT)}"
- c:expression="#input.getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getRequestObject()" />
+ c:expression="#input.ensureOutboundMessageContext().ensureSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getRequestObject()" />
</property>
<property name="clientInformationLookupStrategy">
<bean
class="net.shibboleth.profile.context.navigate.SpringExpressionContextLookupFunction"
c:_0="#{ T(org.opensaml.profile.context.ProfileRequestContext) }"
- c:expression="#input.getInboundMessageContext().getSubcontext(T(net.shibboleth.oidc.metadata.context.OIDCMetadataContext)).getClientInformation()" />
+ c:expression="#input.ensureInboundMessageContext().ensureSubcontext(T(net.shibboleth.oidc.metadata.context.OIDCMetadataContext)).getClientInformation()" />
</property>
<property name="encryptionOptionalPredicate">
<bean parent="shibboleth.Conditions.NOT">
@@ -143,7 +143,7 @@
<bean parent="shibboleth.Conditions.AND">
<constructor-arg>
<bean parent="shibboleth.Conditions.Expression"
- c:expression="#input.getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getRequestObject() != null" />
+ c:expression="#input.ensureOutboundMessageContext().ensureSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getRequestObject() != null" />
</constructor-arg>
<constructor-arg>
<bean class="net.shibboleth.oidc.profile.config.logic.EncryptRequestObjectPredicate"/>
@@ -171,7 +171,7 @@
<bean class="net.shibboleth.profile.context.navigate.SpringExpressionContextLookupFunction"
c:_0="#{ T(org.opensaml.profile.context.ProfileRequestContext) }"
c:outputType="#{T(com.nimbusds.jwt.EncryptedJWT)}"
- c:expression="#input.getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getRequestObject()" />
+ c:expression="#input.ensureOutboundMessageContext().ensureSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getRequestObject()" />
</property>
<property name="jwtUpdateStrategy">
<bean class="net.shibboleth.idp.plugin.oidc.op.profile.context.navigate.RequestObjectUpdateStrategy" />
@@ -184,7 +184,7 @@
</bean>
<bean id="RequestObjectSignedCondition" parent="shibboleth.Conditions.Expression"
- c:expression="#input.getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getRequestObject() instanceof T(com.nimbusds.jwt.SignedJWT)" />
+ c:expression="#input.ensureOutboundMessageContext().ensureSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getRequestObject() instanceof T(com.nimbusds.jwt.SignedJWT)" />
<bean id="UseRequestObjectPredicate" class="net.shibboleth.oidc.profile.config.logic.UseRequestObjectPredicate" />
@@ -203,13 +203,13 @@
class="net.shibboleth.profile.context.navigate.SpringExpressionContextLookupFunction"
c:_0="#{ T(org.opensaml.messaging.context.MessageContext) }"
c:outputType="#{T(com.nimbusds.jwt.SignedJWT)}"
- c:expression="#input.getParent().getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getRequestObject()" />
+ c:expression="#input.getParent().ensureOutboundMessageContext().ensureSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getRequestObject()" />
</property>
<property name="clientInformationLookupStrategy">
<bean
class="net.shibboleth.profile.context.navigate.SpringExpressionContextLookupFunction"
c:_0="#{ T(org.opensaml.messaging.context.MessageContext) }"
- c:expression="#input.getSubcontext(T(net.shibboleth.oidc.metadata.context.OIDCMetadataContext)).getClientInformation()" />
+ c:expression="#input.ensureSubcontext(T(net.shibboleth.oidc.metadata.context.OIDCMetadataContext)).getClientInformation()" />
</property>
<property name="signatureAlgorithmLookupStrategy">
<bean
@@ -224,13 +224,13 @@
class="net.shibboleth.profile.context.navigate.SpringExpressionContextLookupFunction"
c:_0="#{ T(org.opensaml.messaging.context.MessageContext) }"
c:outputType="#{T(com.nimbusds.jwt.SignedJWT)}"
- c:expression="#input.getParent().getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getRequestObject()" />
+ c:expression="#input.getParent().ensureOutboundMessageContext().ensureSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getRequestObject()" />
</property>
<property name="clientInformationLookupStrategy">
<bean
class="net.shibboleth.profile.context.navigate.SpringExpressionContextLookupFunction"
c:_0="#{ T(org.opensaml.messaging.context.MessageContext) }"
- c:expression="#input.getSubcontext(T(net.shibboleth.oidc.metadata.context.OIDCMetadataContext)).getClientInformation()" />
+ c:expression="#input.ensureSubcontext(T(net.shibboleth.oidc.metadata.context.OIDCMetadataContext)).getClientInformation()" />
</property>
</bean>
</list>
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/authorize/authorize-flow.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/authorize/authorize-flow.xml
index 30fa08b2..da9d3910 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/authorize/authorize-flow.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/authorize/authorize-flow.xml
@@ -44,7 +44,7 @@
</action-state>
<decision-state id="CheckInboundInterceptContext">
- <if test="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
+ <if test="opensamlProfileRequestContext.ensureSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
then="OutboundContextsAndSecurityParameters" else="DoInboundInterceptSubflow" />
</decision-state>
@@ -116,7 +116,7 @@
<!-- Audience may or may not be a factor. -->
<decision-state id="CheckForAudience">
- <if test="opensamlProfileRequestContext.getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getAudience().isEmpty()"
+ <if test="opensamlProfileRequestContext.ensureOutboundMessageContext().ensureSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getAudience().isEmpty()"
then="AttributeResolutionForClient"
else="LookupAudienceMetadata" />
</decision-state>
@@ -132,7 +132,7 @@
</action-state>
<decision-state id="CheckIfAudienceFoundFromClientInformationService">
- <if test="opensamlProfileRequestContext.getOutboundMessageContext().containsSubcontext(T(net.shibboleth.oidc.metadata.context.OIDCMetadataContext))"
+ <if test="opensamlProfileRequestContext.ensureOutboundMessageContext().containsSubcontext(T(net.shibboleth.oidc.metadata.context.OIDCMetadataContext))"
then="SelectAudienceProfileConfiguration" else="LookupAudienceSAMLMetadata" />
</decision-state>
@@ -146,7 +146,7 @@
</action-state>
<decision-state id="CheckIfAudienceFoundFromSAMLMetadata">
- <if test="opensamlProfileRequestContext.getOutboundMessageContext().containsSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext)) and opensamlProfileRequestContext.getOutboundMessageContext().getSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext)).containsSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLMetadataContext))"
+ <if test="opensamlProfileRequestContext.ensureOutboundMessageContext().containsSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext)) and opensamlProfileRequestContext.ensureOutboundMessageContext().ensureSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext)).containsSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLMetadataContext))"
then="PopulateAudienceOIDCMetadataContextFromSAML"
else="SelectAudienceProfileConfiguration" />
</decision-state>
@@ -189,7 +189,7 @@
<decision-state id="CheckPostAuthnInterceptContext">
<if
- test="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
+ test="opensamlProfileRequestContext.ensureSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
then="SubjectResolution" else="DoPostAuthnInterceptSubflow" />
</decision-state>
@@ -223,7 +223,7 @@
</decision-state>
<decision-state id="CheckTokenRequirements">
- <if test="opensamlProfileRequestContext.getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getAudience().isEmpty()"
+ <if test="opensamlProfileRequestContext.ensureOutboundMessageContext().ensureSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getAudience().isEmpty()"
then="BuildTokensForUserInfoAccess"
else="BuildTokensForThirdPartyAccess" />
</decision-state>
@@ -335,7 +335,7 @@
<evaluate expression="BuildErrorResponseFromEvent" />
</on-entry>
<if
- test="opensamlProfileRequestContext.getOutboundMessageContext() != null && opensamlProfileRequestContext.getOutboundMessageContext().getMessage() != null"
+ test="opensamlProfileRequestContext.getOutboundMessageContext() != null && opensamlProfileRequestContext.ensureOutboundMessageContext().getMessage() != null"
then="CommitResponse" else="ErrorView" />
<exception-handler bean="RethrowingFlowExecutionExceptionHandler" />
</decision-state>
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/consent-lookup/consent-lookup-flow.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/consent-lookup/consent-lookup-flow.xml
index 88c6c84f..9fa20c72 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/consent-lookup/consent-lookup-flow.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/consent-lookup/consent-lookup-flow.xml
@@ -9,13 +9,13 @@
</decision-state>
<decision-state id="CheckConsentSetup">
- <if test="opensamlProfileRequestContext.getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).containsSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseConsentContext))"
+ <if test="opensamlProfileRequestContext.ensureOutboundMessageContext().ensureSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).containsSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseConsentContext))"
then="BuildResponse" else="ConsentFlowSetup" />
</decision-state>
<action-state id="ConsentFlowSetup">
<evaluate expression="PopulateConsentInterceptContext" />
- <evaluate expression="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).setAttemptedFlow(flowRequestContext.getActiveFlow().getApplicationContext().getBean('shibboleth.ProfileInterceptorFlowDescriptorManager').getComponents().?[id matches 'intercept/attribute-release-query'])" />
+ <evaluate expression="opensamlProfileRequestContext.ensureSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).setAttemptedFlow(flowRequestContext.getActiveFlow().getApplicationContext().getBean('shibboleth.ProfileInterceptorFlowDescriptorManager').getComponents().?[id matches 'intercept/attribute-release-query'])" />
<transition on="success" to="ConsentFlow" />
</action-state>
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/end-session/end-session-flow.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/end-session/end-session-flow.xml
index 4b3bb3a7..055175eb 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/end-session/end-session-flow.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/end-session/end-session-flow.xml
@@ -37,7 +37,7 @@
</action-state>
<decision-state id="CheckInboundInterceptContext">
- <if test="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
+ <if test="opensamlProfileRequestContext.ensureSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
then="OutboundContextsAndSecurityParameters" else="DoInboundInterceptSubflow" />
</decision-state>
@@ -127,7 +127,7 @@
<action-state id="SetRPUIInformation">
<on-entry>
- <evaluate expression="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.profile.context.MultiRelyingPartyContext)).getRelyingPartyContextIterator().next()" />
+ <evaluate expression="opensamlProfileRequestContext.ensureSubcontext(T(net.shibboleth.idp.profile.context.MultiRelyingPartyContext)).getRelyingPartyContextIterator().next()" />
</on-entry>
<evaluate expression="SetRPUIInformation" />
<evaluate expression="'proceed'" />
@@ -142,8 +142,8 @@
<evaluate expression="opensamlProfileRequestContext" result="viewScope.profileRequestContext" />
<evaluate expression="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.session.context.LogoutContext))" result="viewScope.logoutContext" />
<evaluate expression="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.profile.context.MultiRelyingPartyContext))" result="viewScope.multiRPContext" />
- <evaluate expression="opensamlProfileRequestContext.getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCRpInitiatedLogoutContext))" result="viewScope.oidcRpInitiatedLogoutContext" />
- <evaluate expression="opensamlProfileRequestContext.getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCRpInitiatedLogoutContext)).getPostLogoutRedirectUri()" result="viewScope.postLogoutRedirectUri" />
+ <evaluate expression="opensamlProfileRequestContext.ensureOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCRpInitiatedLogoutContext))" result="viewScope.oidcRpInitiatedLogoutContext" />
+ <evaluate expression="opensamlProfileRequestContext.ensureOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCRpInitiatedLogoutContext)).getPostLogoutRedirectUri()" result="viewScope.postLogoutRedirectUri" />
<evaluate expression="T(net.shibboleth.shared.codec.HTMLEncoder)" result="viewScope.encoder" />
<evaluate expression="flowRequestContext.getExternalContext().getNativeRequest()" result="viewScope.request" />
<evaluate expression="flowRequestContext.getExternalContext().getNativeResponse()" result="viewScope.response" />
@@ -173,8 +173,8 @@
<evaluate expression="opensamlProfileRequestContext" result="viewScope.profileRequestContext" />
<evaluate expression="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.session.context.LogoutContext))" result="viewScope.logoutContext" />
<evaluate expression="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.profile.context.MultiRelyingPartyContext))" result="viewScope.multiRPContext" />
- <evaluate expression="opensamlProfileRequestContext.getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCRpInitiatedLogoutContext))" result="viewScope.oidcRpInitiatedLogoutContext" />
- <evaluate expression="opensamlProfileRequestContext.getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCRpInitiatedLogoutContext)).getPostLogoutRedirectUri()" result="viewScope.postLogoutRedirectUri" />
+ <evaluate expression="opensamlProfileRequestContext.ensureOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCRpInitiatedLogoutContext))" result="viewScope.oidcRpInitiatedLogoutContext" />
+ <evaluate expression="opensamlProfileRequestContext.ensureOutboundMessageContext().ensureSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCRpInitiatedLogoutContext)).getPostLogoutRedirectUri()" result="viewScope.postLogoutRedirectUri" />
<evaluate expression="T(net.shibboleth.shared.codec.HTMLEncoder)" result="viewScope.htmlEncoder" />
<evaluate expression="T(java.net.URLEncoder)" result="viewScope.urlEncoder" />
<evaluate expression="T(org.cryptacular.util.CodecUtil)" result="viewScope.codecUtil" />
@@ -193,8 +193,8 @@
<evaluate expression="opensamlProfileRequestContext" result="requestScope.profileRequestContext" />
<evaluate expression="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.session.context.LogoutContext))" result="requestScope.logoutContext" />
<evaluate expression="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.profile.context.MultiRelyingPartyContext))" result="requestScope.multiRPContext" />
- <evaluate expression="opensamlProfileRequestContext.getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCRpInitiatedLogoutContext))" result="viewScope.oidcRpInitiatedLogoutContext" />
- <evaluate expression="opensamlProfileRequestContext.getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCRpInitiatedLogoutContext)).getPostLogoutRedirectUri()" result="viewScope.postLogoutRedirectUri" />
+ <evaluate expression="opensamlProfileRequestContext.ensureOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCRpInitiatedLogoutContext))" result="viewScope.oidcRpInitiatedLogoutContext" />
+ <evaluate expression="opensamlProfileRequestContext.ensureOutboundMessageContext().ensureSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCRpInitiatedLogoutContext)).getPostLogoutRedirectUri()" result="viewScope.postLogoutRedirectUri" />
<evaluate expression="T(net.shibboleth.shared.codec.HTMLEncoder)" result="requestScope.encoder" />
<evaluate expression="flowRequestContext.getExternalContext().getNativeRequest()" result="requestScope.request" />
<evaluate expression="flowRequestContext.getExternalContext().getNativeResponse()" result="requestScope.response" />
@@ -211,7 +211,7 @@
</action-state>
<decision-state id="CheckOutboundInterceptContext">
- <if test="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
+ <if test="opensamlProfileRequestContext.ensureSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
then="HandleOutboundMessage" else="DoOutboundInterceptSubflow" />
</decision-state>
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/metadata-lookup/metadata-lookup-flow.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/metadata-lookup/metadata-lookup-flow.xml
index eccbb86d..53f58ddf 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/metadata-lookup/metadata-lookup-flow.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/metadata-lookup/metadata-lookup-flow.xml
@@ -16,7 +16,7 @@
</action-state>
<decision-state id="CheckIfFoundFromClientInformationService">
- <if test="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.profile.context.RelyingPartyContext)).isVerified()"
+ <if test="opensamlProfileRequestContext.ensureSubcontext(T(net.shibboleth.profile.context.RelyingPartyContext)).isVerified()"
then="SelectConfiguration" else="LookupFromSAMLMetadataService" />
</decision-state>
@@ -29,7 +29,7 @@
</action-state>
<decision-state id="CheckIfFoundFromSAMLMetadata">
- <if test="opensamlProfileRequestContext.getInboundMessageContext().containsSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext)) and opensamlProfileRequestContext.getInboundMessageContext().getSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext)).containsSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLMetadataContext))"
+ <if test="opensamlProfileRequestContext.ensureInboundMessageContext().containsSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext)) and opensamlProfileRequestContext.ensureInboundMessageContext().ensureSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext)).containsSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLMetadataContext))"
then="PopulateOIDCMetadataContextFromSAML" else="SelectConfiguration" />
</decision-state>
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/register/register-flow.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/register/register-flow.xml
index 5483d3ad..c74333f8 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/register/register-flow.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/register/register-flow.xml
@@ -26,7 +26,7 @@
</action-state>
<decision-state id="CheckInboundInterceptContext">
- <if test="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
+ <if test="opensamlProfileRequestContext.ensureSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
then="OutboundContextsAndSecurityParameters" else="DoInboundInterceptSubflow" />
</decision-state>
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/token/token-flow.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/token/token-flow.xml
index e669ae99..c2c11bdd 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/token/token-flow.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/token/token-flow.xml
@@ -70,7 +70,7 @@
<!-- For standard grants, audience may or may not be a factor. -->
<decision-state id="CheckTraditionalGrantForAudience">
- <if test="opensamlProfileRequestContext.getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getAudience().isEmpty()"
+ <if test="opensamlProfileRequestContext.ensureOutboundMessageContext().ensureSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getAudience().isEmpty()"
then="CheckAttributeResolutionForClient"
else="LookupAudienceMetadata" />
</decision-state>
@@ -100,7 +100,7 @@
</action-state>
<decision-state id="CheckIfAudienceFoundFromClientInformationService">
- <if test="opensamlProfileRequestContext.getOutboundMessageContext().containsSubcontext(T(net.shibboleth.oidc.metadata.context.OIDCMetadataContext))"
+ <if test="opensamlProfileRequestContext.ensureOutboundMessageContext().containsSubcontext(T(net.shibboleth.oidc.metadata.context.OIDCMetadataContext))"
then="SelectAudienceProfileConfiguration" else="LookupAudienceSAMLMetadata" />
</decision-state>
@@ -114,7 +114,7 @@
</action-state>
<decision-state id="CheckIfAudienceFoundFromSAMLMetadata">
- <if test="opensamlProfileRequestContext.getOutboundMessageContext().containsSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext)) and opensamlProfileRequestContext.getOutboundMessageContext().getSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext)).containsSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLMetadataContext))"
+ <if test="opensamlProfileRequestContext.ensureOutboundMessageContext().containsSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext)) and opensamlProfileRequestContext.ensureOutboundMessageContext().ensureSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext)).containsSubcontext(T(org.opensaml.saml.common.messaging.context.SAMLMetadataContext))"
then="PopulateAudienceOIDCMetadataContextFromSAML"
else="SelectAudienceProfileConfiguration" />
</decision-state>
@@ -164,7 +164,7 @@
</action-state>
<decision-state id="BuildResponse">
- <if test="opensamlProfileRequestContext.getOutboundMessageContext().getSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getAudience().isEmpty()"
+ <if test="opensamlProfileRequestContext.ensureOutboundMessageContext().ensureSubcontext(T(net.shibboleth.idp.plugin.oidc.op.messaging.context.OIDCAuthenticationResponseContext)).getAudience().isEmpty()"
then="BuildTokensForUserInfoAccess"
else="BuildTokensForThirdPartyAccess" />
</decision-state>
diff --git a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/userinfo/userinfo-flow.xml b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/userinfo/userinfo-flow.xml
index 64dc7fb2..a4d8d709 100644
--- a/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/userinfo/userinfo-flow.xml
+++ b/idp-oidc-extension-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/oidc/userinfo/userinfo-flow.xml
@@ -34,7 +34,7 @@
</action-state>
<decision-state id="CheckInboundInterceptContext">
- <if test="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
+ <if test="opensamlProfileRequestContext.ensureSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).getAvailableFlows().isEmpty()"
then="OutboundContextsAndSecurityParameters" else="DoInboundInterceptSubflow" />
</decision-state>
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list