Versions Compared

Key

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

...

...

Code Block
languagexml
<bean id="SecurityEnhancedHttpClient" parent="shibboleth.NonCachingHttpClient"
	p:tLSSocketFactory-ref="shibboleth.SecurityEnhancedTLSSocketFactory" />

...

TLS Client Authentication

Note

The code as it stands does not generally support TLS Renegotiation, which is most commonly encountered when using a virtual host that applies client TLS to only a subset of paths and not the host as a whole.

Configuring a component using the HttpClient with a private key and certificate for authenticating itself to a server is a simple two step process:

...

NameTypeDescription

shibboleth.NonCachingHttpClient                                                           

HttpClientFactoryBeanFactory bean for creating non-caching HTTP clientHTTPClient
shibboleth.FileCachingHttpClientFileCachingHttpClientFactoryBeanFactory bean for creating file-based-caching HTTP clientHTTPClient

shibboleth.MemoryCachingHttpClient

InMemoryCachingHttpClientFactoryBeanFactory bean for creating in-memory-caching HTTP clientHTTPClient
shibboleth.StaticExplicitTrustEngine 3.3StaticExplicitKeyFactoryBeanFactory bean for creating ExplicitKeyTrustEngine
shibboleth.StaticPKIXTrustEngine 3.3StaticPKIXFactoryBeanFactory bean for creating PKIXX509CredentialTrustEngine
shibboleth.SecurityEnhancedTLSSocketFactory 3.2SecurityEnhancedTLSSocketFactorySocket factory that supports HttpClientSecurityParameters-aware components
shibboleth.SecurityEnhancedTLSSocketFactoryWithClientTLS 3.3SecurityEnhancedTLSSocketFactoryClient-TLS-capable socket factory that supports HttpClientSecurityParameters-aware components
shibboleth.SecurityEnhancedTLSSocketFactoryWithClientTLSOnly 3.4SecurityEnhancedTLSSocketFactoryClient-TLS-capable socket factory that supports HttpClientSecurityParameters-aware components but does not accept a pluggable TrustEngine

...

NameTypeDefaultDescription
idp.httpclient.useSecurityEnhancedTLSSocketFactory 3.2BooleanfalseIf true, causes the default clients to be injected with a special socket factory that supports advanced TLS features (requires substantial additional configuration)
idp.httpclient.connectionDisregardTLSCertificate              BooleanfalseIf the previous property is false, this allows the default TLS behavior of the client to ignore the TLS server certificate entirely (use with obvious caution, typically only while testing)
idp.httpclient.connectionRequestTimeoutDurationPT1M (one min)TIme to wait for a connection to be returned from the pool (can be 0 for no imposed value)
idp.httpclient.connectionTimeoutDurationPT1M (one min)TIme to wait for a connection to be established (can be 0 for no imposed value)
idp.httpclient.socketTimeoutDurationPT1M (one min)Time to allow between packets on a connection (can be 0 for no imposed value)
idp.httpclient.maxConnectionsTotalInteger100Caps the number of simultaneous connections created by the pooling connection manager
idp.httpclient.maxConnectionsPerRouteInteger100Caps the number of simultaneous connections per route created by the pooling connection manager
idp.httpclient.memorycaching.maxCacheEntriesInteger50Size of the in-memory result cache
idp.httpclient.memorycaching.maxCacheEntrySizeLong1048576 (1MB)Largest size to allow for an in-memory cache entry
idp.httpclient.filecaching.maxCacheEntriesInteger100Size of the nonon-disk result cache
idp.httpclient.filecaching.maxCacheEntrySizeLong10485760 (10MB)Largest sze to allow for an on-disk cache entry
idp.httpclient.filecaching.cacheDirectoryLocal directory
Location of on-disk cache