禁用集成测试的屏蔽

时间:2015-04-20 09:33:53

标签: java elasticsearch-plugin elasticsearch elasticsearch-shield

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

  1. 许可证有效期为30天。该文档非常清楚地描述了如何使用各种工具来完成此任务,但它并没有说明如何通过JAVA API更新许可证。
  2. 我得到一个org.elasticsearch.shield.authz.AuthorizationException:action [indices:data / write / index]对用户[__es_system_user]是未授权的。发生这种情况是因为我的节点没有配置任何用户。文档再次描述了如何将用户添加到节点,但没有解释如何使用JAVA API实现此目的。
  3. 我想知道是否可以禁用集成测试的屏蔽。我尝试了以下方法,但它没有奏效。任何帮助表示赞赏。

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

1 个答案:

答案 0 :(得分:0)

您使用的是哪种版本的Elasticsearch和Shield? shield.enabled适合我;我只是在一个简单的maven项目中使用ES 1.5.2和Shield 1.2.0进行了以下操作

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());

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