Versions Compared

Key

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

...

The HTTP Resource is configured entirely via its constructor.  The two parameters are the URL and an Apache HttpClient.  An in memory caching factory bean and a file caching factory bean Two beans (shibboleth.MemoryCachingHttpClient and shibboleth.FileCachingHttpClient) are provided to simplify construction of the HttpClient.  These are configured via properties detailed in ReloadableServices.

The File backed HTTP Resource provides file backup for when the web server is unavailable. Note that this file is a orthogonal to the use of a file backed HttpClient cache, which provides a local copy of up to date data when the web server can be contacted.

...

A resource which will be supplied from an in-memory cache for as long as the file on the webserver does not change.  If the webserver becomes unavailable the resource will be unavailable.

Code Block
languagexml
<bean id="inMemoryClient" 
      class="net.shibboleth.idp.profile.spring.relyingparty.metadata.InMemoryCachingHttpClientFactoryBean"
      p:maxCacheEntries="1"
      p:connectionTimeout="PT3M" />

<bean id="inMemoryResource" class="net.shibboleth.ext.spring.resource.HTTPResource"
      c:client-ref="inMemoryClientshibboleth.MemoryCachingHttpClient"  
      c:url="http://example.org/path/to/file.xml" />

A resource which will be supplied from an on disk cache (suitable for multiple or large files) for as long as the file on the webserver does not change.  If the webserver becomes unavailable the last used contents of the file will be returned (even if that was in a previous IdP lifetime)

Code Block
languagexml
<bean id="fileClient" 
      class="net.shibboleth.idp.profile.spring.relyingparty.metadata.FileCachingHttpClientFactoryBean"
      p:maxCacheEntries="3000"
      p:cacheDirectory="/var/shibboleth/caches/httpcache"/>
        
<bean id="fileResource" class="net.shibboleth.ext.spring.resource.FileBackedHTTPResource"
      c:client-ref="fileClientshibboleth.FileCachingHttpClient" 
      c:url="http://example.org/path/to/file.xml" 
      c:resource="/var/shibboleth/caches/resourcecache/file.xml"/>

In this example /var/shibboleth/caches/httpcache is a directory in which all the resources served via the HttpClient "fileClient" are cached.  These cached resources are only available for the lifetime of the HttpClient.

...