Like RelyingPartyRegistrationRepository, it would be nice to have an interface to represent loading asserting party metadata. This would make working with OpenSAML's MetadataResolver considerably easier.

A contract like the following may suffice:

public interface AssertingPartyMetadataRepository extends Iterable<AssertingPartyMetadata> {
    default AssertingPartyMetadata findByEntityId(String entityId);

    Iterator<AssertingPartyMetadata> iterator();
}

Note that AssertingPartyMetadata is a proposed interface to allow for easy adaptation from DB or other third-party representations.

A handy first implementation of this interface would be one that worked with an OpenSAML MetadataResolver.