0

我正在使用交叉开关 0.11.1,并且我想让高速公路组件使用特定的角色。当我向我的组件添加“角色”属性时,如下所示:

"components": [
        {
           "type": "class",
           "classname": "hello.hello.AppSession",
           "realm": "realm1",
           "role": "anonymous",
           "transport": {
              "type": "websocket",
              "endpoint": {
                 "type": "tcp",
                 "host": "127.0.0.1",
                 "port": 8080
              },
              "url": "ws://127.0.0.1:8080/ws"
           }
        }
     ]

运行时出现此错误crossbar start

2015-11-03T10:51:02-0600 [Controller  20933] Automatically choosing optimal Twisted reactor
2015-11-03T10:51:02-0600 [Controller  20933] Running on Linux and optimal reactor (epoll) was installed.
2015-11-03T10:51:02-0600 [Controller  20933]      __  __  __  __  __  __      __     __
2015-11-03T10:51:02-0600 [Controller  20933]     /  `|__)/  \/__`/__`|__) /\ |__)  |/  \
2015-11-03T10:51:02-0600 [Controller  20933]     \__,|  \\__/.__/.__/|__)/~~\|  \. |\__/
2015-11-03T10:51:02-0600 [Controller  20933]                                         
2015-11-03T10:51:02-0600 [Controller  20933]     Version: 0.11.1     
2015-11-03T10:51:02-0600 [Controller  20933] 
2015-11-03T10:51:02-0600 [Controller  20933] Starting from node directory /home/jaime/code/pubsub/tmp/.crossbar
2015-11-03T10:51:02-0600 [Controller  20933] Loading node configuration file '/home/jaime/code/pubsub/tmp/.crossbar/config.json'
2015-11-03T10:51:02-0600 [Controller  20933] *** Configuration validation failed ***
2015-11-03T10:51:02-0600 [Controller  20933] invalid component configuration - encountered unknown attribute 'role'
4

2 回答 2

1

您只能以这种方式为“路由器内”组件(即“路由器”类型的工作人员内的“组件”列表)分配角色——它们实际上没有传输,因为它们正在运行在与路由器工作人员相同的 Python 进程中。

对于所有其他组件,它们的角色是通过它们连接到的传输的身份验证来分配的。因此,在上述情况下,您将添加一个“匿名”用户,该用户在您定义的 websocket 传输中具有“匿名”角色ws://127.0.0.1:8080/ws

对于非匿名事物,您设置一种身份验证机制(例如 WAMP-CRA),然后您的组件将执行以下操作:self.join(u'admin_realm', [u'wampcra'], u'admin')根据文档:http://crossbaronConnect使用其秘密并计算挑战。 io/docs/WAMP-CRA-Authentication/#python-frontendonChallenge

在路由器方面,WAMP-CRA 最简单的方法是使用静态凭据,您只需在config.json文件中添加用户 + 机密。您可以定义动态 WAMP-CRA 身份验证

于 2015-11-05T18:08:57.357 回答
0

刚刚试了一下,可以复制错误。我为此提交了一个错误 - https://github.com/crossbario/crossbar/issues/507。带来不便敬请谅解!

于 2015-11-05T16:21:54.720 回答