Shibboleth 3 IdP – BeanManagedConnection configuration

As the original documentation isn’t explicit with where all the settings for a BeanManagedConnection used by a RelationalDatabaseConnector Attribute Resolver, here’s my crib sheet.

  1. Add a connection pooling library to %{idp.home}/edit-webapp/WEB-INF/lib (or use the provided C3P0 library, dealer’s choice). For Apache Commons DBCP, DCBP 1.4 and Commons Pool 1.5.7 pair nicely
  2. Define your bean, this appears to work best in %{idp.home}/conf/global.xml
    <bean id="SQLiteDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"
    p:driverClassName="%{datasource.driverClass}"
    p:url="%{datasource.jdbcUrl}"
    p:testOnBorrow="true"
    p:validationQuery="select 1" />

    Other properties are available, depending on your driver (which you’ll want to add to %{idp.home}/edit-webapp/WEB-INF/lib too)

Once the bean is in place, you can configure the DataConnector to use it as described in the usual documentation.