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