Presto 自定义密码身份验证器插件用于协调器身份验证不会触发



我通过复制LDAP插件并对其进行修改,创建了一个presto自定义密码身份验证器插件(内部)。 你可以在这里看到该代码:https://github.com/prestodb/presto/tree/master/presto-password-authenticators/src/main/java/com/facebook/presto/password。

我创建了身份验证器,身份验证器工厂和配置的副本,并修改了它们,基本上只从配置中获取用户/密码,并且只允许该用户进入。 我还把新类放在PasswordAuthenticatorPlugin注册码中。

我可以在启动 presto 时看到插件加载,但尽管不存在错误,但它似乎没有做任何事情。 我错过了什么?

注意:我已经找到了解决方案,我只是在SO上录制它,因为我最初来到这里并没有找到任何帮助。

要使自定义密码插件正常工作,您实际上需要启用HTTPS才能与协调器进行通信。 您实际上可以在其文档的底部看到此建议:

https://prestodb.github.io/docs/current/develop/password-authenticator.html

此外,必须将协调器配置为使用密码身份验证并启用 HTTPS。

因此,使其工作的步骤是:

  1. 确保主配置属性具有"http-server.authentication.type=PASSWORD"。
  2. 请确保在配置属性旁边添加密码身份验证器.properties,其中包含类似于上面链接中的示例的内容。 但请确保使用身份验证器中的字符串作为名称,并改为添加配置属性(用户名和密码)。
  3. 设置一个 JKS 存储或一个真实的证书(这里有一些来自 Presto for JKS 的说明:https://prestodb.github.io/docs/current/security/tls.html)。
  4. 将 SSL 配置添加到您的配置属性中。
    • http-server.https.enabled=true
    • http-server.https.port=8443
    • http-server.https.keystore.path=/etc/presto-keystore/keystore.jks
    • http-server.https.keystore.key=password123
  5. 将 JDBC 驱动程序设置为使用相同的密钥库。

我写了一篇关于它的博客,如果其中有任何没有意义,也会更详细。 但是完成所有这些操作后,您应该发现它确实需要密码,并且确实强制执行您的插件。

https://coding-stream-of-consciousness.com/2019/06/18/presto-custom-password-authentication-plugin-internal/

相关内容

  • 没有找到相关文章