当前位置: 首页 > 知识库问答 >
问题:

Solrj-启用身份验证插件时无法提交更新

谷隐水
2023-03-14

使用Solr 6.3.0,在云模式下,使用3个外部Zookeepers作为集群,并使用Solrj作为客户端。

在启用身份验证之前,我使用以下代码添加/更新文档:

    CloudSolrClient client = cloudClientBuilder.build();
    UpdateResponse resp = client.add(doc, 5000);
    client.commit();
    client.close();
    return resp;

它工作良好,新的文档立即在搜索结果。

然后我启用了基本身份验证插件基于规则的授权插件(如果重要的话,还启用了SSL)。

为了设置凭据信息,代码重构如下:

    // create request,
    UpdateRequest req = new UpdateRequest();

    // add doc to request,
    req.add(doc, 5000);

    // set credential,
    req.setBasicAuthCredentials(user, password);

    // create client,
    CloudSolrClient client = cloudClientBuilder.build();
    client.setDefaultCollection(ConfigUtil.getProp(ConfigUtil.KEY_SOLR_CORE));
    // do request & get response,
    UpdateResponse resp = req.process(client);

    client.commit();
    client.close();

curl-k--用户solr:password“https://localhost:8983/solr/corexxxx/update?wt=json&indent=true&commit=true”-d'[{“id”:“20041”,“name”:“xxx 41”,“location”:“xxx”,“description”:“xxx”}]'

它成功地promise了!并且,在搜索结果中可以立即看到更新。

我猜

  • 代码B为什么出现HTTP 401错误?我如何修复它?
  • 我是否可以使用来自的代码,并且仍然能够提供凭据信息,如果是,那么如何提供?

多谢了。

共有1个答案

左丘边浩
2023-03-14

您应该更改client.commit()对于req.commit(client,configutil.getprop(configutil.key_solr_core)),凭据是在updateRequest中设置的。

 类似资料:
  • 问题内容: 我正在将MySQL-8.0与MySQL Workbench连接起来并出现以下错误: 无法加载身份验证插件“ caching_sha2_password”:dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so,2):找不到映像 我也尝试过使用其他客户端工具。 有什么解决办法吗? 问题答案: 已锁定 。目前,此答案的内容已解

  • 我已将MongoDB副本设置为启用身份验证。我想更改副本集名称。为此,我必须从集合中删除文档。我为admin用户分配了角色,也为普通用户分配了角色。当我尝试用上面的任何用户从shell中执行时,我会得到异常: 如果我尝试在没有启用身份验证的情况下对副本集执行相同的命令,我可以成功地删除该记录。为了让用户从中删除记录,我缺少了什么角色?还是在启用身份验证时不支持?

  • 我正在尝试配置laravel的auth以适合我的db。但无论我做什么,都会覆盖像或在LoginController中,它忽略所有内容。有人知道如何用不同的数据库参数化laravel的身份吗? 以下是我在LoginController中更改的内容: 在用户模型中: 编辑:config/auth.php: ]; LoginController: 名称空间App\Http\Controllers\Aut

  • 我在Ubuntu上安装了自己的Jitsi实例,遵循使用官方软件包的文档。这很有魅力。但我不想有一个完全开放的实例,所以我遵循了https://github.com/jitsi/jicofo#secure-域需要登录才能创建会议。 据我所知,我完全遵循了文档,但在重新启动Jitsi后,我无法再创建会议。我看到以下行为: 私人网址:我得到一个消息,会议还没有开始,还有一个“我是主持人”按钮。如果我按下

  • 我正在尝试使用Facebook凭据实现网站登录。当我在Facebook小部件上按“取消”或“确定”时,我会看到不同的反应。当我按Cancel时,我看到以下内容 这是可预测的。但是当我按OK时,我看到另一个错误。 我在本地运行的网站Ubuntu 14.04 apache Web服务器与80端口。我怀疑错误的Facebook应用程序设置,但不知道调试什么。 此外,我可以提到推特登录也在相同的设置下工作