0

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

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

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

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

在下一页上,我看到了一些奇怪的事情:

  1. 它指出“正在上传......请稍候。” 在页面顶部附近有一个进度条,但它永远不会更改/完成。
  2. “版本”字段已加星标并显示为灰色。
  3. 无论我提供什么值(或根本没有),单击底部的“创建”都会让我回到上一页。

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

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

单击“创建”时,我没有看到任何错误消息。

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

更新 1

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

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

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

有趣的是,没有一个 cookie 被标记为“安全”,这看起来很糟糕。

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

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

4

1 回答 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

于 2018-04-03T06:25:56.773 回答