问题标签 [worklight-adapters]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2242 浏览

ibm-mobilefirst - 如何最好地测试(单元测试)独立于 WL 应用程序的 WL 适配器?+ Jasmine 测试:不能使用“in”运算符在 null 中搜索“SUPPORT_COOKIES”

与此问题相关: Uncaught TypeError: Cannot use 'in' operator to search for 'SUPPORT_COOKIES' in null

但由于 Jasmine 测试工具和关于 JS-Java 适配器测试的最佳实践的一般问题而有所不同。


我们正在努力为一组开发人员建立一个开发环境,包括持续集成、构建和自动化测试。

为此,我们需要有一种方法从独立于实际 Worklight 应用程序或任何 Worklight 客户端运行的独立测试用例/客户端(测试代码)调用 WL 服务器上的 WL 适配器。这些测试必须在部署和持续构建时运行,并将测试适配器。

我们提出了这个解决方案,因为在部署适配器之前无法在本地测试适配器。此外,我们不能真正将测试代码包含到我们的适配器中并将代码与适配器一起部署。这不是一个好的解决方案,我们将在带有适配器的服务器上测试代码。

我们可能会使用JasmineJUnit作为我们的测试工具,我尝试通过包含所有 Worklight JS 库和变量(worklight 编译器添加到最终编译和部署的 App .html)来设置独立的 Jasmine Worklight Client/Test我的茉莉花测试。

它运行了一段时间,似乎初始化正常:

但是当我想执行 WL.Client.invokeProcedure(invocationData, 我得到错误:

TypeError:无法使用“in”运算符在 null 中搜索“SUPPORT_COOKIES”

因此,我的独立 Worklight 客户端/测试中似乎缺少一些配置或初始化。有哪位专家能告诉我那可能是什么吗?


2013 年 7 月 15 日:

以这种方式让 Jasmine 在 WL 客户端中自动运行:

但是现在我遇到了访问控制问题,因为我的 WL-Jasmine-Test-Client在端口 80 上的 Apache和端口 8080上的 WL 服务器上的适配器上运行。

使用此 WL-Test-Client 应用程序配置:

我想我们会在这里停下来,简单地使用 WL-Server 上的 INVOKE 服务来调用wl_unprotected Adapter Procedures以在测试环境中进行 JUnit 测试。

然后弄清楚如何在构建/部署时保护生产过程,同时删除单元测试执行——因为它们不再与受保护的适配器一起使用。

0 投票
1 回答
2227 浏览

ibm-mobilefirst - 将 cookie 附加到 WorkLight Adapter 响应标头

我正在使用 WorkLight 5.0.6 开发一个移动应用程序,我想将一个安全 cookie 附加到适配器返回的响应中。

我们没有使用 WorkLight Authentication 领域,因为我们不希望将会话“绑定”到集群生产环境中的特定 WL 服务器。我们通过调用登录适配器来验证会话,该适配器根据后端系统验证用户详细信息。作为登录适配器调用响应的一部分,我想创建一个包含经过身份验证的信息的安全 cookie(仅限 http),并将其附加到登录适配器返回的响应中。cookie 还应该包含在从应用程序调用到服务器的后续适配器的标头中。

问候,

0 投票
2 回答
479 浏览

ibm-mobilefirst - IBM Worklight - 如何在 SQL 适配器中构造 JSON 对象

要在 SQL 适配器中构造 JSON 对象,我尝试了以下方法:

但是我收到一个错误:


全尺寸图片
如何在 IBM Worklight 的 sql Adapter 中构造 Json oblect

0 投票
1 回答
1396 浏览

ibm-mobilefirst - IBM Worklight 6.0 - 将适配器部署到 Worklight Server 后出现 wl_antiXSRFRealm 错误

我目前正在使用 Worklight v6.0 Enterprise Edition 进行推送通知演示。

作为演示的一部分,我在 Worklight Studio 中创建了一个新的 Worklight 项目。

  • 我还将推送通知示例项目导入到同一个工作区
  • 我将提供的 authenticationConfig.xml 文件从推送通知示例项目复制到我的新项目中(替换文件)
  • 我还在新项目中修改了 application-descriptor.xml 以引用 authenticationConfig.xml 文件中的 securityTest

如果我在我的测试服务器(Eclipse 开发环境的一部分)上测试我的 PushNotifications 适配器,则该适配器运行正常。我通过浏览器调用测试服务器http://hostName:10080/ProjectName/invoke?adapter=PushAdapter&procedure=submitNotification&parameters=["user","testdata"]

但是,如果我将新应用程序和适配器部署到我的 QA Worklight 服务器,则适配器会出现问题。当我从指向新服务器的浏览器再次访问适配器时,我收到错误消息:

/*-secure- {"挑战":{"wl_antiXSRFRealm":{"WL-Instance-Id":"i9k34qhnj7r25s8ab7v2m0sf3l"}}}*/

在我的设备上运行的应用程序可以连接到服务器。我希望有一个外部服务器使用适配器端点为演示编写通知:

0 投票
1 回答
1033 浏览

ibm-mobilefirst - IBM Worklight 6.0 - 如果客户端注销/登录,具有基本身份验证的适配器不会更新身份验证标头

我有一个使用基于适配器的身份验证的 Worklight v6.0 应用程序。

该适配器是一个 HTTP 适配器,它使用 Basic Auth 调用后端 REST 服务。

适配器和后端服务之间没有会话或 cookie。在我的适配器描述符中,我已将 cookiePolicy 设置为 IGNORE_COOKIES。从适配器到后端的每个请求都使用该请求的基本身份验证标头进行身份验证。

每个适配器的过程都将 connectAs 设置为:endUser。

这一切都很好。移动应用程序在适配器上调用安全过程,这会触发身份验证,身份验证成功完成,该过程被重新调用,我可以在网络跟踪上看到正确的基本身份验证标头正在从适配器调用到后端。如果移动应用程序在已通过身份验证时进行适配器调用,则适配器只需使用正确的 Basic Auth 标头调用后端。如果多个移动应用程序同时连接并以不同用户身份登录,则适配器会为调用它的用户使用正确的 Basic Auth 标头。

唯一不起作用的是当移动应用程序调用适配器时,以 user1 身份进行身份验证,从 user1 的后端获取正确结果,调用 WL.Client.logout(),再次调用适配器并进行身份验证这次作为用户 2。

在适配器过程中,我调用 WL.Server.getActiveUser() 来验证活动用户,果然,用户是正确的(user2)。但是当调用发送到后端时,Worklight 添加的基本身份验证标头具有 user1 的凭据,因此移动应用程序会得到错误的结果。

如果我退出并重新启动应用程序,一切都很好,我可以直接作为用户 2 进行身份验证,并为用户 2 获得正确的结果。唯一存在问题的情况是,当我在移动应用程序和 Worklight Server 之间的单个会话中以不同用户的身份注销/重新登录时。

这是将基本身份验证与 Worklight 适配器一起使用的已知限制吗?我有什么方法可以在我注销时强制重置移动客户端和 Worklight Server 之间的连接?(没有重新启动应用程序)

0 投票
1 回答
474 浏览

php - IBM worklight - How to send Request Parameters to a PHP file?

This is my PHP code:

I am trying to send the parameter adid from the Worklight adapter with the following method:

ClientadID.php contains the code which is written in the first code sample above.

I am trying to send the request from the adapter with the following parameters while invoking the procedure. In the parameter window I am sending ad_id=1 but an error is throwing:

Notice: Undefined index: ad_id in C:\wamp\www\ios\ClientadID.php on line 6

0 投票
1 回答
1127 浏览

android - IBM Worklight - 在 Android 中使用 SQLite?

我正在学习 IBM Worklight。我已经SQLAdapter在笔记本电脑上实现了一个使用 DB2 作为我的数据库的数据库。

但我在 Android 模拟器中找不到任何关于“如何连接”的教程SQLAdapterSQLite任何帮助将不胜感激。

0 投票
1 回答
698 浏览

ibm-mobilefirst - IBM Worklight:SQLAdapter 中的 JNDI 设置

我在 WAS 中创建了一个 JNDI 名称为“jdbc/testingDS”的数据源。(测试连接成功)。

我希望 SQL 适配器连接到该数据源,因此我更新了适配器 XML,如下所示:

但是,有错误过程调用错误。运行时:在 jndi 中找不到数据源 jdbc/testingDS。关于如何在 SQL 适配器中使用 JNDI 名称设置数据源有什么建议吗?提前致谢。

编辑: 这是我在 worklight.properties 中的设置:

有没有人有任何其他建议?

环境:Worklight 5.0.6 Consumer Edition、WebSphere Application Server 8.5

0 投票
1 回答
3698 浏览

javascript - IBM Worklight - How to pass parameters from the application to the adapter?

I want to pass parameters from the application to the adapter; I want the users of the app to enter these options.

Right now I am passing the parameters like this in adapter:

0 投票
1 回答
441 浏览

wsdl - 如何在 IBM Worklight 中创建 HTTP 适配器?

我正在尝试在 Worklight Project 中创建一个适配器。我手里有一个 WSDL,如何在我的项目中添加这个 WSDL 来消费数据。

提前致谢....