<html><body><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><div data-marker="__QUOTED_TEXT__"><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000">Ian Young" <ian@iay.org.uk> wrote : <br><b></b><div><div><div><div>>Yes, there are a number of incompatibilities (the API will be finalised, I hope, in 0.10.0 but certainly in 1.0.0). The release notes cover these, but starting fresh can make sense too. It's a pity I don't have an >example a bit closer to what you're doing. "Aggregate and Republish" is worth looking at, though (see below).</div><br><div>Yes,  an example config to assemble MD for a self hosted federation (bundle of IDPs + SPs ) whould be grealty appreciated . </div></div><div><br class=""></div><div>>The issue here is that in order to set properties on a bean as XML attributes rather than nested <property> elements you need to use the "p:" namespace. Unfortunately that particular example doesn't >define it, although one of the other examples (Aggregate and Republish) does. So, from Aggregate and Republish:</div><div><div class="line number6 index5 alt1" style="margin: 0px; padding: 0px 1em; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; background-image: none; border: 0px; inset: auto; float: none; height: auto; line-height: 20px; outline: 0px; overflow: visible; position: static; vertical-align: baseline; width: auto; box-sizing: content-box; font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; font-size: 14px; min-height: inherit; white-space: nowrap; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51);"><code class="xml plain" style="font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; background-image: none; border: 0px; inset: auto; float: none; height: auto; line-height: 20px; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto; box-sizing: content-box; min-height: inherit; color: rgb(0, 0, 0) !important;">></code><code class="xml plain" style="font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", Courier, monospace; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; background-image: none; border: 0px; inset: auto; float: none; height: auto; line-height: 20px; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto; box-sizing: content-box; min-height: inherit; color: rgb(0, 0, 0) !important;"></code></div></div><div>>Attributes which are part of Spring XML configuration are given without a namespace, XML attributes setting bean properties are part of the "p:" namespace. This means that the names can't clash.</div><br><div>Ok, I added the load of the p: namespace with  <code class="xml color1" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; background-image: none; border: 0px; inset: auto; float: none; height: auto; line-height: 20px; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto; box-sizing: content-box; min-height: inherit; color: #808080 !important;">xmlns:p</code><code class="xml plain" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; background-image: none; border: 0px; inset: auto; float: none; height: auto; line-height: 20px; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto; box-sizing: content-box; min-height: inherit; color: #000000 !important;">=</code><code class="xml string" style="font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; background-image: none; border: 0px; inset: auto; float: none; height: auto; line-height: 20px; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto; box-sizing: content-box; min-height: inherit; color: #003366 !important;">"<a href="http://www.springframework.org/schema/p" style="text-decoration: none; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; background-image: none; border: 0px; inset: auto; float: none; height: auto; line-height: 20px; margin: 0px; outline: 0px; overflow: visible; padding: 0px; position: static; vertical-align: baseline; width: auto; box-sizing: content-box; min-height: inherit; color: #003366 !important;" class="" target="_blank" rel="noopener">http://www.springframework.org/schema/p</a>"</code><div style="clear: both;"><br></div><div style="clear: both;">But still , it fails now on another error : <br></div><div style="clear: both;"><br></div><div style="clear: both;"><span style="font-size: 10pt;"><em>[aggregator-cli]# ./mda.sh ../config-imt.xml main</em></span><br><span style="font-size: 10pt;"><em>ERROR - Unable to initialize Spring context</em></span><br><span style="font-size: 10pt;"><em>org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 21 in XML document from URL [file:/root/aggregator-cli-0.9.2/../config-imt.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 21; columnNumber: 45; cvc-complex-type.2.4.a: Invalid content was found starting with element '{"http://www.springframework.org/schema/beans":property}'. One of '{"http://www.springframework.org/schema/beans":import, "http://www.springframework.org/schema/beans":alias, "http://www.springframework.org/schema/beans":bean, WC[##other:"http://www.springframework.org/schema/beans"]}' is expected.</em></span><br><span style="font-size: 10pt;"><em>    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:399) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]</em></span><br><br></div><div style="clear: both;">Here is my current version of the MA1 config file , do you see where it could be wrong, and does it serve my purpose to aggregate IDPs and SPs from <em><span style="font-size: 10pt;">metadataDirectory => </span></em> <em><span style="font-size: 10pt;">/root/xml/fede-imt-metadata-git/</span></em> ? : <br></div><div style="clear: both;"><br></div><em><span style="font-size: 10pt;">[aggregator-cli]# cat  ../config-imt.xml</span></em><br><em><span style="font-size: 10pt;"><?xml version="1.0" encoding="UTF-8"?></span></em><br><em><span style="font-size: 10pt;"><beans default-init-method="initialize"</span></em><br><em><span style="font-size: 10pt;">       xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p"</span></em><br><em><span style="font-size: 10pt;">       xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</span></em><br><em><span style="font-size: 10pt;">       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd</span></em><br><em><span style="font-size: 10pt;">                           http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"></span></em><br><br><em><span style="font-size: 10pt;">     <bean id="readLocalMetadata" class="net.shibboleth.metadata.dom.DOMFilesystemSourceStage"</span></em><br><em><span style="font-size: 10pt;">        p:id="readLocalMetadata" p:parserPool-ref="parserPool" p:source-ref="localMetadataDirectory"/></span></em><br><em><span style="font-size: 10pt;"><!-- Configuration Options for the metadata aggregation process --></span></em><br><em><span style="font-size: 10pt;">    <bean id="metadataDirectory" class="java.io.File"></span></em><br><em><span style="font-size: 10pt;">        <constructor-arg value="/root/xml/fede-imt-metadata-git/"/></span></em><br><em><span style="font-size: 10pt;">    </bean></span></em><br><em><span style="font-size: 10pt;">    <!-- First, we define the stages for our pipeline --></span></em><br><em><span style="font-size: 10pt;">        <!-- My initial 0.7 JP <bean id="readIn" p:id="readIn" class="net.shibboleth.metadata.dom.DomFilesystemSourceStage" p:source-ref="metadataDirectory" p:parserPool-ref="parserPool"/> --></span></em><br><em><span style="font-size: 10pt;">    <bean id="source" class="net.shibboleth.metadata.dom.DomFilesystemSourceStage" p:source-ref="metadataDirectory" p:parserPool-ref="parserPool"/></span></em><br><em><span style="font-size: 10pt;">        <property name="id" value="source"/></span></em><br><em><span style="font-size: 10pt;">        <property name="parserPool"></span></em><br><em><span style="font-size: 10pt;">            <bean class="net.shibboleth.utilities.java.support.xml.BasicParserPool" init-method="initialize"/></span></em><br><em><span style="font-size: 10pt;">        </property></span></em><br><em><span style="font-size: 10pt;">        <property name="source"></span></em><br><em><span style="font-size: 10pt;">            <bean class="java.io.File"></span></em><br><em><span style="font-size: 10pt;">                <constructor-arg value="/root/xml/fede-imt-metadata-git/"/></span></em><br><em><span style="font-size: 10pt;">            </bean></span></em><br><em><span style="font-size: 10pt;">        </property></span></em><br><em><span style="font-size: 10pt;">    </bean></span></em><br><em><span style="font-size: 10pt;"><!-- Configuration Options for the metadata aggregation process --></span></em><br><em><span style="font-size: 10pt;">    <bean id="metadataDirectory" class="java.io.File"></span></em><br><em><span style="font-size: 10pt;">        <constructor-arg value="/root/xml/fede-imt-metadata-git/"/></span></em><br><em><span style="font-size: 10pt;">    </bean></span></em><br><em><span style="font-size: 10pt;">    <bean id="createEntitiesDescriptor" class="net.shibboleth.metadata.dom.saml.EntitiesDescriptorAssemblerStage"></span></em><br><em><span style="font-size: 10pt;">        <property name="id" value="createEntitiesDescriptor"/></span></em><br><em><span style="font-size: 10pt;">    </bean></span></em><br><em><span style="font-size: 10pt;">    <bean id="generateContentReferenceId" class="net.shibboleth.metadata.dom.saml.GenerateIdStage"></span></em><br><em><span style="font-size: 10pt;">        <property name="id" value="generateContentReferenceId" /></span></em><br><em><span style="font-size: 10pt;">    </bean></span></em><br><em><span style="font-size: 10pt;">    <bean id="signMetadata" class="net.shibboleth.metadata.dom.XMLSignatureSigningStage"></span></em><br><em><span style="font-size: 10pt;">        <property name="id" value="signMetadata"/></span></em><br><em><span style="font-size: 10pt;">        <property name="privateKey"></span></em><br><em><span style="font-size: 10pt;">            <bean class="net.shibboleth.ext.spring.factory.PrivateKeyFactoryBean"></span></em><br><em><span style="font-size: 10pt;">                <property name="resource"></span></em><br><em><span style="font-size: 10pt;">                    <bean class="org.springframework.core.io.FileSystemResource"></span></em><br><em><span style="font-size: 10pt;">                        <constructor-arg></span></em><br><em><span style="font-size: 10pt;">                            <bean class="java.io.File"></span></em><br><em><span style="font-size: 10pt;">                                <constructor-arg value="path/to/private-key.pem"/></span></em><br><em><span style="font-size: 10pt;">                            </bean></span></em><br><em><span style="font-size: 10pt;">                        </constructor-arg></span></em><br><em><span style="font-size: 10pt;">                    </bean></span></em><br><em><span style="font-size: 10pt;">                </property></span></em><br><em><span style="font-size: 10pt;">            </bean></span></em><br><em><span style="font-size: 10pt;">        </property></span></em><br><em><span style="font-size: 10pt;">    </bean></span></em><br><em><span style="font-size: 10pt;">    <bean id="serialize" class="net.shibboleth.metadata.pipeline.SerializationStage"></span></em><br><em><span style="font-size: 10pt;">        <property name="id" value="serializeIdPs"/></span></em><br><em><span style="font-size: 10pt;">        <property name="outputFile"></span></em><br><em><span style="font-size: 10pt;">            <bean class="java.io.File"></span></em><br><em><span style="font-size: 10pt;">            <constructor-arg value="/root/xml/fede-imt-metadata-git/Downloads/fede-imt-aggregate.xml"/></span></em><br><em><span style="font-size: 10pt;">            </bean></span></em><br><em><span style="font-size: 10pt;">        </property></span></em><br><em><span style="font-size: 10pt;">        <property name="serializer"></span></em><br><em><span style="font-size: 10pt;">            <bean id="domSerializer" class="net.shibboleth.metadata.dom.DOMElementSerializer" /></span></em><br><em><span style="font-size: 10pt;">        </property></span></em><br><em><span style="font-size: 10pt;">    </bean></span></em><br><em><span style="font-size: 10pt;">    <!-- Next we define a pipeline with all the stages in it --></span></em><br><em><span style="font-size: 10pt;">    <bean id="main" class="net.shibboleth.metadata.pipeline.SimplePipeline" init-method="initialize"></span></em><br><em><span style="font-size: 10pt;">        <property name="id" value="main"/></span></em><br><em><span style="font-size: 10pt;">        <property name="stages"></span></em><br><em><span style="font-size: 10pt;">            <list></span></em><br><em><span style="font-size: 10pt;">                <ref bean="source"/></span></em><br><em><span style="font-size: 10pt;">                <ref bean="removeInvalidContactPerson"/></span></em><br><em><span style="font-size: 10pt;">                <ref bean="removeOrganization"/></span></em><br><em><span style="font-size: 10pt;">                <ref bean="createEntitiesDescriptor"/></span></em><br><em><span style="font-size: 10pt;">                <ref bean="generateContentReferenceId" /></span></em><br><em><span style="font-size: 10pt;">                <ref bean="signMetadata"/></span></em><br><em><span style="font-size: 10pt;">                <ref bean="serialize" /></span></em><br><em><span style="font-size: 10pt;">            </list></span></em><br><em><span style="font-size: 10pt;">        </property></span></em><br><em><span style="font-size: 10pt;">    </bean></span></em><br><em><span style="font-size: 10pt;"></beans></span></em><br class=""></div></div>
</div></div><br><div>Thanks . <br></div></div></div><div><br></div></div></body></html>