SearchGuard客户端连接

java 连接要searchguard认证的es

  • pom.xml文件加入依赖
<!-- es插件 -->  
       <dependency>  
           <groupId>org.springframework.data</groupId>  
           <artifactId>spring-data-elasticsearch</artifactId>  
           <version>3.0.4.RELEASE</version>  
       </dependency>  
       <dependency>  
           <groupId>org.elasticsearch</groupId>  
           <artifactId>elasticsearch</artifactId>  
             <!--<version>6.5.4</version>-->  
           <version>5.6.14</version>  
       </dependency>  
       <!--SearchGurageSSL认证-->  
       <dependency>  
           <groupId>com.floragunn</groupId>  
           <artifactId>search-guard-ssl</artifactId>  
           <!--<version>6.5.4-25.5</version>-->  
           <version>5.6.14-23</version>  
       </dependency>

 

  • 复制根节点证书(root-ca.pem)、客户端证书(spock.key,spock.pem)到项目resource/ssl目录下
  • 配置类ElasticConfig.java
/**  
 * es配置  
 *  
 * @author shuen  
 * @date 2019/2/11  
 */  
@Configuration  
@EnableElasticsearchRepositories(basePackages = "com.ebuy.cloud.service.elasticsearch.service")  
public class ElasticConfig {

   /**  
     * 注入的ElasticSearch实例  
     */  
    @Bean(name = "esClient")  
   public TransportClient getclient()throws Exception {

       Settings settings = Settings.builder()  
                .put(SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_PEMKEY_FILEPATH, ResourceUtils.getFile("classpath:ssl/spock.key"))  
                .put(SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_PEMCERT_FILEPATH, ResourceUtils.getFile("classpath:ssl/spock.pem"))  
                .put(SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_PEMTRUSTEDCAS_FILEPATH, ResourceUtils.getFile("classpath:ssl/root-ca.pem"))  
                .put(SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_PEMKEY_PASSWORD, "3QgfFoYd8Ken")  
                .put("cluster.name", "ebuy-cloud-cluster")  
                .build();

       TransportClient client = new PreBuiltTransportClient(settings, SearchGuardSSLPlugin.class)  
                .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.71.246"), 9300));

       client.admin().cluster().nodesInfo(new NodesInfoRequest()).actionGet();

       return client;  
    }  
}

 

  • 测试类SearchGuardSSLTest.java
public static void main(String[] args) throws UnknownHostException {

        Settings settings = Settings.builder()  
                .put(SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_PEMKEY_FILEPATH, "E://elasticsearch//spock.key")  
                .put(SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_PEMCERT_FILEPATH, "E://elasticsearch//spock.pem")  
                .put(SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_PEMTRUSTEDCAS_FILEPATH, "E://elasticsearch//root-ca.pem")  
                .put(SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_PEMKEY_PASSWORD, "3QgfFoYd8Ken")  
                .put("cluster.name", "ebuy-cloud-cluster")  
                .build();

        TransportClient client = new PreBuiltTransportClient(settings, SearchGuardSSLPlugin.class)  
//                .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("172.31.1.2"), 9300))  
                .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.71.246"), 9300));

        client.admin().cluster().nodesInfo(new NodesInfoRequest()).actionGet();//搜索数据

        GetResponse response = client.prepareGet("agin", "log_bet_rcd_agin_live", "171212226218993").execute().actionGet();//输出结果     
       System.out.println(response.getSourceAsString());  
       //关闭  
        client.close();  
   }  
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章