Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

...

The RelationalDatabase DataConnector generates multiple IdPAttribute objects from a relational database via a JDBC DataSource. The results are generated such that each IdPAttribute represents a column of the query result set. The ordered values represent the rows of the result set and each IdPAttribute will contain the same number of values, including any embedded nulls in the results. Nulls are represented explicitly with objects of type EmptyAttributeValue as placeholders within the ordered lists.

...

This connector uses a JDBC DataSource to connect to the database. This can be supplied via a few different techniques, but the recommended approach is to define one using Spring syntax in global.xml (or similar location) and use the <BeanManagedConnection> <BeanManagedConnection> element, the reason being it can be easily shared across multiple connectors. If you need the ability to reload the data source's settings, then the suggested approach is to create a new Spring file to contain the bean, and add it to the set of AttributeResolverConfiguration resources in services.xml

...

Expand
titleCommon XML Elements
Include Page
DataConnectorCommonChildElements
DataConnectorCommonChildElements
Expand
titleProperties
Include Page
VelocityTemplateProperties
VelocityTemplateProperties

Spring Configuration

Note

The springResource or springResourceRef attributes are DEPRECATED in V4.3 and will not work in V5

If the springResource or springResourceRef attributes are specified, then the configuration of the DataConnector bean is delegated to the supplied resources. The system will create a factory for an RDBMSDataConnector object, and look for beans in the Spring resource(s) supplied that match the types of properties supported by that type and its parent classes.

In prior versons, most of these extension points were non-API classes and interfaces, but in V4+ they have been moved and promoted to API status.

In practice, the RDBMS Data Connector may be supplied with beans of the following types:

In addition, native bean IDs can be injected as follows:

  1. The DataSource can be specified as an externally defined bean via the <BeanManagedConnection> element (as a recommended replacement for the the <ContainerManagedConnection> element).

  2. The builder for the SQL query can be specified as an externally defined bean via the executableSearchBuilderRef attribute (as a replacement for the <QueryTemplate> element).

  3. The mapping of column names can be specified as an externally defined bean via the mappingStrategyRef attribute (as a replacement for the <Column> elements).

  4. The caching of results can be specified as an externally defined bean via the <ResultCacheBean> element (as a replacement for the <ResultCache> element).

  5. A Validator can be specifier as as an externally defined bean via the validatorRef attribute. The only available class which implements this Interface is NonFailFastValidator

  6. Rarely, a non-default Velocity engine can be injected via the templateEngine attribute.

Examples

Simple DataConnector entirely in custom syntax

...