TemplateAttributeDefinition

Namespace: urn:mace:shibboleth:2.0:resolver
Schema: http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd

Overview

The Template AttributeDefinition generates output values by merging the input values of its source attributes into a Velocity template string (essentially an inline template).

All the input attributes must contain the same number of input values (null or empty values take up a spot and are included in this count).

Any type of attribute value can be injected into a template; however, scoped attribute values will only supply the unscoped/value portion.

Note that it's usually an anti-pattern to use an <InputDataConnector>  with the allAttributes property, because this will only work correctly if all the inputs have the same number of values. If you have result sets (e.g. from LDAP) that don't satisfy this rule, just make sure to enumerate the attributes you need. This used to be handled with an extra configuration element called <SourceAttribute> but this is no longer needed because of the new dependency syntax and is no longer supported.

Reference

Name

Type

Description

Name

Type

Description

velocityEngine

string

Bean ID of an externally defined (using native Spring syntax) VelocityEngine, rarely needed

Name

Cardinality

Description

Name

Cardinality

Description

<Template>

1

Contains the template string

Example

<AttributeDefinition id="template" xsi:type="Template"> <InputAttributeDefinition ref="OtherAttr" /> <InputDataConnector ref="myLdap" attributeNames="attrFromLdap" /> <Template>${attrFromLdap}::${OtherAttr}</Template> </AttributeDefinition>