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

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Current »

Resources

The IdP makes significant use of spring resources (org.springframework.core.io.Resource) and all configuration is via them.

As well as the usual slew of Spring provided Resources two other Resources have been implemented, the SVNResource and the HTTPResource.

Reload

Any subsystem which is configured via Spring may be made reloadable.  This capability is provided by the AbstractServiceableComponent and ReloadableSpringService classes.

Programming a reloadable subsystem

To make a subsystem reloadable, the implementation bean just has to extend AbstractServiceableComponent and implement getComponent() to return this.

Configuring the reloadable subsystem

To configure a serviceable bean, configure a ReloadableSpringService, providing the Class of the subsystem bean (or an interface it implemements) as constructor and a list of Spring resources as the serviceConfiguration property.  Other properties which can be specific are

  • failFast
  • reloadCheckDelay
  • reloadtaskTimer

For example:

Configuring a Reloadable Service
<bean id="shibboleth.AttributeFilterService" class="net.shibboleth.idp.service.ReloadableSpringService">
        <constructor-arg value="net.shibboleth.idp.attribute.filter.AttributeFilter"/>
 
        <property name="id" value="shibboleth.AttributeFilterService" />
        <property name="serviceConfigurations">
            <util:list>
                <value>file://${idp.home}/conf/attribute-filter.xml</value>
            </util:list>
        </property>
        <property name="failFast" value="${idp.service.attribute.filter.failFast}" />
        <property name="reloadCheckDelay" value="${idp.service.attribute.filter.checkInterval}" />
        <property name="reloadTaskTimer" ref="shibboleth.TaskTimer" />
    </bean>

 

Using the reloadable subsystem.

Using the subsystem consists of

  1. Interrogating the ReloadableSpringService for the current Serviceable Component for the subsystem (via getServiceableComponent())
  2. Interrogating the component for the subsystem component (via getComponent())
  3. Performing the operation
  4. Unpinning the component.  (via # unpinComponent())

It is vital that every call to getServiceableComponent is matched by a call to unpinComponent()

 

  • No labels