[英]Granting Namespace Permissions in Apache Pulsar
我一直在研究 Apache Pulsar 的功能,我很高兴。 但是,我刚刚进入身份验证/授权并遇到了 Java 管理客户端的奇怪错误。
虽然我能够执行各种操作,例如创建/删除租户、创建/删除命名空间、创建/删除分区主题、向租户添加管理员角色等,但在尝试使用
org.apache.pulsar.client.admin.Namespaces.grantPermissionOnNamespace()
我收到此错误:
org.apache.pulsar.client.admin.PulsarAdminException$ServerSideErrorException: HTTP 501 Not Implemented
我不敢相信这么重要的功能不会被实现,所以我猜这个错误只是掩盖了其他东西。
我创建了一个具有新命名空间的新租户(没有任何管理员角色)。 我试图添加的角色只是虚构的,我不确定它是否必须先在某个地方注册(但我没有找到任何可以这样做的东西)。 我尝试分别并同时授予消费或生产操作,但没有任何效果。
代理上没有配置超级用户,但考虑到我可以在没有它的情况下执行所有其他操作,只有超级用户才能做到这一点似乎有些牵强。 目前,所有呼叫都未经过身份验证。 这会是个问题吗? 但这会引发同样的问题:为什么我可以做其他所有事情,只是不授予权限?
那么我错过了什么?
我们正在运行 Pulsar 版本 2.5.0 以及 Java pulsar-client-admin Maven 工件版本 2.5.0。
好的,所以使用 pulsar admin CLI 在尝试执行相同操作时会显示更多信息:
未启用授权
原因:HTTP 501 未实现
显然我错过了在代理配置中实际启用授权。 因为我很好奇第一行是从哪里来的(因为我在我的实现中没有得到它),所以我浏览了 CLI 源代码,结果发现 CLI 从 PulsarAdminException 中打印了 2 行:
System.err.println(e.getHttpError());
System.err.println();
System.err.println("Reason: " + e.getMessage());
好的,对我来说似乎相反 getHttpError() 返回“授权未启用”和 getMessage()“HTTP 501 未实现”,但至少我现在知道发生了什么......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.