[java-identity-provider COMMIT] in /trunk/idp-conf/src/main/resources: conf/errors.xml messages/authn-messages.proper...
noreply at shibboleth.net
noreply at shibboleth.net
Wed Oct 28 18:44:17 EDT 2015
Author: scantor
Date: Wed Oct 28 18:44:17 2015
New Revision: 7900
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=7900&view=rev
Log:
IDP-224 - Single Logout implementation
Rework async and logout responses as system views
Match result of LogoutResponse to JSON format of CAS prop flow
Added:
trunk/idp-conf/src/main/resources/system/views/logout/saml-async.vm (with props)
trunk/idp-conf/src/main/resources/system/views/logout/saml-result.vm (with props)
Modified:
trunk/idp-conf/src/main/resources/conf/errors.xml
trunk/idp-conf/src/main/resources/messages/authn-messages.properties
trunk/idp-conf/src/main/resources/system/flows/saml/saml2/slo-front-abstract-flow.xml
Modified: trunk/idp-conf/src/main/resources/conf/errors.xml
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-conf/src/main/resources/conf/errors.xml?rev=7900&r1=7899&r2=7900&view=diff
==============================================================================
--- trunk/idp-conf/src/main/resources/conf/errors.xml (original)
+++ trunk/idp-conf/src/main/resources/conf/errors.xml Wed Oct 28 18:44:17 2015
@@ -14,8 +14,7 @@
<!-- Map local events to alternate view templates. -->
<util:map id="shibboleth.EventViewMap">
- <!-- Handles final result of SAML 2 LogoutResponse messages. -->
- <entry key="LogoutResponse" value="logout-response" />
+ <!-- <entry key="EventToChange" value="viewname" /> -->
</util:map>
<!--
Modified: trunk/idp-conf/src/main/resources/messages/authn-messages.properties
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-conf/src/main/resources/messages/authn-messages.properties?rev=7900&r1=7899&r2=7900&view=diff
==============================================================================
--- trunk/idp-conf/src/main/resources/messages/authn-messages.properties (original)
+++ trunk/idp-conf/src/main/resources/messages/authn-messages.properties Wed Oct 28 18:44:17 2015
@@ -66,9 +66,3 @@
idp.logout.complete = The logout operation is complete, and no other services appear to have been accessed during this session.
idp.logout.local = You elected not to log out of all the applications accessed during your session.
idp.logout.attempt = Attempting to log out of the following services:
-
-AsyncLogout = async-logout
-
-async-logout.title = Logout Completed
-async-logout.message = Logout complete. Service provider requested no response.
-
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=7900&r1=7899&r2=7900&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 Wed Oct 28 18:44:17 2015
@@ -11,16 +11,17 @@
<transition on="proceed" to="DecodeMessage" />
</action-state>
+
+ <!--
+ This flow pulls double duty handling LogoutRequest and LogoutResponse.
+ Response handling is just translating the status of the LogoutResponse into a JSON
+ result compatible with the logout propagation flow contract.
+ -->
<decision-state id="DoProfileWork">
<if test="opensamlProfileRequestContext.getInboundMessageContext().getMessage() instanceof T(org.opensaml.saml.saml2.core.LogoutResponse)"
- then="DoLogoutResponse" else="PopulateClientStorageLoadContext"/>
- </decision-state>
-
- <action-state id="DoLogoutResponse">
- <evaluate expression="'LogoutResponse'" />
- <transition to="HandleSuccessWithView" />
- </action-state>
+ then="LogoutResponseView" else="PopulateClientStorageLoadContext"/>
+ </decision-state>
<!-- Load client storage if needed. -->
@@ -137,17 +138,68 @@
<decision-state id="CheckAsync">
<if test="opensamlProfileRequestContext.getInboundMessageContext().getMessage().getExtensions() == null or opensamlProfileRequestContext.getInboundMessageContext().getMessage().getExtensions().getUnknownXMLObjects(T(org.opensaml.saml.ext.saml2aslo.Asynchronous).DEFAULT_ELEMENT_NAME).isEmpty()"
- then="BuildResponse" else="DoAsync" />
- </decision-state>
-
- <action-state id="DoAsync">
- <evaluate expression="'AsyncLogout'" />
- <transition to="HandleSuccessWithView" />
- </action-state>
-
- <!-- Same machinery as error view, but writes audit log unconditionally. -->
-
- <end-state id="HandleSuccessWithView" view="#{MapEventToView.apply(currentEvent)}">
+ then="BuildResponse" else="AsyncLogoutView" />
+ </decision-state>
+
+ <action-state id="BuildResponse">
+ <evaluate expression="AddLogoutResponse" />
+ <evaluate expression="AddInResponseToToResponse" />
+
+ <evaluate expression="'proceed'" />
[... 134 lines stripped ...]
More information about the commits
mailing list