Configurer le rechargement des fichiers de configuration

Documentation :

L'IdP Shibboleth est configuré par défaut pour recharger dynamiquement certains fichiers de configuration lorsqu'ils sont modifiés. La page Configuration Files Summary ci-dessus répertorie tous les fichiers de configuration et vous indique lesquels sont rechargeables en cours d'exécution du servlet Shibboleth.

Le fichier de configuration conf/services.properties définit pour chaque fichier de configuration la fréquence à laquelle le dit fichier peut être rechargé. Ci-dessous un extrait de cette configuration :

/opt/shibboleth-idp/conf/services.properties
...
#idp.service.attribute.resolver.resources = shibboleth.AttributeResolverResources
#idp.service.attribute.resolver.failFast = false
idp.service.attribute.resolver.checkInterval = PT15M
#idp.service.attribute.resolver.maskFailures = true

#idp.service.attribute.filter.resources = shibboleth.AttributeFilterResources
# NOTE: Failing the filter fast leaves no filters enabled.
#idp.service.attribute.filter.failFast = false
idp.service.attribute.filter.checkInterval = PT15M
#idp.service.attribute.filter.maskFailures = true
...

La version 3.x de l'IdP Shibboleth fournit le script reload-service.sh qui permet de déclencher le rechargement d'un fichier de configuration. Exemple d'appel pour recharger le fichier attribute-resolver.xml :

$> /opt/shibboleth-idp/bin/reload-service.sh -id shibboleth.AttributeResolverService
Configuration reloaded.

Vous pouvez consulter le log idp-process.log qui vous confirme que le fichier a été rechargé :

$> tail -f /opt/shibboleth-idp/logs/idp-process.log
2015-06-09 10:52:05,159 - INFO [net.shibboleth.utilities.java.support.service.AbstractReloadableService:258] - Service 'shibboleth.AttributeResolverService': Reloading service configuration
2015-06-09 10:52:05,164 - INFO [net.shibboleth.ext.spring.util.SchemaTypeAwareXMLBeanDefinitionReader:317] - Loading XML bean definitions from file [IDP_ROOT_DIR/conf/attribute-resolver-ldap.xml]
...
2015-06-09 10:52:05,323 - INFO [net.shibboleth.ext.spring.context.FilesystemGenericApplicationContext:510] - Refreshing ApplicationContext:shibboleth.AttributeResolverService: startup date [Tue Jun 09 10:52:05 CEST 2015]; parent: Root WebApplicationContext
2015-06-09 10:52:05,564 - INFO [net.shibboleth.ext.spring.service.ReloadableSpringService:378] - Service 'shibboleth.AttributeResolverService': Completed reload and swapped in latest configuration for service 'shibboleth.AttributeResolverService'
2015-06-09 10:52:05,565 - INFO [net.shibboleth.ext.spring.context.FilesystemGenericApplicationContext:862] - Closing ApplicationContext:shibboleth.AttributeResolverService: startup date [Tue Jun 09 10:49:35 CEST 2015]; parent: Root WebApplicationContext
2015-06-09 10:52:05,600 - INFO [net.shibboleth.ext.spring.service.ReloadableSpringService:385] - Service 'shibboleth.AttributeResolverService': Reload complete
2015-06-09 10:52:05,601 - INFO [Shibboleth-Audit.Reload:241] - 20150609T085205Z||||http://shibboleth.net/ns/profiles/reload-service-configuration||||||||

Pour forcer le rechargement d'un autre fichier de configuration, référez-vous à la liste des Bean ID de la documentation Reloadable Services pointée ci-dessus.

Dans un environnement de production, il faut être attentif lors des modifications des fichiers automatiquement rechargés. En effet, il se peut que l'on introduise des erreurs de configuration qui n'empêchent pas la prise en compte des modifications mais qui bloquent le bon fonctionnement de l'IdP.