问题标签 [fiware-wirecloud]
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.
fiware - 如何使用 Orion Context Broker 中的 Mashup-Wirecloud Map Viewer?
我在“接线视图”中的配置包含以下组件:
- NGSI 来源:受监控的 NGSI 属性:位置
- NGSI 实体到点:坐标属性:位置
并且这些框已连接到 Map Viewer,但我看不到地图中的点。您能回答以下问题吗?
- 问题出在哪里?
- 我应该更改属性的名称吗?
fiware - Fiware KeyRock API 错误:未返回组织的成员资格
作为 FINISH 加速器的一部分,我们使用 FIWARE KeyRock 和 Wirecloud。目前我们正在使用 Fiware labs 全局实例进行调查。
我们希望限制我们的系统,以便用户只能查看属于他们所属组织的数据。
以下流程似乎合乎逻辑,但如果我错了,请纠正我:
- 用户登录到 Wirecloud 并被引导通过 KeyRock 登录屏幕。
- Wirecloud Widget 从 Wirecloud 环境中获取访问令牌。访问令牌是在用户登录时创建的。
- Wirecloud 小部件查找用户所属的组织和角色。基于此,它将组织名称添加到其查询中。
- Wirecloud 小部件使用它刚刚创建的查询来查询 Web 服务(Orion 或其他)。
- 我们将 Wilma PEP 代理放在 Wirecloud Widget 和 Web 服务之间,以验证用户是查询中组织的成员。
问题:我们可以使用https://account.lab.fiware.org/user?access_token=XXXXXXXXXXXX调用 从 KeyRock 查询用户信息。但根据 KeyRock Web 界面,这不包含有关用户所属组织的任何信息。组织元素是一个空数组。我们在 json 响应中获得了一堆角色,但它们都不是您从 KeyRock 中的“管理您的组织成员”屏幕分配给用户的“成员”角色。
一些挖掘显示,在 Fiware 实验室上运行的 Keystone 实例包含这些信息(假设 Keystone 项目 = KeyRock 组织)。然而,KeyRock 提供的访问令牌在 Keystone API 上是无效的。我们使用的 API 可在此处访问:http : //cloud.lab.fiware.org:4730/v3/ 从 Keystone API 获取新的访问令牌不是我们想要的,因为这将是与 Wirecloud 不同的访问令牌获得,这将需要某种代理再次登录并检索组织成员资格。这反而破坏了传递访问令牌的意义。
这似乎是 fiware labs 实例上 KeyRock API 中的一个错误。或者我在这里错过了什么?或者如果我们在自己的服务器上安装 keyrock,这个问题会神奇地消失吗?
感谢您的帮助,罗宾
fiware - 为什么我的小部件不能在wirecloud 中工作?
我只使用 html、css 和 js 制作了以下小部件。当您搜索我们数据库中存在的关键字(例如桃子或草莓)时,这本身就可以正常工作:
当我在 eclipse 中借助 fispace 的 add on 将其转换为小部件然后继续将其上传到 fiware lab 或 fispace 的 wirecloud 时,它显示错误缺少 api 密钥。所以我得到了谷歌的 api 密钥并像这样附加它:
然而,我最终还是在线云内部得到了一张灰色的地图。 谁能帮我解决这个问题?谢谢你。
iframe - 线云上的 SVG 内部 url 链接和 iframe
Wirecloud 使用 iframe 来呈现小部件的 html。这似乎给一些需要引用内部定义的高级 svg 功能带来了问题(另请参阅此讨论)。
生成 svg 的 js 代码在单页应用程序或 django 视图中运行良好。没有错误消息。
整个代码太大,无法在此处发布,但关键的相关元素是:
然后是一个典型的定义(例如渐变):
最后是定义的使用
它是在创建 svg 对象时未正确链接到的引用(此处为#linearGradient)(检查创建的图形时,填充属性为空)
通常在 svg 中,您只需使用 url(#reference)。已尝试将“about:blank”和“about:srcdoc”作为SO其他地方建议的解决方法,但不知何故它们似乎不起作用(chrome / firefox)
这似乎是 svg / iframe 的问题(不是特定于wirecloud),但我没有尝试在wirecloud 之外的iframe 中渲染svg 来确认这一点。
如果没有解决方法,这将限制可以使用 javascript 以编程方式在 Wirecloud 小部件中呈现的 svg 图形类型。也许嵌入 svg 的其他一些方法会起作用(从服务器获取它),但它不是交互式小部件的最佳设计,或者可能是 iframe替代方案:-)
fiware - FIWARE 如何从 Wirecloud 小部件访问 KeyRock IdM 令牌
在全局 Wirecloud 实例中,我有一个使用此处提到的 KeystoneAPI 的小部件: https ://wirecloud.readthedocs.io/en/stable/development/object_storage_api/
到目前为止,一切都很好。
但是现在我想转移到 KeyRock 进行身份验证。我仍然想将令牌从我的 wirecloud 小部件传递到后端服务,例如也未连接到 KeyRock 的 Wilma PEP 代理。但是 KeystoneAPI 似乎与 Keystone 相关联(可能因此得名)。
是否可以从 Wirecloud 小部件访问 KeyRockAPI?小部件如何获取用户登录时使用的 KeyRock OAuth2 令牌?我找不到任何关于此的文档。
fiware - FIWARE Wirecloud:使用 X-FI-WARE-OAuth-Token 请求标头时出错
我们是 FINISH 加速器的一部分,并且正在使用 fiware 提供的 docker 容器在我们自己的服务器上部署 Wirecloud 和 KeyRock。
我们设置了 KeyRock-IdM 并链接到 Wirecloud。我们正在尝试将登录用户令牌传递给一个 API,该 API 将数据返回给一个小部件。
我们在 github 代码中找到了有关“X-FI-WARE...”标头的文档,并编写了一个测试小部件(如下所示的 main.js)。当部署在 fiware labs 实例上时,它开箱即用。当使用 docker 容器部署在我们的本地安装上时,它会出现以下错误:“当前用户没有活动的 FIWARE 配置文件”。我搜索了 settings.py 文件,但不知道这个错误来自哪里。我有 DEBUG=True 但日志中没有显示任何内容。运行小部件的用户是通过 KeyRock IdM 登录的。
我怎样才能找出问题所在?
从下面的评论中,更改了一个 python 脚本:编辑了 docker 容器中的 /usr/local/lib/python2.7/site-packages/wirecloud/fiware/proxy.py 文件,并将第 37 行从 raise ValidationError(error_msg) 替换为一个简单的加薪。
/var/log/apache2/error.log 的日志如下
[Fri May 06 07:12:33.745550 2016] [wsgi:error] [pid 13:tid 139955375367936] Internal Server Error: /cdp/https/account.lab.fiware.org/user
[Fri May 06 07:12:33.745580 2016] [wsgi:error] [pid 13:tid 139955375367936] Traceback (most recent call last):
[Fri May 06 07:12:33.745584 2016] [wsgi:error] [pid 13:tid 139955375367936] File "/usr/local/lib/python2.7/site-packages/wirecloud/proxy/views.py", line 234, in proxy_request
[Fri May 06 07:12:33.745587 2016] [wsgi:error] [pid 13:tid 139955375367936] response = WIRECLOUD_PROXY.do_request(request, url, request_method, workspace)
[Fri May 06 07:12:33.745589 2016] [wsgi:error] [pid 13:tid 139955375367936] File "/usr/local/lib/python2.7/site-packages/wirecloud/proxy/views.py", line 144, in do_request
[Fri May 06 07:12:33.745592 2016] [wsgi:error] [pid 13:tid 139955375367936] processor.process_request(request_data)
[Fri May 06 07:12:33.745594 2016] [wsgi:error] [pid 13:tid 139955375367936] File "/usr/local/lib/python2.7/site-packages/wirecloud/fiware/proxy.py", line 59, in process_request
[Fri May 06 07:12:33.745597 2016] [wsgi:error] [pid 13:tid 139955375367936] token = get_access_token(request['user'], _('Current user has not an active FIWARE profile'))
[Fri May 06 07:12:33.745599 2016] [wsgi:error] [pid 13:tid 139955375367936] File "/usr/local/lib/python2.7/site-packages/wirecloud/fiware/proxy.py", line 33, in get_access_token
[Fri May 06 07:12:33.745602 2016] [wsgi:error] [pid 13:tid 139955375367936] if oauth_info.access_token is None:
[Fri May 06 07:12:33.745604 2016] [wsgi:error] [pid 13:tid 139955375367936] File "/usr/local/lib/python2.7/site-packages/social/storage/base.py", line 41, in access_token
[Fri May 06 07:12:33.745615 2016] [wsgi:error] [pid 13:tid 139955375367936] return self.extra_data.get('access_token')
[Fri May 06 07:12:33.745618 2016] [wsgi:error] [pid 13:tid 139955375367936] AttributeError: 'unicode' object has no attribute 'get'
redirect - 带有代理的 WireCloud 重定向 url
在默认的 WireCloud 设置中redirect_uri
单击时,我可以在哪里手动设置URL 参数的一部分?sign in
我们想向互联网展示我们的平台,并且需要通过我们的代理来处理我们的 WireCloud 服务器。现在的问题是,不是代理 url 被用作重定向 url,而是内部服务器 url。这会导致错误{"state": "eCUfYmpXnDV34IVR1P8Vtt2Ke8Xhoxtm", "error": "mismatching_redirect_uri"} (HTTP 400)
。
proxy - HTTPS 代理背后的 WireCloud 和 Horizon
我们有一个正在运行的代理,它为互联网提供 HTTPS 页面。因此,它将请求重定向到我们的 DMZ,其中页面作为 HTTP 页面提供。
我们将 WireCloud 设置为在子域中运行:wirecloud.example.com。Horizon 在 Horizon.example.com 上运行。
在 Horizon 中,回调 URL 设置为:http : //wirecloud.example.com/complete/fiware/ 并在 Wirecloud 的 settings.py 中FIWARE_IDM_SERVER = 'http://horizon.example.com'
设置。
现在,当wirecloud.example.com/login
被调用时,它被我们的代理重定向到 https ,然后被wireclound重定向到horizon ,然后被我们的代理重定向到https://horizon.example.com/oauth2/authorize/?state=STATE_KEY&redirect_uri=http://wirecloud.example.com/complete/fiware/&response_type=code&client_id=CLIENT_ID
. 如果用户未登录并且现在这样做了,则 redirect_uri 将转换为:http%253A%252F%252Fwirecloud.example.com%252Fcomplete%252Ffiware%252F
导致此错误的原因:{"state": "STATE_KEY", "error": "invalid_redirect_uri"} (HTTP 400)
。如果用户已经登录并尝试授权应用程序 (WireCloud),则会引发 405 错误:
那么我们需要如何配置 WireCloud 和/或 Horizon 和/或我们的代理才能使其正常工作呢?
xml - 用于小部件的 Wirecloud xml 解析器
0.8.4 版和 0.9.1 版之间的小部件的解析器有什么变化吗?我们最近更新了,现在我们不能再上传我们的 .wgt 文件了。显示以下错误:Error uploading the following components: TestWidget.wgt: Error parsing config.xml descriptor file: No valid parser found
。
完全相同的文件适用于 WireCloud v 0.8.4。上传操作符时不会出现此问题,它们工作正常。
这是与 0.8.4 一起使用的 config.xml:
fiware - FIWARE Wirecloud 错误;不是有效的 WireCloud 主题
我们在自己的服务器上安装了 Wirecloud,使用 Docker Hub 上的 Docker 映像(最新版本 = 0.9.1)。使用此处的说明:https ://wirecloud.readthedocs.io/en/latest/development/platform/themes/我们尝试遵循“基本主题”部分。但是目前还不清楚主题应该放在文件系统的哪个位置。
我们得到错误:
...文件“/usr/local/lib/python2.7/site-packages/wirecloud/platform/themes.py”,第 82 行,在 get_theme_metadata 中引发 ValueError(“%s 不是有效的 WireCloud 主题”% theme_name ) ValueError: babblerTheme 不是有效的 WireCloud 主题
我们尝试将主题目录放在以下位置,但没有任何运气:
所有三个地方,同样的无信息错误。
这应该很容易,但我已经花了大半天的时间。我可以通过更改默认主题的内容来解决这个错误,但我希望在升级 Wirecloud 时会出现问题。
我们应该怎么做才能让 Wirecloud 选择我们的自定义主题?