gpt4 book ai didi

ssl - Pubnub-CodeNameOne 库 - 缺少方法(访问管理器)

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:05 25 4
gpt4 key购买 nike

我在我的社交应用程序项目中使用 Pubnub 库 (Pubnub-CodeNameOne-3.7.8.cn1lib)(其中包括我通过您的精彩教程实现的实时聊天:https://www.codenameone.com/blog/building-a-chat-app-with-codename-one-part-5.html)。

但由于 Apple 将不再接受来自应用程序的 http URL 连接,我不得不加强我的应用程序的安全性,因此我决定使用 HTTPS 并在 Pubnub 仪表板中激活访问管理器功能(我遵循了 Pubnub 教程 https://www.pubnub.com/docs/codenameone-java/pam-security#understanding_access_manager_permissions_hierarchy ) .

所以我在我的 CN1 项目中更改了 Pubnub 的实例化,例如:

pb = new Pubnub(PUBNUB_PUB_KEY, PUBNUB_SUB_KEY, SECRET_KEY, true);//enable SSL
pb.setAuthKey(USER_UIID);

不幸的是,当我通过 Pubnub 订阅/发布时仍然出现错误:

[Error 112-0] : Authentication Failure. Incorrect Authentication Key : {"message":"Forbidden","payload":{"channels":["myChannelID"]},"error":true,"service":"Access Manager","status":403}

因此,我想执行管理 PAM 功能,例如授予或撤销,以解决上述错误消息问题。但是我没有找到 Pubnub 教程中提到的 pubnub.pamGrant() 或 pubnub.pamRevoke() 方法。所以我仍然停留在这个错误上。

您知道我该如何解决这个问题吗?非常感谢您的帮助。

最佳答案

PubNub 访问管理器和 SSL/TLS

虽然你应该使用 Access Manager to secure your channels on a per device/user basis , Access Manager 不需要使用 PubNub over TLS(SSL 是已弃用/易受攻击的前身,这些术语通常可以互换使用)。

因此您的初始化代码是正确的,可以在调用 PubNub 操作时启用 TLS(https 连接)。

pb = new Pubnub(PUBNUB_PUB_KEY, PUBNUB_SUB_KEY, SECRET_KEY, true);

但是,如果您在 key 集(发布/订阅 key )上启用访问管理器,则您需要为授权 key 上的 channel 授予权限(读取、写入和管理)。每个最终用户都应该有一个唯一的授权 key ,该 key 具有该用户发布、订阅、获取历史记录、状态等所需的 channel 权限。

grant permissions from your secure server您使用发布、订阅和 key 初始化 PubNub(执行 grant API 需要 key )。使用 v4 PubNub SDK,服务器在使用 key 初始化时具有 super 管理员权限。 v3 SDK 要求服务器授予自己访问其自己的 auth-key 的权限,但由于 Codename One 适用于移动客户端应用程序,因此您无需等待 Codename One 的 v4 PubNub SDK。我假设您将在您的服务器和我们的 v4 Java SDK v4 has the super admin permissions feature when initialized with the secret key 上使用 Java . 注意:文档需要更新,因为它们仍然声明即使在使用 key 初始化时也需要授权 key 。

因此我的建议是,像您已经为服务器和客户端所做的那样启用 SSL (TLS),但在短期内禁用 Access Manager。在您的基本功能正常运行后,将 Access Manager 和 auth-keys 的使用集成到您的服务器和客户端中。

关于ssl - Pubnub-CodeNameOne 库 - 缺少方法(访问管理器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39946067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com