[java-identity-provider COMMIT] /trunk/idp-conf/src/main/resources/system/flows/saml/saml2/slo-front-abstract-flow.xml
noreply at shibboleth.net
noreply at shibboleth.net
Mon Nov 2 17:48:52 EST 2015
Author: scantor
Date: Mon Nov 2 17:48:52 2015
New Revision: 7918
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=7918&view=rev
Log:
IDP-224 - Bypass outbound context and inbound Subject work for a LogoutResponse.
Modified:
trunk/idp-conf/src/main/resources/system/flows/saml/saml2/slo-front-abstract-flow.xml
Modified: trunk/idp-conf/src/main/resources/system/flows/saml/saml2/slo-front-abstract-flow.xml
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-conf/src/main/resources/system/flows/saml/saml2/slo-front-abstract-flow.xml?rev=7918&r1=7917&r2=7918&view=diff
==============================================================================
--- trunk/idp-conf/src/main/resources/system/flows/saml/saml2/slo-front-abstract-flow.xml (original)
+++ trunk/idp-conf/src/main/resources/system/flows/saml/saml2/slo-front-abstract-flow.xml Mon Nov 2 17:48:52 2015
@@ -18,14 +18,24 @@
result compatible with the logout propagation flow contract.
-->
- <decision-state id="DoProfileWork">
+ <!--
+ We splice into the parent flow by checking for a LogoutResponse after the inbound
+ message subflow runs, to bypass the rest of the parent flow. Anything else passes
+ control back to the next parent state.
+ -->
+ <subflow-state id="DoInboundInterceptSubflow">
+ <transition on="proceed" to="CheckLogoutResponse" />
+ </subflow-state>
+
+ <decision-state id="CheckLogoutResponse">
+ <!-- If parent DoInboundInterceptSubflow transition changes on 'proceed', the else clause needs to also change. -->
<if test="opensamlProfileRequestContext.getInboundMessageContext().getMessage() instanceof T(org.opensaml.saml.saml2.core.LogoutResponse)"
- then="LogoutResponseView" else="PopulateClientStorageLoadContext"/>
- </decision-state>
-
- <!-- Load client storage if needed. -->
-
- <action-state id="PopulateClientStorageLoadContext">
+ then="LogoutResponseView" else="OutboundContextsAndSecurityParameters"/>
+ </decision-state>
+
+ <!-- LogoutRequest handling starts by loading client storage if needed. -->
+
+ <action-state id="DoProfileWork">
<evaluate expression="PopulateClientStorageLoadContext" />
<evaluate expression="'proceed'" />
More information about the commits
mailing list