The Shibboleth IdP V4 software will leave support on September 1, 2024.

URLTemplate

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

Overview

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

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).

Note that URL 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.

Reference

Name

Type

Description

Name

Type

Description

customObjectRef

Bean ID

Reference to a Spring bean to inject into the template evaluation as a custom object

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.

Name

Type

Description

Name

Type

Description

resolutionContext

AttributeResolutionContext

Commonly useful members include $resolutionContext.principal and $resolutionContext.attributeRecipientID

custom

Object

Optional 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.

paramEscaper

com.google.common.escape.Escaper

For safe embedding of input data into a query parameter

fragmentEscaper

com.google.common.escape.Escaper

For safe embedding of input data into a URL fragment

pathEscaper

com.google.common.escape.Escaper

For safe embedding of input data into a URL path

httpClientSecurityParameters

HttpClientSecurityParameters

Rarely of interest but provides access to security parameters to be used during call

Example

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