forked from docs/doc-exports
Reviewed-by: Kacur, Michal <michal.kacur@t-systems.com> Co-authored-by: Wuwan, Qi <wuwanqi1@noreply.gitea.eco.tsi-dev.otc-service.com> Co-committed-by: Wuwan, Qi <wuwanqi1@noreply.gitea.eco.tsi-dev.otc-service.com>
381 lines
28 KiB
HTML
381 lines
28 KiB
HTML
<a name="css_01_0183"></a><a name="css_01_0183"></a>
|
|
|
|
<h1 class="topictitle1">Sample Code for Two-Way Authentication During the Access to a Cluster</h1>
|
|
<div id="body0000001412998750"><p id="css_01_0183__en-us_topic_0000001412998750_p8060118">This section provides the sample code for two-way authentication during the access to a cluster from a Java client.</p>
|
|
<div class="section" id="css_01_0183__en-us_topic_0000001412998750_section1146765293619"><h4 class="sectiontitle">ESSecuredClientWithCerDemo Code</h4><div class="codecoloring" codetype="Java" id="css_01_0183__en-us_topic_0000001412998750_screen21051518342"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
16
|
|
17
|
|
18
|
|
19
|
|
20
|
|
21
|
|
22
|
|
23
|
|
24
|
|
25
|
|
26
|
|
27
|
|
28
|
|
29
|
|
30
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37
|
|
38
|
|
39
|
|
40
|
|
41
|
|
42
|
|
43
|
|
44
|
|
45
|
|
46
|
|
47
|
|
48
|
|
49
|
|
50
|
|
51
|
|
52
|
|
53
|
|
54
|
|
55
|
|
56
|
|
57
|
|
58
|
|
59
|
|
60
|
|
61
|
|
62
|
|
63
|
|
64
|
|
65
|
|
66
|
|
67
|
|
68
|
|
69
|
|
70
|
|
71
|
|
72
|
|
73
|
|
74
|
|
75
|
|
76
|
|
77
|
|
78
|
|
79
|
|
80
|
|
81
|
|
82
|
|
83
|
|
84
|
|
85
|
|
86
|
|
87
|
|
88
|
|
89
|
|
90
|
|
91
|
|
92
|
|
93
|
|
94
|
|
95
|
|
96
|
|
97
|
|
98
|
|
99
|
|
100
|
|
101
|
|
102
|
|
103</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">org.apache.commons.io.IOUtils</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.apache.http.auth.AuthScope</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.apache.http.auth.UsernamePasswordCredentials</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.apache.http.client.CredentialsProvider</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.apache.http.impl.client.BasicCredentialsProvider</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.apache.http.HttpHost</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.apache.http.nio.conn.ssl.SSLIOSessionStrategy</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.elasticsearch.action.search.SearchRequest</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.elasticsearch.action.search.SearchResponse</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.elasticsearch.client.RequestOptions</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.elasticsearch.client.RestClient</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.elasticsearch.client.RestClientBuilder</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.elasticsearch.client.RestHighLevelClient</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.elasticsearch.index.query.QueryBuilders</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.elasticsearch.search.SearchHit</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.elasticsearch.search.SearchHits</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.elasticsearch.search.builder.SearchSourceBuilder</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">java.io.FileInputStream</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">java.io.IOException</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">java.security.KeyStore</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">java.security.SecureRandom</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">javax.net.ssl.HostnameVerifier</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">javax.net.ssl.KeyManagerFactory</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">javax.net.ssl.SSLContext</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">javax.net.ssl.SSLSession</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">javax.net.ssl.TrustManagerFactory</span><span class="p">;</span>
|
|
<span class="kd">public</span> <span class="kd">class</span> <span class="nc">ESSecuredClientWithCerDemo</span> <span class="p">{</span>
|
|
<span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">KEY_STORE_PWD</span> <span class="o">=</span> <span class="s">""</span><span class="p">;</span>
|
|
<span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">TRUST_KEY_STORE_PWD</span> <span class="o">=</span> <span class="s">""</span><span class="p">;</span>
|
|
<span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">CA_JKS_PATH</span> <span class="o">=</span> <span class="s">"ca.jks"</span><span class="p">;</span>
|
|
<span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">CLIENT_JKS_PATH</span> <span class="o">=</span> <span class="s">"client.jks"</span><span class="p">;</span>
|
|
<span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">ELB_ADDRESS</span> <span class="o">=</span> <span class="s">"127.0.0.1"</span><span class="p">;</span>
|
|
<span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="kt">int</span> <span class="n">ELB_PORT</span> <span class="o">=</span> <span class="mi">9200</span><span class="p">;</span>
|
|
<span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">CSS_USERNAME</span> <span class="o">=</span> <span class="s">"user"</span><span class="p">;</span>
|
|
<span class="kd">private</span> <span class="kd">static</span> <span class="kd">final</span> <span class="n">String</span> <span class="n">CSS_PWD</span> <span class="o">=</span> <span class="s">""</span><span class="p">;</span>
|
|
<span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="c1">// Create a client.</span>
|
|
<span class="n">RestHighLevelClient</span> <span class="n">client</span> <span class="o">=</span> <span class="n">initESClient</span><span class="p">(</span><span class="n">ELB_ADDRESS</span><span class="p">,</span> <span class="n">CSS_USERNAME</span><span class="p">,</span> <span class="n">CSS_PWD</span><span class="p">);</span>
|
|
<span class="k">try</span> <span class="p">{</span>
|
|
<span class="c1">// Search match_all, which is equivalent to {\"query\": {\"match_all\": {}}}.</span>
|
|
<span class="n">SearchRequest</span> <span class="n">searchRequest</span> <span class="o">=</span> <span class="k">new</span> <span class="n">SearchRequest</span><span class="p">();</span>
|
|
<span class="n">SearchSourceBuilder</span> <span class="n">searchSourceBuilder</span> <span class="o">=</span> <span class="k">new</span> <span class="n">SearchSourceBuilder</span><span class="p">();</span>
|
|
<span class="n">searchSourceBuilder</span><span class="p">.</span><span class="na">query</span><span class="p">(</span><span class="n">QueryBuilders</span><span class="p">.</span><span class="na">matchAllQuery</span><span class="p">());</span>
|
|
<span class="n">searchRequest</span><span class="p">.</span><span class="na">source</span><span class="p">(</span><span class="n">searchSourceBuilder</span><span class="p">);</span>
|
|
<span class="c1">// query</span>
|
|
<span class="n">SearchResponse</span> <span class="n">searchResponse</span> <span class="o">=</span> <span class="n">client</span><span class="p">.</span><span class="na">search</span><span class="p">(</span><span class="n">searchRequest</span><span class="p">,</span> <span class="n">RequestOptions</span><span class="p">.</span><span class="na">DEFAULT</span><span class="p">);</span>
|
|
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"query result: "</span> <span class="o">+</span> <span class="n">searchResponse</span><span class="p">.</span><span class="na">toString</span><span class="p">());</span>
|
|
<span class="n">SearchHits</span> <span class="n">hits</span> <span class="o">=</span> <span class="n">searchResponse</span><span class="p">.</span><span class="na">getHits</span><span class="p">();</span>
|
|
<span class="k">for</span> <span class="p">(</span><span class="n">SearchHit</span> <span class="n">hit</span> <span class="p">:</span> <span class="n">hits</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">hit</span><span class="p">.</span><span class="na">getSourceAsString</span><span class="p">());</span>
|
|
<span class="p">}</span>
|
|
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"query success"</span><span class="p">);</span>
|
|
<span class="n">Thread</span><span class="p">.</span><span class="na">sleep</span><span class="p">(</span><span class="mi">2000L</span><span class="p">);</span>
|
|
<span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="n">InterruptedException</span> <span class="o">|</span> <span class="n">IOException</span> <span class="n">e</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="n">e</span><span class="p">.</span><span class="na">printStackTrace</span><span class="p">();</span>
|
|
<span class="p">}</span> <span class="k">finally</span> <span class="p">{</span>
|
|
<span class="n">IOUtils</span><span class="p">.</span><span class="na">closeQuietly</span><span class="p">(</span><span class="n">client</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
<span class="kd">private</span> <span class="kd">static</span> <span class="n">RestHighLevelClient</span> <span class="nf">initESClient</span><span class="p">(</span><span class="n">String</span> <span class="n">clusterAddress</span><span class="p">,</span> <span class="n">String</span> <span class="n">userName</span><span class="p">,</span> <span class="n">String</span> <span class="n">password</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="kd">final</span> <span class="n">CredentialsProvider</span> <span class="n">credentialsProvider</span> <span class="o">=</span> <span class="k">new</span> <span class="n">BasicCredentialsProvider</span><span class="p">();</span>
|
|
<span class="n">credentialsProvider</span><span class="p">.</span><span class="na">setCredentials</span><span class="p">(</span><span class="n">AuthScope</span><span class="p">.</span><span class="na">ANY</span><span class="p">,</span> <span class="k">new</span> <span class="n">UsernamePasswordCredentials</span><span class="p">(</span><span class="n">userName</span><span class="p">,</span> <span class="n">password</span><span class="p">));</span>
|
|
<span class="n">SSLContext</span> <span class="n">ctx</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="k">try</span> <span class="p">{</span>
|
|
<span class="n">KeyStore</span> <span class="n">ks</span> <span class="o">=</span> <span class="n">getKeyStore</span><span class="p">(</span><span class="n">CLIENT_JKS_PATH</span><span class="p">,</span> <span class="n">KEY_STORE_PWD</span><span class="p">,</span> <span class="s">"JKS"</span><span class="p">);</span>
|
|
<span class="n">KeyManagerFactory</span> <span class="n">kmf</span> <span class="o">=</span> <span class="n">KeyManagerFactory</span><span class="p">.</span><span class="na">getInstance</span><span class="p">(</span><span class="s">"SunX509"</span><span class="p">);</span>
|
|
<span class="n">kmf</span><span class="p">.</span><span class="na">init</span><span class="p">(</span><span class="n">ks</span><span class="p">,</span> <span class="n">KEY_STORE_PWD</span><span class="p">.</span><span class="na">toCharArray</span><span class="p">());</span>
|
|
<span class="n">KeyStore</span> <span class="n">tks</span> <span class="o">=</span> <span class="n">getKeyStore</span><span class="p">(</span><span class="n">CA_JKS_PATH</span><span class="p">,</span> <span class="n">TRUST_KEY_STORE_PWD</span><span class="p">,</span> <span class="s">"JKS"</span><span class="p">);</span>
|
|
<span class="n">TrustManagerFactory</span> <span class="n">tmf</span> <span class="o">=</span> <span class="n">TrustManagerFactory</span><span class="p">.</span><span class="na">getInstance</span><span class="p">(</span><span class="s">"SunX509"</span><span class="p">);</span>
|
|
<span class="n">tmf</span><span class="p">.</span><span class="na">init</span><span class="p">(</span><span class="n">tks</span><span class="p">);</span>
|
|
<span class="n">ctx</span> <span class="o">=</span> <span class="n">SSLContext</span><span class="p">.</span><span class="na">getInstance</span><span class="p">(</span><span class="s">"SSL"</span><span class="p">,</span> <span class="s">"SunJSSE"</span><span class="p">);</span>
|
|
<span class="n">ctx</span><span class="p">.</span><span class="na">init</span><span class="p">(</span><span class="n">kmf</span><span class="p">.</span><span class="na">getKeyManagers</span><span class="p">(),</span> <span class="n">tmf</span><span class="p">.</span><span class="na">getTrustManagers</span><span class="p">(),</span> <span class="k">new</span> <span class="n">SecureRandom</span><span class="p">());</span>
|
|
<span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="n">Exception</span> <span class="n">e</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="n">e</span><span class="p">.</span><span class="na">printStackTrace</span><span class="p">();</span>
|
|
<span class="p">}</span>
|
|
<span class="n">SSLIOSessionStrategy</span> <span class="n">sessionStrategy</span> <span class="o">=</span> <span class="k">new</span> <span class="n">SSLIOSessionStrategy</span><span class="p">(</span><span class="n">ctx</span><span class="p">,</span> <span class="k">new</span> <span class="n">HostnameVerifier</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="nd">@Override</span>
|
|
<span class="kd">public</span> <span class="kt">boolean</span> <span class="nf">verify</span><span class="p">(</span><span class="n">String</span> <span class="n">arg0</span><span class="p">,</span> <span class="n">SSLSession</span> <span class="n">arg1</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="kc">true</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="p">});</span>
|
|
<span class="n">SecuredHttpClientConfigCallback</span> <span class="n">httpClientConfigCallback</span> <span class="o">=</span> <span class="k">new</span> <span class="n">SecuredHttpClientConfigCallback</span><span class="p">(</span><span class="n">sessionStrategy</span><span class="p">,</span>
|
|
<span class="n">credentialsProvider</span><span class="p">);</span>
|
|
<span class="n">RestClientBuilder</span> <span class="n">builder</span> <span class="o">=</span> <span class="n">RestClient</span><span class="p">.</span><span class="na">builder</span><span class="p">(</span><span class="k">new</span> <span class="n">HttpHost</span><span class="p">(</span><span class="n">clusterAddress</span><span class="p">,</span> <span class="n">ELB_PORT</span><span class="p">,</span> <span class="s">"https"</span><span class="p">))</span>
|
|
<span class="p">.</span><span class="na">setHttpClientConfigCallback</span><span class="p">(</span><span class="n">httpClientConfigCallback</span><span class="p">);</span>
|
|
<span class="n">RestHighLevelClient</span> <span class="n">client</span> <span class="o">=</span> <span class="k">new</span> <span class="n">RestHighLevelClient</span><span class="p">(</span><span class="n">builder</span><span class="p">);</span>
|
|
<span class="k">return</span> <span class="n">client</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="kd">private</span> <span class="kd">static</span> <span class="n">KeyStore</span> <span class="nf">getKeyStore</span><span class="p">(</span><span class="n">String</span> <span class="n">path</span><span class="p">,</span> <span class="n">String</span> <span class="n">pwd</span><span class="p">,</span> <span class="n">String</span> <span class="n">type</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="n">KeyStore</span> <span class="n">keyStore</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="n">FileInputStream</span> <span class="n">is</span> <span class="o">=</span> <span class="kc">null</span><span class="p">;</span>
|
|
<span class="k">try</span> <span class="p">{</span>
|
|
<span class="n">is</span> <span class="o">=</span> <span class="k">new</span> <span class="n">FileInputStream</span><span class="p">(</span><span class="n">path</span><span class="p">);</span>
|
|
<span class="n">keyStore</span> <span class="o">=</span> <span class="n">KeyStore</span><span class="p">.</span><span class="na">getInstance</span><span class="p">(</span><span class="n">type</span><span class="p">);</span>
|
|
<span class="n">keyStore</span><span class="p">.</span><span class="na">load</span><span class="p">(</span><span class="n">is</span><span class="p">,</span> <span class="n">pwd</span><span class="p">.</span><span class="na">toCharArray</span><span class="p">());</span>
|
|
<span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="n">Exception</span> <span class="n">e</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="n">e</span><span class="p">.</span><span class="na">printStackTrace</span><span class="p">();</span>
|
|
<span class="p">}</span> <span class="k">finally</span> <span class="p">{</span>
|
|
<span class="n">IOUtils</span><span class="p">.</span><span class="na">closeQuietly</span><span class="p">(</span><span class="n">is</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="k">return</span> <span class="n">keyStore</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</td></tr></table></div>
|
|
</div>
|
|
<div class="section" id="css_01_0183__en-us_topic_0000001412998750_section177951919193614"><h4 class="sectiontitle">SecuredHttpClientConfigCallback Code</h4><div class="codecoloring" codetype="Java" id="css_01_0183__en-us_topic_0000001412998750_screen6102416173614"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
|
|
2
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7
|
|
8
|
|
9
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14
|
|
15
|
|
16
|
|
17
|
|
18
|
|
19
|
|
20
|
|
21
|
|
22
|
|
23
|
|
24
|
|
25
|
|
26
|
|
27
|
|
28
|
|
29
|
|
30
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37
|
|
38
|
|
39
|
|
40
|
|
41
|
|
42
|
|
43
|
|
44
|
|
45
|
|
46
|
|
47
|
|
48
|
|
49
|
|
50
|
|
51
|
|
52
|
|
53
|
|
54
|
|
55
|
|
56
|
|
57
|
|
58
|
|
59</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">org.apache.http.client.CredentialsProvider</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.apache.http.impl.nio.client.HttpAsyncClientBuilder</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.apache.http.nio.conn.ssl.SSLIOSessionStrategy</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.elasticsearch.client.RestClientBuilder</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">org.elasticsearch.common.Nullable</span><span class="p">;</span>
|
|
<span class="kn">import</span> <span class="nn">java.util.Objects</span><span class="p">;</span>
|
|
<span class="kd">class</span> <span class="nc">SecuredHttpClientConfigCallback</span> <span class="kd">implements</span> <span class="n">RestClientBuilder</span><span class="p">.</span><span class="na">HttpClientConfigCallback</span> <span class="p">{</span>
|
|
<span class="nd">@Nullable</span>
|
|
<span class="kd">private</span> <span class="kd">final</span> <span class="n">CredentialsProvider</span> <span class="n">credentialsProvider</span><span class="p">;</span>
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * The {@link SSLIOSessionStrategy} for all requests to enable SSL / TLS encryption.</span>
|
|
<span class="cm"> */</span>
|
|
<span class="kd">private</span> <span class="kd">final</span> <span class="n">SSLIOSessionStrategy</span> <span class="n">sslStrategy</span><span class="p">;</span>
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Create a new {@link SecuredHttpClientConfigCallback}.</span>
|
|
<span class="cm"> *</span>
|
|
<span class="cm"> * @param credentialsProvider The credential provider, if a username/password have been supplied</span>
|
|
<span class="cm"> * @param sslStrategy The SSL strategy, if SSL / TLS have been supplied</span>
|
|
<span class="cm"> * @throws NullPointerException if {@code sslStrategy} is {@code null}</span>
|
|
<span class="cm"> */</span>
|
|
<span class="n">SecuredHttpClientConfigCallback</span><span class="p">(</span><span class="kd">final</span> <span class="n">SSLIOSessionStrategy</span> <span class="n">sslStrategy</span><span class="p">,</span>
|
|
<span class="nd">@Nullable</span> <span class="kd">final</span> <span class="n">CredentialsProvider</span> <span class="n">credentialsProvider</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="k">this</span><span class="p">.</span><span class="na">sslStrategy</span> <span class="o">=</span> <span class="n">Objects</span><span class="p">.</span><span class="na">requireNonNull</span><span class="p">(</span><span class="n">sslStrategy</span><span class="p">);</span>
|
|
<span class="k">this</span><span class="p">.</span><span class="na">credentialsProvider</span> <span class="o">=</span> <span class="n">credentialsProvider</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Get the {@link CredentialsProvider} that will be added to the HTTP client.</span>
|
|
<span class="cm"> *</span>
|
|
<span class="cm"> * @return Can be {@code null}.</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nd">@Nullable</span>
|
|
<span class="n">CredentialsProvider</span> <span class="nf">getCredentialsProvider</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="n">credentialsProvider</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Get the {@link SSLIOSessionStrategy} that will be added to the HTTP client.</span>
|
|
<span class="cm"> *</span>
|
|
<span class="cm"> * @return Never {@code null}.</span>
|
|
<span class="cm"> */</span>
|
|
<span class="n">SSLIOSessionStrategy</span> <span class="nf">getSSLStrategy</span><span class="p">()</span> <span class="p">{</span>
|
|
<span class="k">return</span> <span class="n">sslStrategy</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="cm">/**</span>
|
|
<span class="cm"> * Sets the {@linkplain HttpAsyncClientBuilder#setDefaultCredentialsProvider(CredentialsProvider) credential provider},</span>
|
|
<span class="cm"> *</span>
|
|
<span class="cm"> * @param httpClientBuilder The client to configure.</span>
|
|
<span class="cm"> * @return Always {@code httpClientBuilder}.</span>
|
|
<span class="cm"> */</span>
|
|
<span class="nd">@Override</span>
|
|
<span class="kd">public</span> <span class="n">HttpAsyncClientBuilder</span> <span class="nf">customizeHttpClient</span><span class="p">(</span><span class="kd">final</span> <span class="n">HttpAsyncClientBuilder</span> <span class="n">httpClientBuilder</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="c1">// enable SSL / TLS</span>
|
|
<span class="n">httpClientBuilder</span><span class="p">.</span><span class="na">setSSLStrategy</span><span class="p">(</span><span class="n">sslStrategy</span><span class="p">);</span>
|
|
<span class="c1">// enable user authentication</span>
|
|
<span class="k">if</span> <span class="p">(</span><span class="n">credentialsProvider</span> <span class="o">!=</span> <span class="kc">null</span><span class="p">)</span> <span class="p">{</span>
|
|
<span class="n">httpClientBuilder</span><span class="p">.</span><span class="na">setDefaultCredentialsProvider</span><span class="p">(</span><span class="n">credentialsProvider</span><span class="p">);</span>
|
|
<span class="p">}</span>
|
|
<span class="k">return</span> <span class="n">httpClientBuilder</span><span class="p">;</span>
|
|
<span class="p">}</span>
|
|
<span class="p">}</span>
|
|
</pre></div>
|
|
</td></tr></table></div>
|
|
</div>
|
|
<div class="section" id="css_01_0183__en-us_topic_0000001412998750_section5394175153518"><h4 class="sectiontitle">pom.xml Code</h4><pre class="screen" id="css_01_0183__en-us_topic_0000001412998750_screen16223287351"><?xml version="1.0" encoding="UTF-8"?>
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
<groupId>1</groupId>
|
|
<artifactId>ESClient</artifactId>
|
|
<version>1.0-SNAPSHOT</version>
|
|
<name>ESClient</name>
|
|
|
|
<properties>
|
|
<maven.compiler.source>8</maven.compiler.source>
|
|
<maven.compiler.target>8</maven.compiler.target>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<elasticsearch.version>7.10.2</elasticsearch.version>
|
|
</properties>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>org.elasticsearch.client</groupId>
|
|
<artifactId>transport</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.elasticsearch</groupId>
|
|
<artifactId>elasticsearch</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.elasticsearch.client</groupId>
|
|
<artifactId>elasticsearch-rest-high-level-client</artifactId>
|
|
<version>${elasticsearch.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>commons-io</groupId>
|
|
<artifactId>commons-io</artifactId>
|
|
<version>2.11.0</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</project></pre>
|
|
</div>
|
|
<p id="css_01_0183__en-us_topic_0000001412998750_p1431519334354"></p>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="css_01_0184.html">(Optional) Interconnecting with a Dedicated Load Balancer</a></div>
|
|
</div>
|
|
</div>
|
|
|