0

我有一个应用程序使用 JAVA API 通过传输客户端连接到另一台服务器上的弹性搜索节点。该节点启用了屏蔽安全性,因此我使用 maven 获取屏蔽 jar。我的应用程序运行良好。但是,现在我正在尝试为我的应用程序的构建过程设置集成测试。因此,我没有尝试传输客户端,而是尝试运行本地节点来运行我的测试。但是,本地节点抱怨以下问题。

  1. 许可证的有效期仅为 30 天。该文档完美地描述了如何使用各种工具执行此操作,但没有说明如何通过 JAVA API 更新许可证。
  2. 我收到 org.elasticsearch.shield.authz.AuthorizationException:用户 [__es_system_user] 的操作 [indices:data/write/index] 未经授权。发生这种情况是因为我的节点没有配置任何用户。文档再次完美地描述了如何将用户添加到节点,但没有解释如何使用 JAVA API 完成此操作。

这我想知道是否可以禁用集成测试的屏蔽。我尝试了以下方法,但没有奏效。任何帮助表示赞赏。

nodeBuilder().local(true).settings(ImmutableSettings.builder()
    .put("shield.enabled", false)).build()
4

1 回答 1

0

您使用的是哪个版本的 Elasticsearch 和 Shield?shield.enabled为我工作;我刚刚在一个带有 ES 1.5.2 和 Shield 1.2.0 的简单 maven 项目中做了以下操作

final Node node = NodeBuilder.nodeBuilder()
            .settings(ImmutableSettings.builder().put("shield.enabled", false))
            .local(true).node();
Client client = node.client();
ClusterHealthResponse response = client.admin().cluster().prepareHealth().get();
System.out.println(response.toString());

执行此操作时没有关于许可的错误。如果您仍然有一些错误,您可以将它们添加到您的原始帖子中吗?

于 2015-04-28T13:39:04.083 回答