The <RequestMapper> element configures the component used by the SP to map incoming requests to the set of configuration options that should be applied. You can think of it as a portable equivalent of the Apache <Location> feature, which associates Apache directives with specific URLs. Like that feature, the request mapper operates based on URL, not on the physical path of files.

Another critical role of the request mapper is to map each request to the appropriate Shibboleth application, thereby connecting the resource-oriented settings to the more general behavior defined per-application.

For a general overview with examples, see the request mapper HOWTO.

While Apache-based deployments can rely entirely on Apache functionality for this purpose, IIS provides no such capability. The request mapper allows the SP to insulate itself from the differences between servers.

On Version 2.4 and above, omitting this element will result in a "Native" plugin with an empty/default configuration. This empty configuration maps all requests to default application settings and adds no other settings, unless overridden by web server-specific options.

Common Attributes


Native Request Mapper

Identified by type="Native", integrates native web server content configuration features with the portable syntax supported by the XML request mapper (see below).

For most deployments, this is the type to use. It is a hybrid that allows you to combine Apache commands in .htaccess files with XML-based configuration. The native commands override any XML-based attributes. For servers without native commands (IIS), this type is equivalent to the XML request mapper type below.

The Native request mapper's XML "portion" is a reloadable resource, which means that the XML content can be supplied inline, in a local file, or a remote file, and can be monitored for changes and reloaded on the fly. The root of the XML instance MUST be a <RequestMap> element.

<RequestMapper type="Native">
    <RequestMap applicationId="default"/>
</RequestMapper>

Attributes

Inherits attributes supported by reloadable resources.

Child Elements


XML Request Mapper

Identified by type="XML", provides a portable XML syntax for configuring settings based on mappings assigned to URL host, path, and query string information. It does not permit settings to be defined in the web server's configuration.

The only reason for using this type in favor of the "Native" type above would be to prevent developers with access to content from using .htaccess commands. Since Apache itself can prevent this already, it's largely superfluous, but there might be very small efficiency gains from using it in such cases.

The XML request mapper is a reloadable resource, which means that the XML content can be supplied inline, in a local file, or a remote file, and can be monitored for changes and reloaded on the fly. The root of the XML instance MUST be a <RequestMap> element.

<RequestMapper type="XML">
    <RequestMap applicationId="default"/>
</RequestMapper>

Attributes

Inherits attributes supported by reloadable resources.

Child Elements


Properties

The general function of the request mapper is to associate "properties" with a request. These properties are named and typed and provide the basic interface between the configuration of the software and the software itself. Obviously similar to XML attributes, these properties may in fact be expressed with XML, but do not have to be.

The set of supported properties is as follows: