Worklight - 使用 URL 从非 Worklight 应用程序调用推送通知适配器

Posted

技术标签:

【中文标题】Worklight - 使用 URL 从非 Worklight 应用程序调用推送通知适配器【英文标题】:Worklight - invoking push notification adapter from non-worklight applications using a URL 【发布时间】:2013-02-15 19:52:53 【问题描述】:

我去年发布了一个问题,并在此 link 上收到了解决方案

这种在适配器 XML 中添加安全测试 wl_unprotected 的解决方案适用于 WL 服务器 5.0.0.3。

但是,在最近使用 Websphere Server 8.5 升级到 5.0.0.5 后,我们在使用直接 URL 调用调用 WL 适配器时遇到了身份验证错误。

网址:

http://IPAddress:9080/worklight/invoke?adapter=MyPushNotificationAdapter&procedure=submitNotification&parameters=['user1','id1','1']

回复:

/*-secure-
"isSuccessful":false,"warnings":[],"errors":["Work Light Authentication: null"],"info":[]*/

即使我们从适配器 XML 中删除 wl_unprotected 安全测试,错误仍然存​​在。请提供在 WL 5.0.0.5 企业版服务器中直接使用 URL 调用适配器的解决方案。

【问题讨论】:

【参考方案1】:

将 securityTest="wl_unprotected" 添加到您的适配器过程中应该仍然可以在 5.0.5 中使用。

我刚刚通过创建一个新的 Worklight 5.0.5 项目、混合应用程序和适配器对其进行了测试。默认创建的适配器默认有两个过程,getStories 和 getStoriesFiltered。

我在适配器 XML 文件的 getStories 过程中添加了 securityTest="wl_unprotected",但在 getStoriesFiltered 过程中没有使用它。然后我构建了适配器并将其部署到运行在 WebSphere Liberty 上的 5.0.5 Worklight 服务器。

当我使用 curl 调用 getStoriesFiltered 过程(没有 securityTest="wl_unprotected")时,调用失败并出现您描述的相同错误。

但是当我调用 getStories 过程(它有 securityTest="wl_unprotected")时,它是成功的。

作为参考,这里是描述在这种情况下使用“wl_unprotected”安全测试的技术说明:http://www-01.ibm.com/support/docview.wss?uid=swg21612594

【讨论】:

我们在 WebSphere Application Server 8.5(不是 Liberty Profile)上运行 Worklight server 5.0.5 这可能是它无法工作的原因吗? 您能否确认这是否适用于生产服务器设置中的推送通知适配器程序?我们的适配器过程使用事件源向订阅用户发送通知。使用 URL 访问推送通知过程时,我们始终会遇到身份验证失败。请注意,适配器过程的相同 URL 调用在 5.0.5 开发环境中可以正常工作。 我不希望使用 WebSphere Application Server 8.5 与 WebSphere Liberty 配置文件在这个问题上会有任何不同。我还尝试在 Liberty 上的 Worklight 5.0.5 上使用 Module 41 Push Notifications 示例。只要我在适配器 XML 中为 submitNotification 过程指定了“wl_unprotected”安全测试,我就能够直接访问该 URL。【参考方案2】:

在 PushNotification 适配器过程中调用了另一个适配器过程。在我也将“wl_unprotected”安全测试添加到第二个适配器过程之后,推送通知的 URL 调用开始工作。谢谢 !

【讨论】:

以上是关于Worklight - 使用 URL 从非 Worklight 应用程序调用推送通知适配器的主要内容,如果未能解决你的问题,请参考以下文章

IBM Worklight 6.0.0 - 对 iOS 不工作使用 WebViewOverlay 示例代码

Worklight Flight Ticket Sample App 的程序包名称是啥?

如何保护网站静态 URL 和 Worklight 控制台?

Worklight 6.2 应用程序中的 /apps/services/loguploader URL 是啥?

Worklight 服务器 URL 设置在 iphone 应用程序上不可见

IBM Worklight v6.0-“创建 URL 中定义的名称为‘taskManager’的 bean 时出错”