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'))
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)
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)
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'))
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), {})
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)
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'))
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)
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)
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), {})
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' })
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'})
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)
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')
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)
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')