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

RecordMapping

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

Overview

The <RecordMapping> element provides an instance of the StorageMappingStrategy interface that produces result attributes from a StorageService record using a script. The supplied script is expected to consume a StorageRecord instance and produce any desired results. It may raise exceptions if necessary.

Note that Javascript interpreters include a JSON object that automates the parsing of JSON data.

Reference

The <RecordMapping> element is a configuration element of type ScriptType.

The following sections describe the attributes and elements of the ScriptType type.

Script Context

These variables are available in the template context:

Name

Description

Name

Description

record

Instance of StorageRecord to process

log

A class logger for debugging

custom

Custom object supplied via customObjectRef configuration attribute, if any

connectorResults

Pre-defined Set<IdPAttribute> variable to populate with output results

Unlike a lot of the scripted versions of objects across the system, there is no direct access to the ProfileRequestContext tree that exposes the state of the request. However, it's easy to get access to it by using a servlet request attribute named "opensamlProfileRequestContext". You can inject the servlet request object through the customObjectRef hook; Set it to "shibboleth.HttpServletRequest" (or "shibboleth.HttpServletRequestSupplier" in V4.3 and later as per this link)