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