The Shibboleth IdP V3 software has reached its End of Life and is no longer supported. This documentation is available for historical purposes only. See the IDP4 wiki space for current documentation on the supported version.

URLTemplate

The <URLTemplate> element provides the template from which a web service request URL is built.

Note that escapers are provided for use but you must perform the appropriate escaping because the escaping rules depend on the portion of the URL containing the data.

Schema Name and Location

This element is defined in the urn:mace:shibboleth:2.0:resolver namespace, the schema for which is located at http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd

Example

Often the XML "CDATA" construct is used to wrap the text because it avoids the need for special escaping of most characters (this is in the XML sense, not in the "needs to be escaped in the URL" sense).

<URLTemplate>
  <![CDATA[
      https://webservice.example.org/subjects/$pathEscaper.escape($employeeNumber.get(0))/groups
  ]]>
</URLTemplate>

Configuration Reference

Attributes

NameTypeDescription
customObjectRefBean IDReference to a Spring bean to inject into the template evaluation as a custom object


Child Elements

No child elements are defined.

Template Context

As enumerated below, several variables are available in the template context. In practice, $resolutionContext.principal and various named dependent attributes (if any) tend to be most useful.

NameTypeDescription

resolutionContext

AttributeResolutionContextCommonly useful members include $resolutionContext.principal and $resolutionContext.attributeRecipientID
customObjectOptional object injected via customObjectRef attribute

foo, bar, etc.

List<IdPAttributeValue>For each IdPAttribute available from all the provided dependencies, the attributes' values are available as a collection under the attribute's name.
paramEscapercom.google.common.escape.EscaperFor safe embedding of input data into a query parameter
fragmentEscapercom.google.common.escape.EscaperFor safe embedding of input data into a URL fragment
pathEscapercom.google.common.escape.EscaperFor safe embedding of input data into a URL path
httpClientSecurityParametersHttpClientSecurityParametersRarely of interest but provides access to security parameters to be used during call