WSO2IoT:为 Android 创建新的移动应用程序

WSO2IoT: Create New Mobile App for Android

我已经下载了 WSO2IoT v3.1.0,我正在尝试为公司内部创建一个应用程序商店。我正在按照此处发布的说明进行操作:

https://docs.wso2.com/display/IoTS310/Creating+an+Android+Application

但是,我无法创建应用程序,也没有明显的错误消息。

我可以使用默认用户 ID 和密码登录 https://localhost:9443/publisher(第 1 步和第 2 步)。当我单击“添加新的移动应用程序”时,第 3 步有效。我可以 select Android(第 4 步)和 Enterprise(第 5 步)。然后对于第 6 步,我 select 一个 APK 并单击下一步(第 7 步)。

在下一页,我看到了一些奇怪的东西:

  1. 它声明 "Uploading.... Please wait." 在页面顶部附近有一个进度条,但它从来没有 changes/completes。
  2. "Version" 字段已加星标并显示为灰色。
  3. 无论我提供什么值(或 none),单击底部的 "Create" 都会返回上一页。

如果 wso2carbon.log 我在第 7 步看到此错误消息:

TID: [-1234] [] [2018-02-21 17:43:14,263] 警告 {org.owasp.csrfguard.log.JavaLogger} - 潜在的跨站点请求伪造 (CSRF) 攻击已被阻止(用户: , ip:127.0.0.1, method:POST, uri:/publisher/api/mobileapp/upload, error:required 请求中缺少令牌){org.owasp.csrfguard.log.JavaLogger}

我在单击 "Create" 时没有看到任何错误消息。

不确定如何在商店中成功创建应用程序以及出了什么问题。

更新 1:

从 Chromium 内部观察网络流量,我可以看到当我在第 7 步中单击 "Next" 时,网络浏览器尝试将 POST 发送到 https://localhost:9443/publisher/api/mobileapp/upload,并得到一个403 禁止返回。

我可以看到正在发送一些 cookie,包括两个 JSESSIONID(这看起来很奇怪):

JSESSIONID=4D274F4F3A5AABE1F7D61E27C384B973; JSESSIONID=9EB3FADCEE9CA1C5156D25133FDC2C7E; requestedURI="../../policy/effective-policy?type=android&id="; commonAuthId=7a7c8a6c-7932-42ef-b670-4ccf50b14bfa; samlssoTokenId=b3b01735-5aac-4e60-9863-af4fce62abb0

有趣的是,none 个 cookie 被标记为 "secure",这似乎很糟糕。

看起来此请求正在尝试发送我 selected 的 APK。响应的主体是一个通用的 403 禁止访问页面。

这是 WSO2IoT v3.1.0 上的错误吗?

这似乎是 IOT 服务器 3.1.0 中的错误。您可以通过编辑以下文件来解决此问题。

[SERVER_HOME]/conf/security/Owasp.CsrfGuard.Carbon.properties

找到下面的行并在其末尾附加 /*

org.owasp.csrfguard.unprotected.publisherApi=%servletContext%/publisher/api

将以上内容编辑如下, org.owasp.csrfguard.unprotected.publisherApi=%servletContext%/publisher/api/*

我看到这个问题已经在最新的代码中修复了。参考 9964e