[java-identity-provider COMMIT] in /trunk/idp-conf/src/main/resources: system/flows/saml/saml2/slo-front-abstract-flo...
noreply at shibboleth.net
noreply at shibboleth.net
Mon Sep 8 22:02:51 EDT 2014
Author: scantor
Date: Mon Sep 8 22:02:51 2014
New Revision: 6512
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=6512&view=rev
Log:
IDP-224 - Move async logout handling out of view into flow.
Modified:
trunk/idp-conf/src/main/resources/system/flows/saml/saml2/slo-front-abstract-flow.xml
trunk/idp-conf/src/main/resources/views/logout.vm
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=6512&r1=6511&r2=6512&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 Sep 8 22:02:51 2014
@@ -47,9 +47,31 @@
<evaluate expression="flowRequestContext.getExternalContext().getNativeRequest()" result="viewScope.request" />
<evaluate expression="flowRequestContext.getExternalContext().getNativeResponse()" result="viewScope.response" />
</on-render>
- <transition on="proceed" to="BuildResponse" />
- <transition on="AsyncLogout" to="HandleErrorWithView" />
+ <transition on="proceed" to="CheckAsync" />
</view-state>
+
+ <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="HandleAsyncWithView" />
+ </action-state>
+
+ <!-- Same machinery as error view, but writes the audit log unconditionally. -->
+
+ <end-state id="HandleAsyncWithView" view="#{MapEventToView.apply(currentEvent)}">
+ <on-entry>
+ <evaluate expression="ErrorViewPopulateAuditContext" />
+ <evaluate expression="WriteAuditLog" />
+ <evaluate expression="opensamlProfileRequestContext" result="requestScope.profileRequestContext" />
+ <evaluate expression="T(net.shibboleth.utilities.java.support.codec.HTMLEncoder)" result="requestScope.encoder" />
+ <evaluate expression="flowRequestContext.getExternalContext().getNativeRequest()" result="requestScope.request" />
+ <evaluate expression="flowRequestContext.getExternalContext().getNativeResponse()" result="requestScope.response" />
+ </on-entry>
+ </end-state>
<action-state id="BuildResponse">
<evaluate expression="AddLogoutResponse" />
Modified: trunk/idp-conf/src/main/resources/views/logout.vm
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-conf/src/main/resources/views/logout.vm?rev=6512&r1=6511&r2=6512&view=diff
==============================================================================
--- trunk/idp-conf/src/main/resources/views/logout.vm (original)
+++ trunk/idp-conf/src/main/resources/views/logout.vm Mon Sep 8 22:02:51 2014
@@ -17,6 +17,9 @@
<meta charset="utf-8" />
<title>Example Logout Page</title>
<link rel="stylesheet" type="text/css" href="$request.getContextPath()/css/main.css"/>
+ <style type="text/css">
+ iframe#buffer { position:absolute; visibility:hidden; left:0; top:0; } */
+ </style>
</head>
<body>
@@ -65,14 +68,9 @@
</div>
</div>
+ <!-- If flowExecutionUrl set, complete the flow by adding a hidden iframe. -->
#if ( $flowExecutionUrl )
- <p align="center">
- #if ( $asynchronous )
- <iframe width="800" src="$flowExecutionUrl&_eventId_AsyncLogout" />
- #else
- <iframe width="800" src="$flowExecutionUrl&_eventId_proceed" />
- #end
- </p>
+ <iframe id="buffer" src="$flowExecutionUrl&_eventId_proceed" />
#end
<footer>
More information about the commits
mailing list