[java-identity-provider COMMIT] in /trunk/idp-conf/src/main/resources/system/flows/cas/login: login-beans.xml login-f...

noreply at shibboleth.net noreply at shibboleth.net
Tue Aug 25 11:34:15 EDT 2015


Author: serac
Date: Tue Aug 25 11:34:15 2015
New Revision: 7706

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=7706&view=rev
Log:
IDP-791 Wire in client storage actions into CAS login flow.

https://issues.shibboleth.net/jira/projects/IDP/issues/IDP-791
Needs in-situ testing with consent+local storage enabled, which is
really the only use case for client storage use with CAS at present.

Modified:
    trunk/idp-conf/src/main/resources/system/flows/cas/login/login-beans.xml
    trunk/idp-conf/src/main/resources/system/flows/cas/login/login-flow.xml

Modified: trunk/idp-conf/src/main/resources/system/flows/cas/login/login-beans.xml
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-conf/src/main/resources/system/flows/cas/login/login-beans.xml?rev=7706&r1=7705&r2=7706&view=diff
==============================================================================
--- trunk/idp-conf/src/main/resources/system/flows/cas/login/login-beans.xml	(original)
+++ trunk/idp-conf/src/main/resources/system/flows/cas/login/login-beans.xml	Tue Aug 25 11:34:15 2015
@@ -14,6 +14,18 @@
           p:profileId="#{T(net.shibboleth.idp.cas.config.LoginConfiguration).PROFILE_ID}"
           p:loggingId="%{idp.service.logging.cas:SSO}"
           p:browserProfile="true" />
+
+    <bean id="PopulateClientStorageLoadContext"
+          class="org.opensaml.storage.impl.client.PopulateClientStorageLoadContext"
+          scope="prototype"
+          p:storageServices-ref="#{ getObject('shibboleth.ClientStorageServices') != null
+            ? 'shibboleth.ClientStorageServices' : 'shibboleth.DefaultClientStorageServices' }" />
+
+    <bean id="PopulateClientStorageSaveContext"
+          class="org.opensaml.storage.impl.client.PopulateClientStorageSaveContext"
+          scope="prototype"
+          p:storageServices-ref="#{ getObject('shibboleth.ClientStorageServices') != null
+            ? 'shibboleth.ClientStorageServices' : 'shibboleth.DefaultClientStorageServices' }" />
 
     <bean id="InitializeLogin"
           class="net.shibboleth.idp.cas.flow.InitializeLoginAction" />

Modified: trunk/idp-conf/src/main/resources/system/flows/cas/login/login-flow.xml
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-conf/src/main/resources/system/flows/cas/login/login-flow.xml?rev=7706&r1=7705&r2=7706&view=diff
==============================================================================
--- trunk/idp-conf/src/main/resources/system/flows/cas/login/login-flow.xml	(original)
+++ trunk/idp-conf/src/main/resources/system/flows/cas/login/login-flow.xml	Tue Aug 25 11:34:15 2015
@@ -17,9 +17,16 @@
         <evaluate expression="SelectRelyingPartyConfiguration" />
         <evaluate expression="SelectProfileConfiguration" />
         <evaluate expression="PublishProtocolRequest" />
+        <evaluate expression="PopulateClientStorageLoadContext" />
         <evaluate expression="'proceed'" />
-        <transition on="proceed" to="CheckAuthenticationRequired" />
+        <transition on="proceed" to="ClientStorageLoad" />
+        <transition on="NoLoadNeeded" to="CheckAuthenticationRequired" />
     </action-state>
+
+    <subflow-state id="ClientStorageLoad" subflow="client-storage/read">
+        <input name="calledAsSubflow" value="true" />
+        <transition on="proceed" to="CheckAuthenticationRequired"/>
+    </subflow-state>
 
     <action-state id="CheckAuthenticationRequired">
         <evaluate expression="CheckAuthenticationRequired"/>
@@ -100,11 +107,20 @@
     <action-state id="GrantServiceTicket">
         <evaluate expression="GrantServiceTicket" />
         <evaluate expression="PublishProtocolResponse" />
+        <evaluate expression="PopulateClientStorageSaveContext" />
         <evaluate expression="'proceed'" />
+        <transition on="proceed" to="ClientStorageSave" />
+        <transition on="NoSaveNeeded" to="RedirectToService">
+            <set name="flowScope.redirectUrl" value="flowScope.serviceTicketResponse.redirectUrl" />
+        </transition>
+    </action-state>
+
+    <subflow-state id="ClientStorageSave" subflow="client-storage/write">
+        <input name="calledAsSubflow" value="true" />
         <transition on="proceed" to="RedirectToService">
             <set name="flowScope.redirectUrl" value="flowScope.serviceTicketResponse.redirectUrl" />
         </transition>
-    </action-state>
+    </subflow-state>
 
     <!-- Redirect end states -->
     <end-state id="RedirectToService" view="externalRedirect:#{flowScope.redirectUrl}">



More information about the commits mailing list