如何在高速公路中设置组件角色

时间:2015-11-03 16:54:14

标签: python autobahn autobahnws

我正在使用crossbar 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'

2 个答案:

答案 0 :(得分:1)

您只能以这种方式为" in-router"分配角色。组件(即"组件"列在#34型路由器内的列表;路由器") - 他们实际上没有运输,因为他们正在运行与路由器工作者相同的Python进程。

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

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

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

答案 1 :(得分:0)

试一试,可以复制错误。我已经为此提出了一个错误 - https://github.com/crossbario/crossbar/issues/507。很抱歉给您带来不便!