keycloak-service
クラス | 公開メンバ関数 | 限定公開変数類 | 非公開メンバ関数 | 全メンバ一覧
org.keycloak.connections.httpclient.HttpClientBuilder クラス
org.keycloak.connections.httpclient.HttpClientBuilder 連携図
Collaboration graph

クラス

enum  HostnameVerificationPolicy
 
class  PassthroughTrustManager
 
class  VerifierWrapper
 

公開メンバ関数

HttpClientBuilder socketTimeout (long timeout, TimeUnit unit)
 
HttpClientBuilder establishConnectionTimeout (long timeout, TimeUnit unit)
 
HttpClientBuilder connectionTTL (long ttl, TimeUnit unit)
 
HttpClientBuilder maxConnectionIdleTime (long maxConnectionIdleTime, TimeUnit unit)
 
HttpClientBuilder maxPooledPerRoute (int maxPooledPerRoute)
 
HttpClientBuilder connectionPoolSize (int connectionPoolSize)
 
HttpClientBuilder disableTrustManager ()
 
HttpClientBuilder disableCookies (boolean disable)
 
HttpClientBuilder hostnameVerification (HostnameVerificationPolicy policy)
 
HttpClientBuilder sslContext (SSLContext sslContext)
 
HttpClientBuilder trustStore (KeyStore truststore)
 
HttpClientBuilder keyStore (KeyStore keyStore, String password)
 
HttpClientBuilder keyStore (KeyStore keyStore, char[] password)
 
HttpClientBuilder proxyMappings (ProxyMappings proxyMappings)
 
CloseableHttpClient build ()
 

限定公開変数類

KeyStore truststore
 
KeyStore clientKeyStore
 
String clientPrivateKeyPassword
 
boolean disableTrustManager
 
HostnameVerificationPolicy policy = HostnameVerificationPolicy.WILDCARD
 
SSLContext sslContext
 
int connectionPoolSize = 128
 
int maxPooledPerRoute = 64
 
long connectionTTL = -1
 
TimeUnit connectionTTLUnit = TimeUnit.MILLISECONDS
 
long maxConnectionIdleTime = 900000
 
TimeUnit maxConnectionIdleTimeUnit = TimeUnit.MILLISECONDS
 
HostnameVerifier verifier = null
 
long socketTimeout = -1
 
TimeUnit socketTimeoutUnits = TimeUnit.MILLISECONDS
 
long establishConnectionTimeout = -1
 
TimeUnit establishConnectionTimeoutUnits = TimeUnit.MILLISECONDS
 
boolean disableCookies = false
 
ProxyMappings proxyMappings
 

非公開メンバ関数

SSLContext createSslContext (final String algorithm, final KeyStore keystore, final String keyPassword, final KeyStore truststore, final SecureRandom random) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException
 

詳解

Abstraction for creating HttpClients. Allows SSL configuration.

著者
Bill Burke
バージョン
Revision
1

クラス詳解

◆ org::keycloak::connections::httpclient::HttpClientBuilder::HostnameVerificationPolicy

enum org::keycloak::connections::httpclient::HttpClientBuilder::HostnameVerificationPolicy
org.keycloak.connections.httpclient.HttpClientBuilder.HostnameVerificationPolicy 連携図
Collaboration graph
列挙値
ANY

Hostname verification is not done on the server's certificate

STRICT

CN must match hostname connecting to

WILDCARD

Allows wildcards in subdomain names i.e. *.foo.com

関数詳解

◆ build()

CloseableHttpClient org.keycloak.connections.httpclient.HttpClientBuilder.build ( )
inline
245  {
246  X509HostnameVerifier verifier = null;
247  if (this.verifier != null) verifier = new VerifierWrapper(this.verifier);
248  else {
249  switch (policy) {
250  case ANY:
251  verifier = new AllowAllHostnameVerifier();
252  break;
253  case WILDCARD:
254  verifier = new BrowserCompatHostnameVerifier();
255  break;
256  case STRICT:
257  verifier = new StrictHostnameVerifier();
258  break;
259  }
260  }
261  try {
262  SSLConnectionSocketFactory sslsf = null;
263  SSLContext theContext = sslContext;
264  if (disableTrustManager) {
265  theContext = SSLContext.getInstance("TLS");
266  theContext.init(null, new TrustManager[]{new PassthroughTrustManager()},
267  new SecureRandom());
268  verifier = new AllowAllHostnameVerifier();
269  sslsf = new SSLConnectionSocketFactory(theContext, verifier);
270  } else if (theContext != null) {
271  sslsf = new SSLConnectionSocketFactory(theContext, verifier);
272  } else if (clientKeyStore != null || truststore != null) {
274  sslsf = new SSLConnectionSocketFactory(theContext, verifier);
275  } else {
276  final SSLContext tlsContext = SSLContext.getInstance("TLS");
277  tlsContext.init(null, null, null);
278  sslsf = new SSLConnectionSocketFactory(tlsContext, verifier);
279  }
280 
281  RequestConfig requestConfig = RequestConfig.custom()
282  .setConnectTimeout((int) establishConnectionTimeout)
283  .setSocketTimeout((int) socketTimeout).build();
284 
285  org.apache.http.impl.client.HttpClientBuilder builder = HttpClients.custom()
286  .setDefaultRequestConfig(requestConfig)
287  .setSSLSocketFactory(sslsf)
288  .setMaxConnTotal(connectionPoolSize)
289  .setMaxConnPerRoute(maxPooledPerRoute)
290  .setConnectionTimeToLive(connectionTTL, connectionTTLUnit);
291 
292 
293  if (proxyMappings != null && !proxyMappings.isEmpty()) {
294  builder.setRoutePlanner(new ProxyMappingsAwareRoutePlanner(proxyMappings));
295  }
296 
297  if (maxConnectionIdleTime > 0) {
298  // Will start background cleaner thread
299  builder.evictIdleConnections(maxConnectionIdleTime, maxConnectionIdleTimeUnit);
300  }
301 
302  if (disableCookies) builder.disableCookieManagement();
303  return builder.build();
304  } catch (Exception e) {
305  throw new RuntimeException(e);
306  }
307  }
int maxPooledPerRoute
Definition: HttpClientBuilder.java:96
SSLContext createSslContext(final String algorithm, final KeyStore keystore, final String keyPassword, final KeyStore truststore, final SecureRandom random)
Definition: HttpClientBuilder.java:309
HostnameVerificationPolicy policy
Definition: HttpClientBuilder.java:93
TimeUnit connectionTTLUnit
Definition: HttpClientBuilder.java:98
SSLContext sslContext
Definition: HttpClientBuilder.java:94
ProxyMappings proxyMappings
Definition: HttpClientBuilder.java:107
long maxConnectionIdleTime
Definition: HttpClientBuilder.java:99
long establishConnectionTimeout
Definition: HttpClientBuilder.java:104
boolean disableCookies
Definition: HttpClientBuilder.java:106
long connectionTTL
Definition: HttpClientBuilder.java:97
HostnameVerifier verifier
Definition: HttpClientBuilder.java:101
KeyStore clientKeyStore
Definition: HttpClientBuilder.java:90
TimeUnit maxConnectionIdleTimeUnit
Definition: HttpClientBuilder.java:100
KeyStore truststore
Definition: HttpClientBuilder.java:89
int connectionPoolSize
Definition: HttpClientBuilder.java:95
String clientPrivateKeyPassword
Definition: HttpClientBuilder.java:91
HttpClientBuilder disableTrustManager()
Definition: HttpClientBuilder.java:164
boolean isEmpty()
Definition: ProxyMappings.java:89
long socketTimeout
Definition: HttpClientBuilder.java:102

◆ connectionPoolSize()

HttpClientBuilder org.keycloak.connections.httpclient.HttpClientBuilder.connectionPoolSize ( int  connectionPoolSize)
inline
154  {
156  return this;
157  }
int connectionPoolSize
Definition: HttpClientBuilder.java:95

◆ connectionTTL()

HttpClientBuilder org.keycloak.connections.httpclient.HttpClientBuilder.connectionTTL ( long  ttl,
TimeUnit  unit 
)
inline
137  {
138  this.connectionTTL = ttl;
139  this.connectionTTLUnit = unit;
140  return this;
141  }
TimeUnit connectionTTLUnit
Definition: HttpClientBuilder.java:98
long connectionTTL
Definition: HttpClientBuilder.java:97

◆ createSslContext()

SSLContext org.keycloak.connections.httpclient.HttpClientBuilder.createSslContext ( final String  algorithm,
final KeyStore  keystore,
final String  keyPassword,
final KeyStore  truststore,
final SecureRandom  random 
) throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException, UnrecoverableKeyException
inlineprivate
315  {
316  return SSLContexts.custom()
317  .useProtocol(algorithm)
318  .setSecureRandom(random)
319  .loadKeyMaterial(keystore, keyPassword != null ? keyPassword.toCharArray() : null)
320  .loadTrustMaterial(truststore)
321  .build();
322  }
KeyStore truststore
Definition: HttpClientBuilder.java:89

◆ disableCookies()

HttpClientBuilder org.keycloak.connections.httpclient.HttpClientBuilder.disableCookies ( boolean  disable)
inline

Disable cookie management.

172  {
173  this.disableCookies = disable;
174  return this;
175  }
boolean disableCookies
Definition: HttpClientBuilder.java:106

◆ disableTrustManager()

HttpClientBuilder org.keycloak.connections.httpclient.HttpClientBuilder.disableTrustManager ( )
inline

Disable trust management and hostname verification. NOTE this is a security hole, so only set this option if you cannot or do not want to verify the identity of the host you are communicating with.

164  {
165  this.disableTrustManager = true;
166  return this;
167  }
HttpClientBuilder disableTrustManager()
Definition: HttpClientBuilder.java:164

◆ establishConnectionTimeout()

HttpClientBuilder org.keycloak.connections.httpclient.HttpClientBuilder.establishConnectionTimeout ( long  timeout,
TimeUnit  unit 
)
inline

When trying to make an initial socket connection, what is the timeout?

引数
timeout
unit
戻り値
131  {
132  this.establishConnectionTimeout = timeout;
134  return this;
135  }
long establishConnectionTimeout
Definition: HttpClientBuilder.java:104
TimeUnit establishConnectionTimeoutUnits
Definition: HttpClientBuilder.java:105

◆ hostnameVerification()

HttpClientBuilder org.keycloak.connections.httpclient.HttpClientBuilder.hostnameVerification ( HostnameVerificationPolicy  policy)
inline

SSL policy used to verify hostnames

引数
policy
戻り値
183  {
184  this.policy = policy;
185  return this;
186  }
HostnameVerificationPolicy policy
Definition: HttpClientBuilder.java:93

◆ keyStore() [1/2]

HttpClientBuilder org.keycloak.connections.httpclient.HttpClientBuilder.keyStore ( KeyStore  keyStore,
String  password 
)
inline
199  {
200  this.clientKeyStore = keyStore;
201  this.clientPrivateKeyPassword = password;
202  return this;
203  }
HttpClientBuilder keyStore(KeyStore keyStore, String password)
Definition: HttpClientBuilder.java:199
KeyStore clientKeyStore
Definition: HttpClientBuilder.java:90
String clientPrivateKeyPassword
Definition: HttpClientBuilder.java:91

◆ keyStore() [2/2]

HttpClientBuilder org.keycloak.connections.httpclient.HttpClientBuilder.keyStore ( KeyStore  keyStore,
char []  password 
)
inline
205  {
206  this.clientKeyStore = keyStore;
207  this.clientPrivateKeyPassword = new String(password);
208  return this;
209  }
HttpClientBuilder keyStore(KeyStore keyStore, String password)
Definition: HttpClientBuilder.java:199
KeyStore clientKeyStore
Definition: HttpClientBuilder.java:90
String clientPrivateKeyPassword
Definition: HttpClientBuilder.java:91

◆ maxConnectionIdleTime()

HttpClientBuilder org.keycloak.connections.httpclient.HttpClientBuilder.maxConnectionIdleTime ( long  maxConnectionIdleTime,
TimeUnit  unit 
)
inline
143  {
145  this.maxConnectionIdleTimeUnit = unit;
146  return this;
147  }
long maxConnectionIdleTime
Definition: HttpClientBuilder.java:99
TimeUnit maxConnectionIdleTimeUnit
Definition: HttpClientBuilder.java:100

◆ maxPooledPerRoute()

HttpClientBuilder org.keycloak.connections.httpclient.HttpClientBuilder.maxPooledPerRoute ( int  maxPooledPerRoute)
inline
149  {
151  return this;
152  }
int maxPooledPerRoute
Definition: HttpClientBuilder.java:96

◆ proxyMappings()

HttpClientBuilder org.keycloak.connections.httpclient.HttpClientBuilder.proxyMappings ( ProxyMappings  proxyMappings)
inline
211  {
213  return this;
214  }
ProxyMappings proxyMappings
Definition: HttpClientBuilder.java:107

◆ socketTimeout()

HttpClientBuilder org.keycloak.connections.httpclient.HttpClientBuilder.socketTimeout ( long  timeout,
TimeUnit  unit 
)
inline

Socket inactivity timeout

引数
timeout
unit
戻り値
117  {
118  this.socketTimeout = timeout;
119  this.socketTimeoutUnits = unit;
120  return this;
121  }
long socketTimeout
Definition: HttpClientBuilder.java:102
TimeUnit socketTimeoutUnits
Definition: HttpClientBuilder.java:103

◆ sslContext()

HttpClientBuilder org.keycloak.connections.httpclient.HttpClientBuilder.sslContext ( SSLContext  sslContext)
inline
189  {
190  this.sslContext = sslContext;
191  return this;
192  }
SSLContext sslContext
Definition: HttpClientBuilder.java:94

◆ trustStore()

HttpClientBuilder org.keycloak.connections.httpclient.HttpClientBuilder.trustStore ( KeyStore  truststore)
inline
194  {
195  this.truststore = truststore;
196  return this;
197  }
KeyStore truststore
Definition: HttpClientBuilder.java:89

メンバ詳解

◆ clientKeyStore

KeyStore org.keycloak.connections.httpclient.HttpClientBuilder.clientKeyStore
protected

◆ clientPrivateKeyPassword

String org.keycloak.connections.httpclient.HttpClientBuilder.clientPrivateKeyPassword
protected

◆ connectionPoolSize

int org.keycloak.connections.httpclient.HttpClientBuilder.connectionPoolSize = 128
protected

◆ connectionTTL

long org.keycloak.connections.httpclient.HttpClientBuilder.connectionTTL = -1
protected

◆ connectionTTLUnit

TimeUnit org.keycloak.connections.httpclient.HttpClientBuilder.connectionTTLUnit = TimeUnit.MILLISECONDS
protected

◆ disableCookies

boolean org.keycloak.connections.httpclient.HttpClientBuilder.disableCookies = false
protected

◆ disableTrustManager

boolean org.keycloak.connections.httpclient.HttpClientBuilder.disableTrustManager
protected

◆ establishConnectionTimeout

long org.keycloak.connections.httpclient.HttpClientBuilder.establishConnectionTimeout = -1
protected

◆ establishConnectionTimeoutUnits

TimeUnit org.keycloak.connections.httpclient.HttpClientBuilder.establishConnectionTimeoutUnits = TimeUnit.MILLISECONDS
protected

◆ maxConnectionIdleTime

long org.keycloak.connections.httpclient.HttpClientBuilder.maxConnectionIdleTime = 900000
protected

◆ maxConnectionIdleTimeUnit

TimeUnit org.keycloak.connections.httpclient.HttpClientBuilder.maxConnectionIdleTimeUnit = TimeUnit.MILLISECONDS
protected

◆ maxPooledPerRoute

int org.keycloak.connections.httpclient.HttpClientBuilder.maxPooledPerRoute = 64
protected

◆ policy

HostnameVerificationPolicy org.keycloak.connections.httpclient.HttpClientBuilder.policy = HostnameVerificationPolicy.WILDCARD
protected

◆ proxyMappings

ProxyMappings org.keycloak.connections.httpclient.HttpClientBuilder.proxyMappings
protected

◆ socketTimeout

long org.keycloak.connections.httpclient.HttpClientBuilder.socketTimeout = -1
protected

◆ socketTimeoutUnits

TimeUnit org.keycloak.connections.httpclient.HttpClientBuilder.socketTimeoutUnits = TimeUnit.MILLISECONDS
protected

◆ sslContext

SSLContext org.keycloak.connections.httpclient.HttpClientBuilder.sslContext
protected

◆ truststore

KeyStore org.keycloak.connections.httpclient.HttpClientBuilder.truststore
protected

◆ verifier

HostnameVerifier org.keycloak.connections.httpclient.HttpClientBuilder.verifier = null
protected

このクラス詳解は次のファイルから抽出されました: