Esempio n. 1
0
    def test_authenticate_credentials(self):
        self.replay()
        plugin = BridgePlugin('bridge')
        plugin.REQUEST = self.create_dummy()

        self.assertEqual(
            plugin.authenticateCredentials(self.valid_credentials),
            ('john.doe', 'john.doe'))
Esempio n. 2
0
    def test_authenticate_credentials(self):
        self.replay()
        plugin = BridgePlugin('bridge')
        plugin.REQUEST = self.create_dummy()

        self.assertEqual(
            plugin.authenticateCredentials(self.valid_credentials),
            ('john.doe', 'john.doe'))
Esempio n. 3
0
    def test_authenticate_credentials_validates_extractor(self):
        self.replay()
        plugin = BridgePlugin('bridge')
        plugin.REQUEST = self.create_dummy()

        creds = copy(self.valid_credentials)
        creds['extractor'] = 'wrong-extractor'

        self.assertEqual(plugin.authenticateCredentials(creds), None)
Esempio n. 4
0
    def test_authenticate_credentials_from_bad_ip_fails(self):
        self.replay()
        plugin = BridgePlugin('bridge')
        plugin.REQUEST = self.create_dummy()

        creds = copy(self.valid_credentials)
        creds['ip'] = '192.168.1.2'

        self.assertEqual(plugin.authenticateCredentials(creds), None)
Esempio n. 5
0
    def test_authenticate_credentials_from_right_ip_succeeds(self):
        self.replay()
        plugin = BridgePlugin('bridge')
        plugin.REQUEST = self.create_dummy()

        creds = copy(self.valid_credentials)
        creds['ip'] = '127.0.0.2'

        self.assertEqual(plugin.authenticateCredentials(creds),
                         ('john.doe', 'john.doe'))
Esempio n. 6
0
    def test_extract_credentials_requires_origin(self):
        request = self.stub_request()
        headers = {'X-BRIDGE-AC': 'john.doe', 'X-BRIDGE-ORIGIN': None}
        self.expect(request.get_header(ARGS)).call(
            lambda key, default: headers.get(key, default))
        self.expect(request.environ).result({})

        self.replay()

        plugin = BridgePlugin('bridge')
        self.assertEqual(plugin.extractCredentials(request), {})
Esempio n. 7
0
    def test_authenticate_credentials_validates_extractor(self):
        self.replay()
        plugin = BridgePlugin('bridge')
        plugin.REQUEST = self.create_dummy()

        creds = copy(self.valid_credentials)
        creds['extractor'] = 'wrong-extractor'

        self.assertEqual(
            plugin.authenticateCredentials(creds),
            None)
Esempio n. 8
0
    def test_authenticate_credentials_from_right_ip_succeeds(self):
        self.replay()
        plugin = BridgePlugin('bridge')
        plugin.REQUEST = self.create_dummy()

        creds = copy(self.valid_credentials)
        creds['ip'] = '127.0.0.2'

        self.assertEqual(
            plugin.authenticateCredentials(creds),
            ('john.doe', 'john.doe'))
Esempio n. 9
0
    def test_authenticate_credentials_from_bad_ip_fails(self):
        self.replay()
        plugin = BridgePlugin('bridge')
        plugin.REQUEST = self.create_dummy()

        creds = copy(self.valid_credentials)
        creds['ip'] = '192.168.1.2'

        self.assertEqual(
            plugin.authenticateCredentials(creds),
            None)
Esempio n. 10
0
def install_pas_plugin(site):
    acl_users = getToolByName(site, "acl_users")

    if PLUGIN_ID in acl_users.objectIds():
        return

    plugin = BridgePlugin(PLUGIN_ID)
    acl_users._setObject(plugin.getId(), plugin)
    # acl_users[PLUGIN_ID] = plugin
    plugin = acl_users.get(PLUGIN_ID)

    # activate PAS plugin handlers
    plugin_interfaces = [plugins.IAuthenticationPlugin.__name__, plugins.IExtractionPlugin.__name__]
    plugin.manage_activateInterfaces(plugin_interfaces)
Esempio n. 11
0
    def test_extract_credentials_requires_origin(self):
        request = self.stub_request()
        headers = {'X-BRIDGE-AC': 'john.doe',
                   'X-BRIDGE-ORIGIN': None}
        self.expect(request.get_header(ARGS)).call(
            lambda key, default: headers.get(key, default))
        self.expect(request.environ).result({})

        self.replay()

        plugin = BridgePlugin('bridge')
        self.assertEqual(
            plugin.extractCredentials(request),
            {})
Esempio n. 12
0
    def test_extracts_credentials(self):
        request = self.stub_request()
        headers = {'X-BRIDGE-AC': 'john.doe', 'X-BRIDGE-ORIGIN': 'client-one'}
        self.expect(request.get_header(ARGS)).call(
            lambda key, default: headers.get(key, default))
        self.expect(request.environ).result({'REMOTE_ADDR': '127.0.0.1'})

        self.replay()

        plugin = BridgePlugin('bridge')
        self.assertEqual(plugin.extractCredentials(request), {
            'id': 'john.doe',
            'login': '******',
            'ip': '127.0.0.1'
        })
Esempio n. 13
0
    def test_extracts_credentials(self):
        request = self.stub_request()
        headers = {'X-BRIDGE-AC': 'john.doe',
                   'X-BRIDGE-ORIGIN': 'client-one'}
        self.expect(request.get_header(ARGS)).call(
            lambda key, default: headers.get(key, default))
        self.expect(request.environ).result({
                'REMOTE_ADDR': '127.0.0.1'})

        self.replay()

        plugin = BridgePlugin('bridge')
        self.assertEqual(
            plugin.extractCredentials(request),
            {'id': 'john.doe',
             'login': '******',
             'ip': '127.0.0.1'})
Esempio n. 14
0
def setup_bridge_pas_plugin(setup):
    if setup.readDataFile(
        'ftw.bridge.client-setup-bridge-pas-plugin.txt') is None:
        return

    acl_users = getToolByName(setup.getSite(), 'acl_users')

    if PLUGIN_ID in acl_users.objectIds():
        return

    plugin = BridgePlugin(PLUGIN_ID)
    acl_users._setObject(plugin.getId(), plugin)
    # acl_users[PLUGIN_ID] = plugin
    plugin = acl_users.get(PLUGIN_ID)

    # activate PAS plugin handlers
    plugin_interfaces = [plugins.IAuthenticationPlugin.__name__,
                         plugins.IExtractionPlugin.__name__]
    plugin.manage_activateInterfaces(plugin_interfaces)
Esempio n. 15
0
    def test_get_request_ip(self):
        self.replay()
        plugin = BridgePlugin('bridge')

        request = self.create_dummy(environ={})
        self.assertEqual(plugin._get_request_ip(request), None)

        request = self.create_dummy(environ={'REMOTE_ADDR': '127.0.0.1'})
        self.assertEqual(plugin._get_request_ip(request), '127.0.0.1')

        request = self.create_dummy(environ={
                'REMOTE_ADDR': '127.0.0.1',
                'HTTP_X_FORWARDED_FOR': '192.168.1.1'})
        self.assertEqual(plugin._get_request_ip(request), '127.0.0.1')

        request = self.create_dummy(environ={
                'REMOTE_ADDR': '127.0.0.1',
                'HTTP_X_FORWARDED_FOR': ' 192.168.1.1 , 10.10.10.10'})
        self.assertEqual(plugin._get_request_ip(request), '127.0.0.1')
Esempio n. 16
0
def setup_bridge_pas_plugin(setup):
    if setup.readDataFile(
            'ftw.bridge.client-setup-bridge-pas-plugin.txt') is None:
        return

    acl_users = getToolByName(setup.getSite(), 'acl_users')

    if PLUGIN_ID in acl_users.objectIds():
        return

    plugin = BridgePlugin(PLUGIN_ID)
    acl_users._setObject(plugin.getId(), plugin)
    # acl_users[PLUGIN_ID] = plugin
    plugin = acl_users.get(PLUGIN_ID)

    # activate PAS plugin handlers
    plugin_interfaces = [
        plugins.IAuthenticationPlugin.__name__,
        plugins.IExtractionPlugin.__name__
    ]
    plugin.manage_activateInterfaces(plugin_interfaces)
Esempio n. 17
0
    def test_get_request_ip(self):
        self.replay()
        plugin = BridgePlugin('bridge')

        request = self.create_dummy(environ={})
        self.assertEqual(plugin._get_request_ip(request), None)

        request = self.create_dummy(environ={'REMOTE_ADDR': '127.0.0.1'})
        self.assertEqual(plugin._get_request_ip(request), '127.0.0.1')

        request = self.create_dummy(environ={
            'REMOTE_ADDR': '127.0.0.1',
            'HTTP_X_FORWARDED_FOR': '192.168.1.1'
        })
        self.assertEqual(plugin._get_request_ip(request), '127.0.0.1')

        request = self.create_dummy(
            environ={
                'REMOTE_ADDR': '127.0.0.1',
                'HTTP_X_FORWARDED_FOR': ' 192.168.1.1 , 10.10.10.10'
            })
        self.assertEqual(plugin._get_request_ip(request), '127.0.0.1')