...
- readOnlyConnection- a boolean flag that determines whether connections to the database should be read-only; defaults to true
- queryUsesStoredProcedure - a boolean flag that indicates whether the SQL query, defined in step 3, uses stored procedures or not; defaults to false
- cacheResults - a boolean flag that indicates whether search results should be cached for the lifetime of a user's session; defaults to false, deprecated in favor of the
<ResultCache>
element (see below) - noResultIsError - a boolean flat that indicates whether a query that returns no results should be treated as an error; defaults to false
- queryTimeout - timeout in milliseconds of the SQL query; defaults to 5000
Code Block |
---|
| xml |
---|
| xml |
---|
title | Basic Relational Database Data Connector Definitionxml |
---|
|
<resolver:DataConnector xsi:type="RelationalDatabase" xmlns="urn:mace:shibboleth:2.0:resolver:dc"
id="UNIQUE_ID">
<!-- Remaining configuration from the next steps goes here -->
</resolver:DataConnector>
|
...
Dependencies are expressed by the <resolver:Dependency>
with a ref
attribute whose value is the unique ID of the attribute definition or the data connector that this connector depends on.
Code Block |
---|
| xml |
---|
| xml |
---|
title | Basic Relational Database Data Connector Definition with Dependenciesxml |
---|
|
<resolver:DataConnector xsi:type="RelationalDatabase" xmlns="urn:mace:shibboleth:2.0:resolver:dc"
id="UNIQUE_ID">
<resolver:Dependency ref="DEFINITION_ID_1" />
<resolver:Dependency ref="DEFINITION_ID_2" />
<resolver:Dependency ref="CONNECTOR_ID_3" />
<resolver:Dependency ref="CONNECTOR_ID_4" />
<!-- Remaining configuration from the next steps go here -->
</resolver:DataConnector>
|
...
Failover connectors are defined by the <resolver:FailoverDataConnector>
element with a ref
attribute whose value is the unique ID of the data connector to use in the event that this one fails.
Code Block |
---|
| xml |
---|
| xml |
---|
title | Basic Relational Database Data Connector Definition with Dependenciesxml |
---|
|
<resolver:DataConnector xsi:type="dc:RelationalDatabase" xmlns="urn:mace:shibboleth:2.0:resolver:dc"
id="UNIQUE_ID">
<resolver:Dependency ref="DEFINITION_ID_1" />
<resolver:Dependency ref="DEFINITION_ID_2" />
<resolver:Dependency ref="CONNECTOR_ID_3" />
<resolver:Dependency ref="CONNECTOR_ID_4" />
<resolver:FailoverDataConnector ref="CONNECTOR_ID_1" />
<!-- Remaining configuration from the next steps goes here -->
</resolver:DataConnector>
|
...
- jdbcDriver - the fully qualified class name of the JDBC driver used to make connections to the database
- jdbcURL - the connection URL for the database
- jdbcUserName - the user name used to connect to the database
- jdbcPassword - the password used to connect to the database
Code Block |
---|
| xml |
---|
| xml |
---|
title | Basic Relational Database Data Connector Definition with Application Managed Connectionsxml |
---|
|
<resolver:DataConnector xsi:type="RelationalDatabase" xmlns="urn:mace:shibboleth:2.0:resolver:dc"
id="UNIQUE_ID">
<!-- Dependency and Failover information would go here -->
<ApplicationManagedConnection jdbcDriver="DRIVER_CLASS"
jdbcURL="DATABASE_URL"
jdbcUserName="DATABASE_USER"
jdbcPassword="DATABASE_USER_PASSWORD" />
<!-- Remaining configuration from the next steps goes here -->
</resolver:DataConnector>
|
...
The <ContainerManagedConnection>
may also contain any number of <JNDIConnectionProperty>
elements that specify the JNDI connection properties appropriate for the container. Refer to your container documentation for these properties. Some common JNDI connection parameters are listed by Sun.
Code Block |
---|
| xml |
---|
| xml |
---|
title | Basic Relational Database Data Connector Definition with Container Managed Connectionsxml |
---|
|
<resolver:DataConnector xsi:type="RelationalDatabase" xmlns="urn:mace:shibboleth:2.0:resolver:dc"
id="UNIQUE_ID">
<!-- Dependency and Failover information would go here -->
<ContainerManagedConnection resourceName="RESOURCE_NAME" />
<!-- Remaining configuration from the next steps go here -->
</resolver:DataConnector>
|
...
The SQL query used to retrieve attribute information from the database is specified within a single <QueryTemplate>
element. The content of the element is a template resulting in a well formed SQL statement and should always be encapsulated in CDATA
to ensure proper handling. Variables may be used, including those passed in through dependencies
and a special one, $requestContext.principalName
, which is always the principal name as supplied by the user authentication.
Code Block |
---|
| xml |
---|
| xml |
---|
title | Basic Relational Database Data Connector Definition with Container Managed Connections and SQL Queryxml |
---|
|
<resolver:DataConnector xsi:type="RelationalDatabase" xmlns="urn:mace:shibboleth:2.0:resolver:dc"
id="UNIQUE_ID">
<!-- Dependency and Failover information would go here -->
<ContainerManagedConnection resourceName="RESOURCE_NAME" />
<QueryTemplate>
<![CDATA[
SELECT * FROM PEOPLE WHERE userid='$requestContext.principalName'
]]>
</QueryTemplate>
<!-- Remaining configuration from the next steps go here -->
</resolver:DataConnector>
|
...
columnName
- name of the database column being mapped; this attribute is requiredattributeID
- ID to use for the attribute created from the columntype
- object type to use for the values of the attribute; acceptable values are: BigDecimal, Boolean, Byte, ByteArray, Date, Double, Float, Integer, Long, Object, Short, String, Time, Timestamp, URL
Code Block |
---|
| xml |
---|
| xml |
---|
title | Basic Relational Database Data Connector Definition with Container Managed Connections, SQL Query, and Column Mappingsxml |
---|
|
<resolver:DataConnector xsi:type="RelationalDatabase" xmlns="urn:mace:shibboleth:2.0:resolver:dc"
id="UNIQUE_ID">
<!-- Dependency and Failover information would go here -->
<ContainerManagedConnection resourceName="RESOURCE_NAME" />
<QueryTemplate>
<![CDATA[
SELECT * FROM PEOPLE WHERE userid='$principal'
]]>
</QueryTemplate>
<Column columnName="firstname" attributeID="fname" />
<Column columnName="personid" type="String" />
</resolver:DataConnector>
|
...
A final, complete RDBMS <DataConnector>
could look like this.
Code Block |
---|
| xml |
---|
| xml |
---|
title | Basic Relational Database Data Connector Definition with Container Managed Connections, SQL Query, and Column Mappingsxml |
---|
|
<resolver:DataConnector xsi:type="RelationalDatabase" xmlns="urn:mace:shibboleth:2.0:resolver:dc"
id="UNIQUE_ID">
<resolver:Dependency ref="DEFINITION_ID_1" />
<resolver:Dependency ref="CONNECTOR_ID_3" />
<resolver:FailoverDataConnector ref="CONNECTOR_ID_1" />
<ContainerManagedConnection resourceName="RESOURCE_NAME" />
<QueryTemplate>
<![CDATA[
SELECT * FROM PEOPLE WHERE cn='$DEFINITION_ID_1'
]]>
</QueryTemplate>
<Column columnName="firstname" attributeID="fname" />
<Column columnName="personid" type="String" />
<ResultCache elementTimeToLive="PT1H" />
</resolver:DataConnector>
|