我正在使用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'
答案 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。很抱歉给您带来不便!