ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – Spring中的Elasticsearch HTTP身份验证

2019-06-28 09:47:54  阅读:240  来源: 互联网

标签:java spring-data elasticsearch http-authentication xml-configuration


我想访问受用户名和密码保护的远程elasticsearch. https://[username]:[password]@aws-eu-west-1-portal1.dblayer.com:11109/

在Spring中使用XML配置我能够访问我的localhost弹性,如下所示

<!-- ElasticSearch -->
<elasticsearch:repositories base-package="be.smartsearch.service.repository.elasticsearch" />

<elasticsearch:transport-client id="esClient" cluster-nodes="localhost:9300" />

<bean id="elasticsearchTemplate" class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate">
  <constructor-arg name="client" ref="esClient" />
</bean>

到目前为止我找到的唯一有用的文档是PHP:https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/_security.html

如何使用XML配置使用Spring数据中的凭据连接到远程elasticsearh?

更新1

在Mongo,我可以通过以下方法完成

<!-- Mongo -->
<mongo:mongo host="${mongo.host}" port="${mongo.port}"/>

<mongo:db-factory dbname="SmartSearchAfterDemo" mongo-ref="mongo" username="${mongo.user}" password="${mongo.password}"/>
<!--<mongo:db-factory dbname="${mongo.dbname}" mongo-ref="mongo"/> -->

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
</bean>

<mongo:repositories base-package="be.smartsearch.service.repository.mongo"/>

解决方法:

Spring Data Elasticsearch基于使用二进制传输procol的官方Elasticsearch Java客户端(而不是像PHP这样的REST HTTP procol).

如果您使用Shield来保护您的Elasticsearch,那么您可以在Transport client / Transport procol上设置用户/密码

TransportClient client = TransportClient.builder()
    .addPlugin(ShieldPlugin.class)
    .settings(Settings.builder()
        .put("cluster.name", "yourcluster")
        .put("shield.user", "youruser:yourpassword")
        ...
        .build())

如果您不想使用Java代码中的HTTP协议,那么社区客户端就会:

> Jest,支持HTTP authentication
> Elasticsearch HTTP这是非常新的

但是这些解决方案与Spring Data不兼容

标签:java,spring-data,elasticsearch,http-authentication,xml-configuration
来源: https://codeday.me/bug/20190628/1314260.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有