[java-identity-provider] branch master updated: IDP-465 - Add consent subflow to SAML 1 attribute query

Tom Zeller tzeller at dragonacea.biz
Thu Sep 27 11:03:10 EDT 2018


This is an automated email from the git hooks/post-receive script.

tzeller pushed a commit to branch master
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=182c2f83a388c015d2a821f862d7b4cef5e0fd04

The following commit(s) were added to refs/heads/master by this push:
       new  182c2f8   IDP-465 - Add consent subflow to SAML 1 attribute query
182c2f8 is described below

commit 182c2f83a388c015d2a821f862d7b4cef5e0fd04
Author: Tom Zeller <tzeller at dragonacea.biz>
AuthorDate: Thu Sep 27 10:02:54 2018 -0500

    IDP-465 - Add consent subflow to SAML 1 attribute query
    
    https://issues.shibboleth.net/jira/browse/IDP-465
---
 .../flows/saml/saml1/attribute-query-beans.xml       | 17 +++++++++++++++++
 .../system/flows/saml/saml1/attribute-query-flow.xml | 20 ++++++++++++++++++++
 2 files changed, 37 insertions(+)

diff --git a/idp-conf/src/main/resources/system/flows/saml/saml1/attribute-query-beans.xml b/idp-conf/src/main/resources/system/flows/saml/saml1/attribute-query-beans.xml
index 57bc868..f2d2ee7 100644
--- a/idp-conf/src/main/resources/system/flows/saml/saml1/attribute-query-beans.xml
+++ b/idp-conf/src/main/resources/system/flows/saml/saml1/attribute-query-beans.xml
@@ -16,6 +16,7 @@
         p:placeholderPrefix="%{" p:placeholderSuffix="}" />
 
     <import resource="common-beans.xml" />
+    <import resource="../../../../conf/intercept/consent-intercept-config.xml" />
     
     <bean id="InitializeProfileRequestContext"
         class="net.shibboleth.idp.profile.impl.InitializeProfileRequestContext" scope="prototype"
@@ -63,4 +64,20 @@
         </property>
     </bean>
 
+    <bean id="PopulateConsentInterceptContext"
+        class="net.shibboleth.idp.profile.interceptor.impl.PopulateProfileInterceptorContext" scope="prototype">
+        <property name="availableFlows">
+            <bean class="org.springframework.beans.factory.config.ListFactoryBean">
+                <property name="sourceList">
+                    <list>
+                        <ref bean="intercept/attribute-release-query" />
+                    </list>
+                </property>
+            </bean>
+        </property>
+        <property name="activeFlowsLookupStrategy">
+            <bean class="com.google.common.base.Functions" factory-method="constant" c:_0="#{ {'attribute-release-query' } }" />
+        </property>
+    </bean>
+
 </beans>
diff --git a/idp-conf/src/main/resources/system/flows/saml/saml1/attribute-query-flow.xml b/idp-conf/src/main/resources/system/flows/saml/saml1/attribute-query-flow.xml
index aa29069..b7a8174 100644
--- a/idp-conf/src/main/resources/system/flows/saml/saml1/attribute-query-flow.xml
+++ b/idp-conf/src/main/resources/system/flows/saml/saml1/attribute-query-flow.xml
@@ -18,7 +18,27 @@
         <evaluate expression="ResolveAttributes" />
         <evaluate expression="FilterAttributes" />
         <evaluate expression="FilterByQueriedAttributeDesignators" />
+        <evaluate expression="'proceed'" />
+        <transition on="proceed" to="CheckConsentCondition" />
+    </action-state>
+
+    <decision-state id="CheckConsentCondition">
+        <if test="flowRequestContext.getActiveFlow().getApplicationContext().containsBean('shibboleth.consent.AttributeQuery.Condition') and flowRequestContext.getActiveFlow().getApplicationContext().getBean('shibboleth.consent.AttributeQuery.Condition').apply(opensamlProfileRequestContext)"
+            then="ConsentSetup" else="ContinueProfileWork" />
+    </decision-state>
+
+    <action-state id="ConsentSetup">
+        <evaluate expression="PopulateConsentInterceptContext" />
+        <evaluate expression="opensamlProfileRequestContext.getSubcontext(T(net.shibboleth.idp.profile.context.ProfileInterceptorContext)).setAttemptedFlow(flowRequestContext.getActiveFlow().getApplicationContext().getBean('intercept/attribute-release-query'))" />
+        <transition on="success" to="ConsentFlow" />
+    </action-state>
+
+    <subflow-state id="ConsentFlow" subflow="intercept/attribute-release-query">
+        <input name="calledAsSubflow" value="true" />
+        <transition on="proceed" to="ContinueProfileWork"/>
+    </subflow-state>
 
+    <action-state id="ContinueProfileWork">
         <evaluate expression="AddResponseShell" />
         <evaluate expression="AddInResponseToToResponse" />
         

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list