[java-plugin-shibd-saml] branch main updated: WIP for SAML assertion consumer service flow.

Scott Cantor cantor.2 at osu.edu
Tue Aug 27 18:58:49 UTC 2024


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

scantor pushed a commit to branch main
in repository java-plugin-shibd-saml.

View the commit online:
http://git.shibboleth.net/view/?p=java-plugin-shibd-saml.git;a=commit;h=5d0161df4e13cf34e8cae3c45053b9b2c1396810

The following commit(s) were added to refs/heads/main by this push:
     new 5d0161d  WIP for SAML assertion consumer service flow.
5d0161d is described below

commit 5d0161df4e13cf34e8cae3c45053b9b2c1396810
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Aug 27 14:58:47 2024 -0400

    WIP for SAML assertion consumer service flow.
---
 .../META-INF/net.shibboleth.idp/postconfig.xml     | 46 +++++++++++++++
 .../sp/consumer/saml2/saml2-abstract-beans.xml     | 45 ++++++++++++++
 .../sp/consumer/saml2/saml2-abstract-flow.xml      | 36 ++++++++++++
 .../sp/consumer/saml2/saml2-artifact-beans.xml     | 29 +++++++++
 .../sp/consumer/saml2/saml2-artifact-flow.xml      |  9 +++
 .../flows/sp/consumer/saml2/saml2-post-beans.xml   | 20 +++++++
 .../flows/sp/consumer/saml2/saml2-post-flow.xml    |  9 +++
 .../consumer/saml2/saml2-post-simplesign-beans.xml | 20 +++++++
 .../consumer/saml2/saml2-post-simplesign-flow.xml  |  9 +++
 .../idp/flows/sp/saml2/saml2-abstract-beans.xml    | 68 ++++++++++++++++++++++
 .../idp/flows/sp/saml2/saml2-abstract-flow.xml     | 33 +++++++++++
 11 files changed, 324 insertions(+)

diff --git a/sp-saml-conf-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml b/sp-saml-conf-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml
new file mode 100644
index 0000000..c2a9c08
--- /dev/null
+++ b/sp-saml-conf-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+    xmlns:context="http://www.springframework.org/schema/context"
+    xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p"
+    xmlns:c="http://www.springframework.org/schema/c" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:int="http://www.springframework.org/schema/integration"
+    xmlns:int-ip="http://www.springframework.org/schema/integration/ip"
+    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
+                           http://www.springframework.org/schema/integration https://www.springframework.org/schema/integration/spring-integration.xsd
+                           http://www.springframework.org/schema/integration/ip https://www.springframework.org/schema/integration/ip/spring-integration-ip.xsd"
+
+    default-init-method="initialize" default-destroy-method="destroy">
+    
+    <!-- Token consumer descriptors for each SAML binding. -->
+    
+    <bean p:id="sp/consumer/saml2-post" class="net.shibboleth.sp.profile.BasicTokenConsumerFlowDescriptor">
+        <property name="activationCondition">
+            <bean class="net.shibboleth.sp.profile.context.logic.HttpSeevletRequestPredicate"
+                p:allowedMethods="POST"
+                p:allowedContentTypes="application/x-www-form-urlencoded"
+                p:requiredParameters="SAMLResponse" />
+        </property>
+    </bean>
+
+    <bean p:id="sp/consumer/saml2-post-simplesign" class="net.shibboleth.sp.profile.BasicTokenConsumerFlowDescriptor">
+        <property name="activationCondition">
+            <bean class="net.shibboleth.sp.profile.context.logic.HttpSeevletRequestPredicate"
+                p:allowedMethods="POST"
+                p:allowedContentTypes="application/x-www-form-urlencoded"
+                p:requiredParameters="SAMLResponse" />
+        </property>
+    </bean>
+
+    <bean p:id="sp/consumer/saml2-artifact" class="net.shibboleth.sp.profile.BasicTokenConsumerFlowDescriptor">
+        <property name="activationCondition">
+            <bean class="net.shibboleth.sp.profile.context.logic.HttpSeevletRequestPredicate"
+                p:allowedMethods="#{{ 'GET', POST' }}"
+                p:allowedContentTypes="application/x-www-form-urlencoded"
+                p:allowNullContentType="true"
+                p:requiredParameters="SAMLart" />
+        </property>
+    </bean>
+
+</beans>
diff --git a/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-abstract-beans.xml b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-abstract-beans.xml
new file mode 100644
index 0000000..a54ad5f
--- /dev/null
+++ b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-abstract-beans.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:c="http://www.springframework.org/schema/c"
+    xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
+    xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
+    default-init-method="initialize" default-destroy-method="destroy">
+
+    <bean id="HandleResponse" parent="WebFlowInboundMessageHandlerAdaptor" scope="prototype">
+        <constructor-arg>
+            <bean class="org.opensaml.messaging.handler.impl.BasicMessageHandlerChain">
+                <property name="handlers">
+                    <list>
+<!--                        <bean class="org.opensaml.saml.common.binding.security.impl.InResponseToSecurityHandler" scope="prototype" />-->
+                        <bean class="org.opensaml.saml.common.binding.security.impl.ReceivedEndpointSecurityHandler" scope="prototype"
+                            p:httpServletRequestSupplier-ref="shibboleth.RemotedHttpServletRequestSupplier" />
+                        <bean class="org.opensaml.saml.common.binding.security.impl.MessageReplaySecurityHandler" scope="prototype"
+                            p:replayCache-ref="shibboleth.ReplayCache"
+                            p:expires="%{sp.policy.messageLifetime:PT3M}" />
+                        <bean class="org.opensaml.saml.common.binding.security.impl.MessageLifetimeSecurityHandler" scope="prototype"
+                            p:messageLifetime="%{sp.policy.messageLifetime:PT3M}"
+                            p:clockSkew="%{sp.policy.clockSkew:PT3M}" />
+                        <bean class="org.opensaml.saml.common.binding.security.impl.SAMLProtocolMessageXMLSignatureSecurityHandler" scope="prototype" />
+                        <bean class="org.opensaml.saml.saml2.binding.security.impl.SAML2HTTPPostSimpleSignSecurityHandler" scope="prototype"
+                            p:httpServletRequestSupplier-ref="shibboleth.RemotedHttpServletRequestSupplier"
+                            p:parser-ref="shibboleth.ParserPool"
+                            p:keyInfoResolver-ref="shibboleth.KeyInfoCredentialResolver" />
+                        <bean class="org.opensaml.messaging.handler.impl.CheckMandatoryIssuer" scope="prototype"
+                            p:issuerLookupStrategy-ref="InboundEntityIDLookup" />
+                        <bean class="org.opensaml.messaging.handler.impl.CheckExpectedIssuer" scope="prototype"
+                            p:issuerLookupStrategy-ref="InboundEntityIDLookup"
+                            p:expectedIssuerLookupStrategy-ref="OutboundEntityIDLookup" />
+                        <bean class="org.opensaml.messaging.handler.impl.FunctionMessageHandler" scope="prototype"
+                            p:function="#{getObject('%{sp.saml.inboundMessageHandlerFunction:}'.trim())}" />
+                    </list>
+                </property>
+             </bean>
+        </constructor-arg>
+        <property name="errorEvent">
+            <util:constant static-field="org.opensaml.profile.action.EventIds.INVALID_MESSAGE" />
+        </property>
+    </bean>
+
+</beans>
diff --git a/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-abstract-flow.xml b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-abstract-flow.xml
new file mode 100644
index 0000000..c1fbc84
--- /dev/null
+++ b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-abstract-flow.xml
@@ -0,0 +1,36 @@
+<flow xmlns="http://www.springframework.org/schema/webflow" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.springframework.org/schema/webflow http://www.springframework.org/schema/webflow/spring-webflow.xsd"
+    abstract="true" parent="sp/consumer, sp/saml2-abstract">
+
+    <!-- Need a dummy state to prepend to parent flow to pass control to it. -->
+    <action-state id="InitialState">
+<!--        <evaluate expression="FlowStartPopulateAuditContext" />-->
+        <evaluate expression="'proceed'" />
+        
+        <!-- Transitions to preamble implemented by abstract parent flow. -->
+        <transition on="proceed" to="DecodeMessage" />
+    </action-state>
+
+    <!-- Picks work back up from abstract parent flow. -->
+    <action-state id="DoProfileWork">
+        <evaluate expression="HandleResponse" />
+        <evaluate expression="PopulateDecryptionParameters" />
+        <evaluate expression="DecryptAssertions" />
+        <evaluate expression="ValidateAssertions" />
+        <evaluate expression="DecryptNameIDs" />
+        <evaluate expression="DecryptAttributes" />
+        <evaluate expression="ProcessAssertionsForAuthentication" />
+        <evaluate expression="ValidateSAMLAuthentication" />
+<!--        <evaluate expression="PostAssertionPopulateAuditContext" />-->
+<!--        <evaluate expression="PostResponsePopulateAuditContext" />-->
+        
+        <evaluate expression="'proceed'" />
+        
+        <transition on="proceed" to="TBD" />
+    </action-state>
+    
+    <!-- The file really exists in this directory, but it's referenced from extending flow-directories -->
+    <bean-import resource="classpath:/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-abstract-beans.xml" />
+
+</flow>
diff --git a/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-artifact-beans.xml b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-artifact-beans.xml
new file mode 100644
index 0000000..c9fa203
--- /dev/null
+++ b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-artifact-beans.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:c="http://www.springframework.org/schema/c"
+    xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
+    xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
+    default-init-method="initialize" default-destroy-method="destroy">
+
+    <bean id="DecodeMessage" class="net.shibboleth.sp.profile.impl.DecodeMessage" scope="prototype"
+            p:messageType="org.opensaml.saml.saml2.core.Response">
+        <constructor-arg>
+            <bean class="org.opensaml.saml.saml2.binding.decoding.impl.HTTPArtifactDecoder" scope="prototype"
+                p:parserPool-ref="shibboleth.ParserPool"
+                p:httpServletRequestSupplier-ref="shibboleth.RemotedHttpServletRequestSupplier"
+                p:bindingDescriptor-ref="shibboleth.Binding.SAML2Artifact"
+                p:peerEntityRole="#{T(org.opensaml.saml.saml2.metadata.IDPSSODescriptor).DEFAULT_ELEMENT_NAME}"
+                p:roleDescriptorResolver-ref="shibboleth.RoleDescriptorResolver"
+                p:identifierGenerationStrategy-ref="shibboleth.DefaultIdentifierGenerationStrategy"
+                p:selfEntityIDResolver-ref="ArtifactSupport.SelfEntityIDResolver"
+                p:artifactEndpointResolver-ref="shibboleth.EndpointResolver"
+                p:SOAPClient-ref="shibboleth.SOAPClient.SAML"
+                p:SOAPPipelineName="SP.SAML2.ArtifactDecoder"
+                p:SOAPClientSecurityConfigurationProfileId="#{T(net.shibboleth.saml.saml2.profile.config.BrowserSSOProfileConfiguration).PROFILE_ID}"
+                />
+        </constructor-arg>
+    </bean>
+
+</beans>
diff --git a/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-artifact-flow.xml b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-artifact-flow.xml
new file mode 100644
index 0000000..f9dc154
--- /dev/null
+++ b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-artifact-flow.xml
@@ -0,0 +1,9 @@
+<flow xmlns="http://www.springframework.org/schema/webflow" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.springframework.org/schema/webflow http://www.springframework.org/schema/webflow/spring-webflow.xsd"
+    parent="sp/consumer/saml2-abstract">
+
+    <!-- The file really exists in this directory, but it's referenced from extending flow-directories -->
+    <bean-import resource="classpath:/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-artifact-beans.xml" />
+
+</flow>
diff --git a/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-post-beans.xml b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-post-beans.xml
new file mode 100644
index 0000000..2e97960
--- /dev/null
+++ b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-post-beans.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:c="http://www.springframework.org/schema/c"
+    xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
+    xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
+    default-init-method="initialize" default-destroy-method="destroy">
+
+    <bean id="DecodeMessage" class="net.shibboleth.sp.profile.impl.DecodeMessage" scope="prototype"
+            p:messageType="org.opensaml.saml.saml2.core.Response">
+        <constructor-arg>
+            <bean class="org.opensaml.saml.saml2.binding.decoding.impl.HTTPPostDecoder" scope="prototype"
+                p:parserPool-ref="shibboleth.ParserPool"
+                p:httpServletRequestSupplier-ref="shibboleth.RemotedHttpServletRequestSupplier"
+                p:bindingDescriptor-ref="shibboleth.Binding.SAML2POST" />
+        </constructor-arg>
+    </bean>
+
+</beans>
diff --git a/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-post-flow.xml b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-post-flow.xml
new file mode 100644
index 0000000..c8a42ee
--- /dev/null
+++ b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-post-flow.xml
@@ -0,0 +1,9 @@
+<flow xmlns="http://www.springframework.org/schema/webflow" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.springframework.org/schema/webflow http://www.springframework.org/schema/webflow/spring-webflow.xsd"
+    parent="sp/consumer/saml2-abstract">
+
+    <!-- The file really exists in this directory, but it's referenced from extending flow-directories -->
+    <bean-import resource="classpath:/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-post-beans.xml" />
+
+</flow>
diff --git a/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-post-simplesign-beans.xml b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-post-simplesign-beans.xml
new file mode 100644
index 0000000..0f354ee
--- /dev/null
+++ b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-post-simplesign-beans.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:c="http://www.springframework.org/schema/c"
+    xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
+    xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
+    default-init-method="initialize" default-destroy-method="destroy">
+
+    <bean id="DecodeMessage" class="net.shibboleth.sp.profile.impl.DecodeMessage" scope="prototype"
+            p:messageType="org.opensaml.saml.saml2.core.Response">
+        <constructor-arg>
+            <bean class="org.opensaml.saml.saml2.binding.decoding.impl.HTTPPostSimpleSignDecoder" scope="prototype"
+                p:parserPool-ref="shibboleth.ParserPool"
+                p:httpServletRequestSupplier-ref="shibboleth.RemotedHttpServletRequestSupplier"
+                p:bindingDescriptor-ref="shibboleth.Binding.SAML2POSTSimpleSign" />
+        </constructor-arg>
+    </bean>
+
+</beans>
diff --git a/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-post-simplesign-flow.xml b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-post-simplesign-flow.xml
new file mode 100644
index 0000000..2684446
--- /dev/null
+++ b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-post-simplesign-flow.xml
@@ -0,0 +1,9 @@
+<flow xmlns="http://www.springframework.org/schema/webflow" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.springframework.org/schema/webflow http://www.springframework.org/schema/webflow/spring-webflow.xsd"
+    parent="sp/consumer/saml2-abstract">
+
+    <!-- The file really exists in this directory, but it's referenced from extending flow-directories -->
+    <bean-import resource="classpath:/META-INF/net/shibboleth/idp/flows/sp/consumer/saml2/saml2-post-simplesign-beans.xml" />
+
+</flow>
diff --git a/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/saml2/saml2-abstract-beans.xml b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/saml2/saml2-abstract-beans.xml
new file mode 100644
index 0000000..e9cd707
--- /dev/null
+++ b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/saml2/saml2-abstract-beans.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans" xmlns:c="http://www.springframework.org/schema/c"
+    xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
+    xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+                           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
+                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
+    default-init-method="initialize" default-destroy-method="destroy">
+
+    <bean id="WebFlowInboundMessageHandlerAdaptor"
+        class="net.shibboleth.idp.profile.impl.WebFlowMessageHandlerAdaptor" scope="prototype" abstract="true"
+        c:executionDirection="INBOUND" />
+
+    <bean id="CheckMessageVersion" parent="WebFlowInboundMessageHandlerAdaptor" scope="prototype">
+        <constructor-arg name="messageHandler">
+            <bean class="org.opensaml.saml.common.binding.impl.CheckMessageVersionHandler" scope="prototype"
+                p:ignoreMissingOrUnrecognized="true" />
+        </constructor-arg>
+        <property name="errorEvent">
+            <util:constant static-field="org.opensaml.profile.action.EventIds.INVALID_MESSAGE_VERSION" />
+        </property>
+    </bean>
+
+    <util:constant id="shibboleth.MetadataLookup.Protocol"
+        static-field="org.opensaml.saml.common.xml.SAMLConstants.SAML20P_NS" />
+
+    <util:constant id="shibboleth.MetadataLookup.Role"
+        static-field="org.opensaml.saml.saml2.metadata.IDPSSODescriptor.DEFAULT_ELEMENT_NAME" />
+
+    <bean id="SAMLProtocolAndRole" parent="WebFlowInboundMessageHandlerAdaptor" scope="prototype">
+        <constructor-arg name="messageHandler">
+            <bean class="org.opensaml.saml.common.binding.impl.SAMLProtocolAndRoleHandler" scope="prototype"
+                p:protocol-ref="shibboleth.MetadataLookup.Protocol"
+                p:role-ref="shibboleth.MetadataLookup.Role" />
+        </constructor-arg>
+    </bean>
+    
+    <bean id="SAMLMetadataLookup" parent="WebFlowInboundMessageHandlerAdaptor" scope="prototype">
+        <constructor-arg name="messageHandler">
+            <bean class="org.opensaml.saml.common.binding.impl.SAMLMetadataLookupHandler" scope="prototype">
+                <property name="roleDescriptorResolverLookupStrategy">
+                    <bean class="net.shibboleth.sp.profile.context.navigate.messaging.ApplicationMetadataResolverLookupFunction" />
+                </property>
+            </bean>
+        </constructor-arg>
+    </bean>
+
+    <bean id="InitializeRelyingPartyContextFromSAMLPeer"
+        class="net.shibboleth.idp.saml.profile.impl.InitializeRelyingPartyContextFromSAMLPeer" scope="prototype" />
+
+    <bean id="SelectRelyingPartyConfiguration"
+        class="net.shibboleth.sp.profile.impl.SelectRelyingPartyConfiguration" scope="prototype" />
+
+    <bean id="SelectProfileConfiguration"
+        class="net.shibboleth.idp.profile.impl.SelectProfileConfiguration" scope="prototype"
+        p:profileId="#{T(net.shibboleth.saml.saml2.profile.config.BrowserSSOProfileConfiguration).PROFILE_ID}" />
+
+    <bean id="PopulateSignatureValidationParameters"
+        class="org.opensaml.profile.action.impl.PopulateSignatureValidationParameters" scope="prototype"
+        p:configurationLookupStrategy-ref="shibboleth.SignatureValidationConfigurationLookup"
+        p:signatureValidationParametersResolver-ref="shibboleth.SignatureValidationParametersResolver" />
+
+    <bean id="PopulateClientTLSValidationParameters"
+        class="org.opensaml.profile.action.impl.PopulateClientTLSValidationParameters" scope="prototype"
+        p:configurationLookupStrategy-ref="shibboleth.ClientTLSValidationConfigurationLookup"
+        p:clientTLSValidationParametersResolver-ref="shibboleth.ClientTLSValidationParametersResolver" />
+
+</beans>
diff --git a/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/saml2/saml2-abstract-flow.xml b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/saml2/saml2-abstract-flow.xml
new file mode 100644
index 0000000..b946d22
--- /dev/null
+++ b/sp-saml-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/saml2/saml2-abstract-flow.xml
@@ -0,0 +1,33 @@
+<flow xmlns="http://www.springframework.org/schema/webflow" 
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://www.springframework.org/schema/webflow http://www.springframework.org/schema/webflow/spring-webflow.xsd"
+    abstract="true">
+
+    <action-state id="DecodeMessage">
+<!--        <evaluate expression="PopulateMetricContext" />-->
+        <evaluate expression="DecodeMessage" />
+<!--        <evaluate expression="PostDecodePopulateAuditContext" />-->
+
+        <evaluate expression="CheckMessageVersion" />
+        <evaluate expression="SAMLProtocolAndRole" />
+        <evaluate expression="SAMLMetadataLookup" />
+
+        <evaluate expression="InitializeRelyingPartyContextFromSAMLPeer" />
+        <evaluate expression="SelectRelyingPartyConfiguration" />
+
+<!--        <evaluate expression="PostLookupPopulateAuditContext" />-->
+
+        <evaluate expression="SelectProfileConfiguration" />
+
+        <evaluate expression="PopulateSignatureValidationParameters" />
+        <evaluate expression="PopulateClientTLSValidationParameters" />
+
+        <evaluate expression="'proceed'" />
+        
+        <transition on="proceed" to="DoProfileWork" />
+    </action-state>
+    
+    <!-- The file really exists in this directory, but it's referenced from extending flow-directories -->
+    <bean-import resource="classpath:/META-INF/net/shibboleth/idp/flows/sp/saml2/saml2-abstract-beans.xml" />
+
+</flow>

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


More information about the commits mailing list