예제 #1
0
 def test_ruleset_empty(self):
     permissions = []
     role = CrossbarRouterRoleStaticAuth(None, "testrole", permissions)
     actions = ['call', 'register', 'publish', 'subscribe']
     uris = ['com.example.1', 'myuri', '']
     for uri in uris:
         for action in actions:
             self.assertFalse(role.authorize(None, uri, action))
예제 #2
0
 def test_ruleset_2(self):
     permissions = [
         {
             'uri': '*',
             'call': True,
             'register': True,
             'publish': True,
             'subscribe': True
         }
     ]
     role = CrossbarRouterRoleStaticAuth(None, "testrole", permissions)
     actions = ['call', 'register', 'publish', 'subscribe']
     uris = [('com.example.1', True), ('myuri', True), ('', True)]
     for uri, allow in uris:
         for action in actions:
             self.assertEqual(role.authorize(None, uri, action), allow)
예제 #3
0
    def add_role(self, realm, config):
        if self.debug:
            log.msg("CrossbarRouterFactory.add_role(realm = {}, config = {})".format(realm, config))

        assert(realm in self._routers)

        router = self._routers[realm]
        uri = config['name']

        if 'permissions' in config:
            role = CrossbarRouterRoleStaticAuth(router, uri, config['permissions'], debug=self.debug)
        elif 'authorizer' in config:
            role = CrossbarRouterRoleDynamicAuth(router, uri, config['authorizer'], debug=self.debug)
        else:
            role = CrossbarRouterRole(router, uri, debug=self.debug)

        router.add_role(role)