Spring Data Elasticsearch 和 x-pack 用户名/密码验证连接

使用Spring Data Elasticsearch连接elasticsearch时,正常情况下只需要在application.properites文件中添加如下配置即可连接:

spring.data.elasticsearch.repositories.enabled = true
spring.data.elasticsearch.cluster-name = es-cluster
spring.data.elasticsearch.cluster-nodes = 127.0.0.1:9300

可以看到Spring Data Elasticsearch连接elasticsearch很简单。

上面说的是正常情况,但是有些情况下连接需要验证。比如安装x-pack(旧版本的Shield、Marvel等)之后,访问elasticsearch就需要验证(未开启匿名访问),默认用户名/密码是:elastic/changeme,参考官方文档了解更多细节。

在这样的情况下,Spring Data Elasticsearch 该如何设置才能连接到 elasticsearch?目前最新版的 Spring Data Elasticsearch 2.1.6.Release 还不能通过配置的形式来完成。那要如何做,更换TransportClient即可!

修改依赖


<repository>
    <id>elasticsearch-releases</id>
    <url>https://artifacts.elastic.co/maven</url>
    <releases>
        <enabled>true</enabled>
    </releases>
    <snapshots>
        <enabled>false</enabled>
    </snapshots>
</repository>
...
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>x-pack-transport</artifactId>
    <version>5.5.0</version>
</dependency>

x-pack-transport 的版本号保持与elasticsearch一致。

重新实例化 TransportClient

@Bean
public TransportClient transportClient() throws UnknownHostException {
    TransportClient client = new PreBuiltXPackTransportClient(Settings.builder()
            .put("cluster.name", "es-cluster")
            .put("xpack.security.user", "elastic:changeme")
            .build())
            .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
    return client;
    }

就这么多,之前属性文件中的配置可以删除了,这样就能保证连接验证通过。

转自

http://www.chenyp.com/2017/09/03/spring-data-elasticsearch-with-authentication/

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值