[java-identity-provider COMMIT] in /trunk: idp-conf/src/main/resources/conf/error-mappings.xml idp-conf/src/main/reso...
noreply at shibboleth.net
noreply at shibboleth.net
Tue Sep 9 13:47:42 EDT 2014
Author: scantor
Date: Tue Sep 9 13:47:41 2014
New Revision: 6517
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=6517&view=rev
Log:
IDP-224 - Add trivial processing of SAML logout responses.
Added:
trunk/idp-conf/src/main/resources/views/logout-response.vm (with props)
trunk/idp-war/src/main/webapp/WEB-INF/jsp/logout-response.jsp (with props)
Modified:
trunk/idp-conf/src/main/resources/conf/error-mappings.xml
trunk/idp-conf/src/main/resources/system/flows/saml/saml2/slo-front-abstract-flow.xml
Modified: trunk/idp-conf/src/main/resources/conf/error-mappings.xml
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-conf/src/main/resources/conf/error-mappings.xml?rev=6517&r1=6516&r2=6517&view=diff
==============================================================================
--- trunk/idp-conf/src/main/resources/conf/error-mappings.xml (original)
+++ trunk/idp-conf/src/main/resources/conf/error-mappings.xml Tue Sep 9 13:47:41 2014
@@ -12,13 +12,15 @@
<bean id="shibboleth.DefaultErrorView" class="java.lang.String" c:_0="%{idp.errors.defaultView:error}" />
<!-- If desired, map events to alternate error view templates. -->
+ <util:map id="shibboleth.EventViewMap">
<!--
- <util:map id="shibboleth.EventViewMap">
<entry key="MessageReplay" value="stale-error" />
<entry key="MessageExpired" value="stale-error" />
<entry key="UnableToDecode" value="stale-error" />
+ -->
+ <!-- Handles final result of SAML 2 LogoutResponse messages. -->
+ <entry key="LogoutResponse" value="logout-response" />
</util:map>
- -->
<!-- List of events to trap and handle with local views, without returning to SPs. -->
<!--
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=6517&r1=6516&r2=6517&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 Tue Sep 9 13:47:41 2014
@@ -11,8 +11,18 @@
<transition on="proceed" to="DecodeMessage" />
</action-state>
+
+ <decision-state id="DoProfileWork">
+ <if test="opensamlProfileRequestContext.getInboundMessageContext().getMessage() instanceof T(org.opensaml.saml.saml2.core.LogoutResponse)"
+ then="DoLogoutResponse" else="DoLogoutRequest"/>
+ </decision-state>
- <action-state id="DoProfileWork">
+ <action-state id="DoLogoutResponse">
+ <evaluate expression="'LogoutResponse'" />
+ <transition to="HandleSuccessWithView" />
+ </action-state>
+
+ <action-state id="DoLogoutRequest">
<evaluate expression="ProcessLogoutRequest" />
<evaluate expression="LogoutPopulateAuditContext" />
<evaluate expression="PopulateMultiRPContextFromLogoutContext" />
@@ -40,7 +50,6 @@
<view-state id="LogoutView" view="logout">
<on-render>
<evaluate expression="opensamlProfileRequestContext" result="viewScope.profileRequestContext" />
- <evaluate expression="opensamlProfileRequestContext.getInboundMessageContext().getMessage().getExtensions() != null and !opensamlProfileRequestContext.getInboundMessageContext().getMessage().getExtensions().getUnknownXMLObjects(T(org.opensaml.saml.ext.saml2aslo.Asynchronous).DEFAULT_ELEMENT_NAME).isEmpty()" result="viewScope.asynchronous" />
<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="T(net.shibboleth.utilities.java.support.codec.HTMLEncoder)" result="viewScope.encoder" />
@@ -57,12 +66,12 @@
<action-state id="DoAsync">
<evaluate expression="'AsyncLogout'" />
- <transition to="HandleAsyncWithView" />
+ <transition to="HandleSuccessWithView" />
</action-state>
- <!-- Same machinery as error view, but writes the audit log unconditionally. -->
+ <!-- Same machinery as error view, but writes audit log unconditionally. -->
- <end-state id="HandleAsyncWithView" view="#{MapEventToView.apply(currentEvent)}">
+ <end-state id="HandleSuccessWithView" view="#{MapEventToView.apply(currentEvent)}">
<on-entry>
<evaluate expression="ErrorViewPopulateAuditContext" />
<evaluate expression="WriteAuditLog" />
More information about the commits
mailing list