HTTP Clients
Several IDM modules, such as the external REST service and identity provider service, need to make HTTP(S) requests to external systems.
HTTP client settings can be configured through any expression resolver (in resolver/boot.properties
, environment variables, or Java system properties). Configuration for specific clients can be set in that client's JSON configuration file. For example conf/external.rest.json
configures the external REST service and properties set there override the expression resolvers. For more information on property resolution, see "Expression Resolvers and Order of Precedence".
You can set the following properties for HTTP clients:
openidm.http.client.sslAlgorithm
The cipher to be used when making SSL/TLS connections, for example,
AES
,CBC
, orPKCS5Padding
. Defaults to the system SSL algorithm.openidm.http.client.socketTimeout
The TCP socket timeout, in seconds, when waiting for HTTP responses. The default timeout is 10 seconds.
openidm.http.client.connectionTimeout
The TCP connection timeout for new HTTP connections, in seconds. The default timeout is 10 seconds.
openidm.http.client.reuseConnections
(true or false)Specifies whether HTTP connections should be kept alive and reused for additional requests. By default, connections will be reused if possible.
openidm.http.client.retryRequests
(true or false)Specifies whether requests should be retried if a failure is detected. By default requests will be retried.
openidm.http.client.maxConnections
(integer)The maximum number of connections that should be pooled by the HTTP client. At most
64
connections will be pooled by default.openidm.http.client.hostnameVerifier
(string)Specifies whether the client should check that the hostname to which it has connected is allowed by the certificate that is presented by the server.
The property can take the following values:
STRICT
- hostnames are validatedALLOW_ALL
- the external REST service does not attempt to match the URL hostname to the SSL certificate Common Name, as part of its validation process
If you do not set this property, the behavior is to validate hostnames (the equivalent of setting
"hostnameVerifier": "STRICT"
). In production environments, you should set this property toSTRICT
.openidm.http.client.proxy.uri
Specifies that the client should make its HTTP(S) requests through the specified proxy server.
openidm.http.client.proxy.userName
The username of the account for the specified proxy.
openidm.http.client.proxy.password
The password of the account for the specified proxy.
openidm.http.client.proxy.useSystem
(true or false)If
true
, specifies a system-wide proxy with the JVM system properties,http.proxyHost
,http.proxyPort
, and (optionally)http.nonProxyHosts
.If
openidm.http.client.proxy.uri
is set, and not empty, that setting overrides the system proxy setting.