2015-11-03 2 views
0

Я использую crossbar 0.11.1, и я хочу, чтобы компонент autobahn использовал определенную роль. Когда я добавить атрибут «роль» в моем компоненте, как показано ниже:Как установить роль компонента в Autobahn

"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

Вы можете назначить роль таким образом для компонентов «внутри маршрутизатора» (то есть «список компонентов» внутри рабочего типа «маршрутизатор») - на самом деле у них нет транспорта, так как они работают в том же процессе Python, что и рабочий маршрутизатор.

Для всех других компонентов их роль назначается через аутентификацию для транспорта, к которому они подключаются. Таким образом, в вашем вышеприведенном случае вы добавили бы «анонимного» пользователя с «анонимной» ролью на транспорте websocket, который вы определили в ws://127.0.0.1:8080/ws.

Для неанонимных вещей, вы создали один из механизмов аутентификации (например, WAMP-CRA), а затем ваш компонент будет делать что-то вроде: self.join(u'admin_realm', [u'wampcra'], u'admin') в onConnect и вычислить проблему в onChallenge используя свой секрет, в соответствии с Документами : http://crossbar.io/docs/WAMP-CRA-Authentication/#python-frontend

На стороне маршрутизатора простейшим для WAMP-CRA является использование статических учетных данных, в которых вы только пользователи + секреты в файле config.json. Вы можете определить динамическое WAMP-CRA auth

+0

Возможно, мне придется попробовать это. Я мог бы поклясться, что видел пример, который позволил это где-то, но он мог быть старым. Конфигурационная документация иногда оставляет меня в замешательстве. Благодаря! – jaime

+0

@jaime, если вы * сделаете * запутаетесь в документации, было бы очень полезно указать ошибку (против https://github.com/crossbario/crossbar), описывающую, что запуталось. Чем больше человек попадает в проект, тем труднее становится видеть, где новые люди зацикливаются ...: / – meejah

Смежные вопросы