/
Generate Discovery Feed

Generate Discovery Feed

This command line configuration example:

  • Reads a file path/to/input/aggregate.xml containing a SAML metadata aggregate

  • Decomposes 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>

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
Read with this