java查询ES数据时,报错missing authentication credentials for REST request

这篇具有很好参考价值的文章主要介绍了java查询ES数据时,报错missing authentication credentials for REST request。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 通过java代码查询ES里数据时,报错缺少身份认证凭证,但在注册RestClient的时候已经提供了用户名、密码,并且测试环境没有出现这个问题,生产环境报错。

如下,在查询数据时new了ElasticsearchClient,使用该客户端进行查询,注册client时提供了用户密码

ElasticsearchTransport transport = new RestClientTransport(
                client, new JacksonJsonpMapper());
        ElasticsearchClient eSclient = new ElasticsearchClient(transport);

注册client的代码 

RestClientBuilder builder = RestClient.builder(httpHosts);
        if(StringUtils.isNotBlank(elasticsearchClusterName)&&StringUtils.isNotBlank(elasticsearchPassword)){
            log.debug("ES用户名密码不为空,设置用户名、密码:username="+elasticsearchUsername+",passwd="+elasticsearchPassword);
            final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
            credentialsProvider.setCredentials(AuthScope.ANY,
                    new UsernamePasswordCredentials(elasticsearchUsername, elasticsearchPassword));
            builder.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
                @Override
                public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                    return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                }
            });
        }

网上查询没有答案,检查用户名密码正确,于是有点怀疑注册时没有进if(这个时候还是没发现条件写错了),最后在if里加了这句日志,启动应用发现果然没有进if。

仔细看了判断条件,然后发现是判断条件写错导致没进if。条件里本该写elasticsearchUsername的地方由于粗心写成了elasticsearchClusterName(这两个变量长得差不多,根据自动提示选错了),刚好生产环境的elasticsearchClusterName为空,导致没有添加相关凭证。而测试环境的clustername设了值,所以没有报错。修改条件后,报错解决。

记一次粗心导致报错的经历,以后一定要细心,浪费了不少时间。 ̄□ ̄||文章来源地址https://www.toymoban.com/news/detail-854469.html

到了这里,关于java查询ES数据时,报错missing authentication credentials for REST request的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • elasticSearch大量数据查询导出报错解决es

    elasticsearch的client包下的HeapBufferedAsyncResponseConsumer类中传入了bufferLimit,该值 org.apache.http.nio.protocol.HttpAsyncResponseConsumer 的默认实现。在堆内存中缓冲整个响应内容,这意味着缓冲区的大小等于响应的内容长度。根据可配置的参数限制可以读取的响应的大小。如果实体长于配置

    2023年04月16日
    浏览(46)
  • git 免密登录/密钥失效/Missing or invalid credentials.

    Missing or invalid credentials. 应该是原来创建的token过期了,直接执行步骤3即可 pull时再输入一遍用户名和token以后就不用输入了 references: https://cloud.tencent.com/developer/article/2235142 https://www.cnblogs.com/convict/p/14888283.html

    2024年02月03日
    浏览(47)
  • 链接KAFKA异常:Authentication failed during authentication due to invalid credentials with SASL mechanism

    使用带kerberos 认证的Kafka客户端链接kafka 创建topic 出现如下异常:Authentication failed during authentication due to invalid credentials with SASL mechanism。kafka server 后台只有如下异常信息: 开始排查问题原因: 通过查看Kafka源代码定位到错误大致发生在: 大概是在  saslServer.evaluateResponse 的时

    2024年02月11日
    浏览(44)
  • Java操作es插入数据后,立即查询没结果解决办法

    原因:ES默认不执行刷新操作,需要手动设置参数才能在更新文档后立即刷新。 从以下源码中可以看出刷新策略有三种: NONE(“false”)、IMMEDIATE(“true”)、WAIT_UNTIL(“wait_for”) 添加位置如下: 官网地址:es批量操作官方文档 注:默认是不进行刷新的,因此需要手动添加进行刷

    2024年02月12日
    浏览(46)
  • Java查询es数据,根据指定id检索(in查询),sql权限过滤,多字段匹配检索,数据排序

    Java集成Elasticsearch,进行索引数据查询,并进行sql权限过滤,指定id检索(in查询),多字段匹配检索,数据排序。由于权限过滤是根据sql语句判断当前用户或其部门可查询的数据,所以采用以下方法: 1.通过sql过滤出当前用户可查询的数据id集合idsList; 2.将当前用户可查询的

    2024年02月22日
    浏览(66)
  • ElasticSearch如何使用以及java代码如何查询并排序ES中的数据(距离排序)

    import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.geo.GeoDistance; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.TransportAddress; import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.common.unit.

    2024年04月12日
    浏览(51)
  • 使用linux命令查询es报错

    近期遇到一个问题,生产环境没有elasticsearch-head,需要用linux命令查询es,所以我从网上搜索到查询的命令执行,但是却报403: 报错信息: {\\\"error\\\":{\\\"root_cause\\\":[{\\\"type\\\":\\\"transport_exception\\\",\\\"reason\\\":\\\"Forbidden\\\"}],\\\"type\\\":\\\"transport_exception\\\",\\\"reason\\\":\\\"Forbidden\\\"},\\\"status\\\":403} 因为在测试环境使用elastics

    2024年02月12日
    浏览(52)
  • Java向ES库中插入数据报错:I/O reactor status: STOPPED

    在使用Java向ES库中插入数据时,第一次成功插入,第二次出现以下错误: java.lang.IllegalStateException: Request cannot be executed; I/O reactor status: STOPPED at 这里显示是连接中断,第一次遇到这个问题,比较疑惑为什么es的客户端会中断,理论上es client 是长连接,不停的有数据写入,连接

    2024年03月26日
    浏览(47)
  • “error“:{“root_cause“:[{“type“:“security_exception“,“reason“:“missing authentication token for REST

    出现此401错误 {\\\"error\\\":{\\\"root_cause\\\":[{\\\"type\\\":\\\"security_exception\\\",\\\"reason\\\":\\\"missing authentication token for REST request [/idx]\\\",\\\"header\\\":{\\\"WWW-Authenticate\\\":\\\"Basic realm=\\\"security\\\" charset=\\\"UTF-8\\\"\\\"}}],\\\"type\\\":\\\"security_exception\\\",\\\"reason\\\":\\\"missing authentication token for REST request [/idx]\\\",\\\"header\\\":{\\\"WWW-Authenticate\\\":\\\"Basic realm=\\\"security\\\"

    2024年02月05日
    浏览(36)
  • ES es Elasticsearch 十三 Java api 实现搜索 分页查询 复杂查询 过滤查询 ids查询 等

    目录 Java api 实现搜索 Pom.xml 建立链接 搜索全部记录 增加规则值查某些字段 搜索分页 全代码 Ids 搜索 搜索Match搜索 multi_match 搜索 多字段搜索 复杂查询 bool查询 filter  bool 复杂查询增加过滤器查询 复杂擦好像加排序 日志 思路 参考 api 写法 写Java代码 请求条件构建层次

    2024年02月04日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包