在哪里设置方解石弹性搜索用户名/密码



我正试图使用Apache Calcite连接到ElasticSearch,但在设置用户名密码时遇到问题。

我曾尝试用operand(基于JSON(、Properties(DriverManager.getConnection(String url, Properties config)(和DriverManager.getConnection(String url, username, password)配置用户名/密码,但都无法使它们发挥作用。

我之前已经将这个问题发布到Apache JIRA

我的代码如下

尝试使用属性设置用户名密码

Properties config = new Properties();
config.put("lex", "JAVA");
String sql = "select * from index";
try (Connection con = DriverManager.getConnection("jdbc:calcite:model=src/main/resources/es.json", config)) {
try (Statement stmt = con.createStatement()) {
try (ResultSet rs = stmt.executeQuery(sql)) {
printRs(rs);
}
}
}

尝试用操作数设置

{
"version": "1.0",
"defaultSchema": "elasticsearch",
"schemas": [
{
"type": "custom",
"name": "elasticsearch",
"factory": "org.apache.calcite.adapter.elasticsearch.ElasticsearchSchemaFactory",
"operand": {
"coordinates": "{'192.168.133.104': 9200}",
"jdbcUser": "elastic",
"jdbcPassword": "elastic"
}
}
]
}

并抛出异常

{
"error":{
"root_cause":[
{
"type":"security_exception",
"reason":"missing authentication token for REST request [/_alias]",
"header":{
"WWW-Authenticate":"Basic realm="security" charset="UTF-8""
}
}
],
"type":"security_exception",
"reason":"missing authentication token for REST request [/_alias]",
"header":{
"WWW-Authenticate":"Basic realm="security" charset="UTF-8""
}
},
"status":401
}

在提出此问题时,这是不可能的,但此功能已添加,并将包含在Calcite(1.26.0(的下一版本中。除了配置中的coordinates密钥外,您还可以添加usernamepassword来指定身份验证参数。

最新更新