Пример #1
0
    def testUsernames(self):
        basic = BasicAccessControl(
            DummyReq('*****@*****.**', 'passwd', 'GET', '/svn/svnprj', ''))
        self.assertEquals(basic.username, '*****@*****.**')

        basic = BasicAccessControl(
            DummyReq('test%40user.com', 'passwd', 'GET', '/svn/svnprj', ''))
        self.assertEquals(basic.username, '*****@*****.**')

        basic = BasicAccessControl(
            DummyReq('test', 'passwd', 'GET', '/svn/svnprj', ''))
        self.assertEquals(basic.username, 'test')
Пример #2
0
def headerparserhandler(req):
    from mod_python.apache import HTTP_UNAUTHORIZED, HTTP_FORBIDDEN, OK

    control = BasicAccessControl(req)

    # Check authentication
    if not control.is_authentic():
        req.err_headers_out['WWW-Authenticate'] = 'Basic realm="%s"' % control.options['realm']
        return HTTP_UNAUTHORIZED

    # Check if blocked or expired
    if control.is_blocked():
        return HTTP_FORBIDDEN

    return OK
Пример #3
0
    def testNotImplementedError(self):
        conf.use_test_db(True)
        self.load_fixtures()

        req = DummyReq('cartman', 'cartmans_pw', 'GET',
                       '/storageauthtest/login/xmlrpc', '')
        basic = BasicAccessControl(req)

        # Some methods are implemented in subclasses and so should throw NotImplementedError
        self.assertRaises(NotImplementedError, basic.has_permission)
        self.assertRaises(NotImplementedError, basic.environment_identifier)
        self.assertRaises(NotImplementedError, basic.is_read)
        self.assertRaises(NotImplementedError, basic.read_action)
        self.assertRaises(NotImplementedError, basic.write_action)

        # Normal assertRaises does not work with @properties
        throws = False
        try:
            basic.required_action
        except NotImplementedError:
            throws = True
        self.assertTrue(throws)

        throws = False
        try:
            basic.environment_key
        except NotImplementedError:
            throws = True
        self.assertTrue(throws)
Пример #4
0
    def testPathParser(self):
        dav = BasicAccessControl(DummyReq('test', 'passwd', 'GET', '/dav/davprj', ''))
        self.assertEquals(dav.parse_identifier_from_uri(), 'davprj')

        svn = BasicAccessControl(DummyReq('test', 'passwd', 'GET', '/svn/svnprj', ''))
        self.assertEquals(svn.parse_identifier_from_uri(), 'svnprj')

        svn = BasicAccessControl(DummyReq('test', 'passwd', 'GET', '/svn/tasaasdfaf/!svn/vcc/default', ''))
        self.assertEquals(svn.parse_identifier_from_uri(), 'tasaasdfaf')

        git = BasicAccessControl(DummyReq('test', 'passwd', 'GET', '/git/gitprj', ''))
        self.assertEquals(git.parse_identifier_from_uri(), 'gitprj')
Пример #5
0
    def testInit(self):
        conf.use_test_db(True)
        self.load_fixtures()

        # Simple test case to confirm that initially works
        req = DummyReq('cartman', 'cartmans_pw', 'GET',
                       '/storageauthtest/login/xmlrpc', '')
        basic = BasicAccessControl(req)

        self.assertEquals(basic.username, 'cartman')
        self.assertEquals(basic.plain_pw, 'cartmans_pw')
        self.assertEquals(basic.req, req)
Пример #6
0
    def testPathParser(self):
        dav = BasicAccessControl(
            DummyReq('test', 'passwd', 'GET', '/dav/davprj', ''))
        self.assertEquals(dav.parse_identifier_from_uri(), 'davprj')

        svn = BasicAccessControl(
            DummyReq('test', 'passwd', 'GET', '/svn/svnprj', ''))
        self.assertEquals(svn.parse_identifier_from_uri(), 'svnprj')

        svn = BasicAccessControl(
            DummyReq('test', 'passwd', 'GET',
                     '/svn/tasaasdfaf/!svn/vcc/default', ''))
        self.assertEquals(svn.parse_identifier_from_uri(), 'tasaasdfaf')

        git = BasicAccessControl(
            DummyReq('test', 'passwd', 'GET', '/git/gitprj', ''))
        self.assertEquals(git.parse_identifier_from_uri(), 'gitprj')
Пример #7
0
    def testAuthentication(self):
        conf.use_test_db(True)
        self.load_fixtures()

        req = DummyReq('cartman', 'cartmans_pw', 'GET',
                       '/storageauthtest/login/xmlrpc', '')
        basic = BasicAccessControl(req)
        self.assertTrue(basic.is_authentic())

        req = DummyReq('cartman', 'cartmanspw', 'GET',
                       '/storageauthtest/login/xmlrpc', '')
        basic = BasicAccessControl(req)
        self.assertFalse(basic.is_authentic())

        req = DummyReq('*****@*****.**', 'nomailforme', 'GET',
                       '/storageauthtest/login/xmlrpc', '')
        basic = BasicAccessControl(req)
        self.assertTrue(basic.is_authentic())

        req = DummyReq('user%40nomail.box', 'nomailforme', 'GET',
                       '/storageauthtest/login/xmlrpc', '')
        basic = BasicAccessControl(req)
        self.assertTrue(basic.is_authentic())

        req = DummyReq('*****@*****.**', 'wrongpw', 'GET',
                       '/storageauthtest/login/xmlrpc', '')
        basic = BasicAccessControl(req)
        self.assertFalse(basic.is_authentic())

        req = DummyReq('user%40nomail.box', 'wrongpw', 'GET',
                       '/storageauthtest/login/xmlrpc', '')
        basic = BasicAccessControl(req)
        self.assertFalse(basic.is_authentic())
Пример #8
0
 def __init__(self, req):
     BasicAccessControl.__init__(self, req)
     self.req = req
     self.cmd = self._read_hg_cmd()
Пример #9
0
 def has_permission(self):
     # Must be a protocol request and correct privileges
     return self.is_protocol_request() and BasicAccessControl.has_permission(self)
Пример #10
0
 def __init__(self, req):
     BasicAccessControl.__init__(self, req)
     self.req = req
     self.cmd = self._read_hg_cmd()
Пример #11
0
 def has_permission(self):
     # Must be a protocol request and correct privileges
     return self.is_protocol_request(
     ) and BasicAccessControl.has_permission(self)
Пример #12
0
    def testAuthentication(self):
        conf.use_test_db(True)
        self.load_fixtures()

        req = DummyReq('cartman', 'cartmans_pw', 'GET', '/storageauthtest/login/xmlrpc', '')
        basic = BasicAccessControl(req)
        self.assertTrue(basic.is_authentic())

        req = DummyReq('cartman', 'cartmanspw', 'GET', '/storageauthtest/login/xmlrpc', '')
        basic = BasicAccessControl(req)
        self.assertFalse(basic.is_authentic())

        req = DummyReq('*****@*****.**', 'nomailforme', 'GET', '/storageauthtest/login/xmlrpc', '')
        basic = BasicAccessControl(req)
        self.assertTrue(basic.is_authentic())

        req = DummyReq('user%40nomail.box', 'nomailforme', 'GET', '/storageauthtest/login/xmlrpc', '')
        basic = BasicAccessControl(req)
        self.assertTrue(basic.is_authentic())

        req = DummyReq('*****@*****.**', 'wrongpw', 'GET', '/storageauthtest/login/xmlrpc', '')
        basic = BasicAccessControl(req)
        self.assertFalse(basic.is_authentic())

        req = DummyReq('user%40nomail.box', 'wrongpw', 'GET', '/storageauthtest/login/xmlrpc', '')
        basic = BasicAccessControl(req)
        self.assertFalse(basic.is_authentic())
Пример #13
0
 def __init__(self, req):
     BasicAccessControl.__init__(self, req)
     self.req = req
     self.method = req.method
     self._identifier = None
Пример #14
0
 def __init__(self, req):
     BasicAccessControl.__init__(self, req)
     self.req = req