Description
For filtering with trust info, we need to add a few attributes to the discojson format: registrationAutority, the attributes entity-category, entity-category-support, assurance-certification, for IdPs, and DiscoveryResponses for SPs.
When the load pipe loads several sources, it accumulates all entities in a single dictionary keyed by entityID, here. This means that only the data in the last source loaded is going to be kept. There is a comment there saying "TODO: merge", but what we have there are EntityDescriptor XML elements, which for example can only carry at most one RegistrationInfo element.
Code Version
master
Expected Behavior
We would want to keep all the data in each entity until it is used by discojson.
Current Behavior
Data that is different accross sources is lost.
Possible Solution
One possibility would be to parse the entities e.g. around the line of code referenced above, and keep the loosable information in a new dictionary attached to the store, that could then be accessed in the discojson pipe.
Steps to Reproduce
- Load an entity from 2 sources, with a different registrationAuthority in each case
- Try to access both registrationAuthorities in the discojson pipe