/
Generate Discovery Feed
Generate Discovery Feed
This command line configuration example:
Reads a file
path/to/input/aggregate.xml
containing a SAML metadata aggregateDecomposes that aggregate into its constituent entity metadata documents
Filters out selected entities, as an example of arbitrary metadata manipulation
Generates an EDS-compatible JSON discovery feed in
path/to/output/discofeed.json
You can execute the example as follows:
$ .../mda.sh discofeed.xml main
The example configuration file is as follows; it has been verified with MDA version 0.10.0-SNAPSHOT as of 2023-10-23:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
default-lazy-init="true"
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">
<!-- Import the Standard bean definition resource. -->
<!-- See https://shibboleth.atlassian.net/wiki/spaces/MA1/pages/3162439683/Standard+bean+definition+resource -->
<import resource="classpath:net/shibboleth/metadata/beans.xml"/>
<!-- Default Shibboleth component bean id property from Spring bean id -->
<bean parent="mda.IdentifiableBeanPostProcessor" lazy-init="false"/>
<bean id="main" parent="mda.SimplePipeline">
<property name="stages">
<list>
<!-- Acquire the metadata aggregate. -->
<bean id="source" parent="mda.DOMFilesystemSourceStage">
<property name="parserPool">
<bean parent="mda.BasicParserPool"/>
</property>
<property name="source">
<bean class="java.io.File">
<constructor-arg value="path/to/input/aggregate.xml"/>
</bean>
</property>
</bean>
<!-- Disassemble into individual entities. -->
<bean id="disassemble" parent="mda.EntitiesDescriptorDisassemblerStage"/>
<!-- Manipulate the entities being processed: for example, remove some. -->
<bean id="removeEntities" parent="mda.EntityFilterStage">
<property name="designatedEntities">
<list>
<value>https://idp.shibboleth.net/idp/shibboleth</value>
<value>https://example.com/idp</value>
</list>
</property>
</bean>
<!-- Serialise as a discovery feed into an output file. -->
<bean id="serialize" parent="mda.SerializationStage">
<property name="serializer">
<bean id="discogen" parent="mda.DiscoFeedCollectionSerializer"
p:prettyPrinting="true"
p:includingLegacyDisplayNames="true"/>
</property>
<property name="outputFile">
<bean class="java.io.File">
<constructor-arg value="path/to/output/discofeed.json"/>
</bean>
</property>
</bean>
</list>
</property>
</bean>
</beans>
, multiple selections available,
Related content
Per-entity Output
Per-entity Output
More like this
Aggregate and Sign
Aggregate and Sign
More like this
Filter Aggregate
Filter Aggregate
More like this
General Configuration
General Configuration
Read with this
Configuration Guides by Topic
Configuration Guides by Topic
More like this
3. Configuration
3. Configuration
Read with this