예제 #1
0
 def setUp(self):
     self._env = {'wsgi.url_scheme':b'http', 'REQUEST_METHOD':b'GET', 'PATH_INFO':b'/dir/index.html',
                     'HTTP_AUTHORIZATION':b'Digest username="******",realm="*****@*****.**",nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",uri="/dir/index.html",qop=auth,nc=00000001,cnonce="0a4f113b",response="6629fae49393a05397450978507c4ef1",opaque="5ccc069c403ebaf9f0171e9517f40e41"'}
     self._username = '******'
     self._realm = '*****@*****.**'
     self._password = '******'
     self._auth_path = '/dir/index.html'
     self._auth_domain = '/dir'
     self._app_iter = AuthDigest(application, get_password, self._auth_path, self._auth_domain, self._realm)
예제 #2
0
class AuthDigestTestCase(unittest.TestCase):

    def setUp(self):
        self._env = {'wsgi.url_scheme':b'http', 'REQUEST_METHOD':b'GET', 'PATH_INFO':b'/dir/index.html',
                        'HTTP_AUTHORIZATION':b'Digest username="******",realm="*****@*****.**",nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",uri="/dir/index.html",qop=auth,nc=00000001,cnonce="0a4f113b",response="6629fae49393a05397450978507c4ef1",opaque="5ccc069c403ebaf9f0171e9517f40e41"'}
        self._username = '******'
        self._realm = '*****@*****.**'
        self._password = '******'
        self._auth_path = '/dir/index.html'
        self._auth_domain = '/dir'
        self._app_iter = AuthDigest(application, get_password, self._auth_path, self._auth_domain, self._realm)

    def tearDown(self):
        pass

    def test_HA1(self):
        HA1 = '939e7578ed9e3c518a452acee763bce9'
        a1 = self._app_iter.a1(self._username, self._realm, self._password)
        ha1 = self._app_iter.h(a1)
        self.assertEqual(HA1, ha1)

        HA1 = '4f1038ca86d403c0d3ba5c87327414fc'
        a1 = self._app_iter.a1('9223372036854775807', 'localhost', '987654321')
        ha1 = self._app_iter.h(a1)
        self.assertEqual(HA1, ha1)


    def test_HA2(self):
        HA2 = '39aff3a2bab6126f332b942af96d3366'
        a2 = self._app_iter.a2(self._env['REQUEST_METHOD'].decode(), self._env['PATH_INFO'].decode())
        ha2 = self._app_iter.h(a2)
        self.assertEqual(HA2, ha2)

    def test_response(self):
        response = '6629fae49393a05397450978507c4ef1'
        auth_header = self._env['HTTP_AUTHORIZATION'].decode()
        auth_header_dict = self._app_iter.digest2dict(auth_header)
        
        a1 = self._app_iter.a1(self._username, self._realm, self._password)
        a2 = self._app_iter.a2(self._env['REQUEST_METHOD'].decode(), self._env['PATH_INFO'].decode())
        nonce = self._app_iter.nonce(auth_header_dict)
        digest = self._app_iter.digest(a1, nonce, a2)
        
        self.assertEqual(response, digest)