Namespace: urn:mace:shibboleth:2.0:metadata
Schema: http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
The <ConditionScript>
element contains a script (or a reference to a script) that ultimately applies an implementation of Predicate<EntityDescriptor> to a given entity descriptor.
The <ConditionScript>
element implicitly iterates over all entity descriptors in the filtering pipeline. For each entity descriptor, the parent <MetadataFilter>
element acts on the input entity descriptor if (and only if) the predicate evaluates to true. The action taken depends on the type of metadata filter.
The <ConditionScript>
may be a child element within the following metadata filter types:
The <ConditionScript>
element is a configuration element of type ScriptType.
Name | Type | Description |
---|---|---|
input | The EntityDescriptor to evaluate for exclusion | |
customObjectRef | any | A custom object to inject into the script |
The following trivial implementation of Predicate<EntityDescriptor> always returns false regardless of the input
argument:
<ConditionScript> <Script> <![CDATA[ "use strict"; false; ]]> </Script> </ConditionScript> |
A more complex example might use the custom
object to help the operation.
<ConditionScript customObjectRef="BeanID"> <Script> <![CDATA[ "use strict"; var someCondition = function(entityID) { // Good stuff } var result; // CustomObjectRef points to a <util:map> where the key is a string and the value is an 'interesting bean' if (someCondition(input.getEntityID())) { result = custom["myFirstBean"].someFunction(input); } else { result = custom["mySecondBean"].someOtherFunction(input); } result; ]]> </Script> </ConditionScript> |