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();  
   }  
}

 

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