• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

ES配置httphotoshop认证和用户密码授权的方法

武飞扬头像
焱童鞋
帮助1

   最近由于安全需要,需要对使用es组件的部分升级https认证和用户密码通讯,调整原有方法如下:

  1.  
    RestClientBuilder clientBuilder = RestClient.builder(new HttpHost(host, port, elasticsearchProtocol));
  2.  
    // 1. 设置公共请求头,每个请求都会带上这个请求头
  3.  
    setDefaultHeaders(clientBuilder);
  4.  
    // 3. 设置节点失败监听器
  5.  
    setFailListener(clientBuilder);
  6.  
    // 4. 设置节点选择器
  7.  
    clientBuilder.setNodeSelector(NodeSelector.SKIP_DEDICATED_MASTERS);
  8.  
    // 5. 配置HTTP异步请求ES的线程数
  9.  
    setHttpClientConfigCallback(clientBuilder);
  10.  
    // 6. 配置连接超时和套接字超时
  11.  
    setRequestConfigCallback(clientBuilder);
  12.  
    if ("true".equals(esSecurityEnable)) {
  13.  
    //启用es加密
  14.  
    // 8. 配置通信加密 安全认证
  15.  
    setSSLContext(clientBuilder);
  16.  
    }
  17.  
    return new RestHighLevelClient(clientBuilder);
学新通
  1.  
    private void setSSLContext(RestClientBuilder clientBuilder){
  2.  
     
  3.  
    try{
  4.  
    SSLContext sslContext = SSLContext.getInstance("TLS");
  5.  
    sslContext.init(null, new TrustManager[] { new X509TrustManager() {
  6.  
    @Override
  7.  
    public void checkClientTrusted(X509Certificate[] certs, String authType) {}
  8.  
    @Override
  9.  
    public void checkServerTrusted(X509Certificate[] certs, String authType) {}
  10.  
    @Override
  11.  
    public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; }
  12.  
    }}, null);
  13.  
     
  14.  
    // 认证相关配置
  15.  
    CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
  16.  
    credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(esUserName, esPass));
  17.  
     
  18.  
    clientBuilder.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
  19.  
    @Override
  20.  
    public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
  21.  
    return httpClientBuilder.
  22.  
    setDefaultCredentialsProvider(credentialsProvider).
  23.  
    setSSLContext(sslContext).
  24.  
    setSSLHostnameVerifier(new HostnameVerifier() {
  25.  
    @Override
  26.  
    public boolean verify(String hostname, SSLSession session) {
  27.  
    // TODO Auto-generated method stub
  28.  
    return true;
  29.  
    }
  30.  
    });
  31.  
    }
  32.  
    });
  33.  
    }catch (Exception e){
  34.  
    System.out.println("设置SSL正式错误!");
  35.  
    e.printStackTrace();
  36.  
    }
  37.  
    }
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbfbkc
系列文章
更多 icon
同类精品
更多 icon
继续加载