Multiple input files.
Rod Widdowson
rdw at steadingsoftware.com
Sat Nov 8 06:25:28 EST 2014
There was some discussion yesterday about providing multiple input files
into various services. We know that Attribute Filter does, we thought that
Metadata Providers must and that Attribute Resolvers might, but didn't.
I spent some time chasing this up.
Metadata Providers work as expected and I have checked in a test to prove
this (and to provide some source material for documentation). There is
however a twist in that we can make no statement about ordering,
particularly with respect to duplicate entityIDs. Currently we do not
promise anything but state that "in practice, the first wins".
Unfortunately we can no longer make that statement, anything within a chain
will preserve its order, but the ordering of the top level metadata
providers is outside out control. They are just chucked into a spring
application context and we get whatever order Spring gives us. I suspect
that with interfed creeping closer this may become unsustainable.
It would not be difficult to sort the top level MetadataProviders by ID, but
(a) do we want to and (b) can we make this explainable?
The new for Attribute resolvers is better. It turns out that the code just
works. Unfortunately disjoint attribute resolvers are disallowed by the
schema [#]. With this removed, the test I wrote for disparate attribute
resolution works. Further the error message when a dependency is missing
might be more user-friendly:
net.shibboleth.utilities.java.support.component.ComponentInitializationExcep
tion: Attribute Resolver 'MultiFileResolver': Plugin 'eduPersonAffiliation2'
has a dependency on plugin 'eduPersonAffiliation56' which doesn't exist
rather than:
org.xml.sax.SAXParseException: Key
'AttributeDefinitionAttributeDefinitionDependencyRef' with value
'eduPersonAffiliation56' not found for identity constraint of element
'AttributeResolver'.
I think that for, reasons of easy extensibility as discussed yesterday and
the different logging, we should remove this restriction in the schema.
Rod
[#]
http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-schema/src/m
ain/resources/schema/shibboleth-attribute-resolver.xsd?view=markup line 19ff
More information about the dev
mailing list