summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Prince <dan.prince@rackspace.com>2011-02-23 13:53:02 -0600
committerDan Prince <dan.prince@rackspace.com>2011-02-23 13:53:02 -0600
commitf7751eedc0e895f90d48104e2110bc2b320735fc (patch)
tree16ab36edadfe418bfd7aeab86592253ca6815978
parent400bbd8c7d56543a5cebad25d078ec0331b07a3c (diff)
downloadnova-f7751eedc0e895f90d48104e2110bc2b320735fc.tar.gz
nova-f7751eedc0e895f90d48104e2110bc2b320735fc.tar.xz
nova-f7751eedc0e895f90d48104e2110bc2b320735fc.zip
Revert commit 709. This fixes issues with the Openstack API causing 'No user for access key admin' errors.
-rw-r--r--nova/api/openstack/auth.py4
-rw-r--r--nova/tests/api/openstack/fakes.py8
-rw-r--r--nova/tests/api/openstack/test_auth.py6
3 files changed, 7 insertions, 11 deletions
diff --git a/nova/api/openstack/auth.py b/nova/api/openstack/auth.py
index c3fe0cc8c..1dfdd5318 100644
--- a/nova/api/openstack/auth.py
+++ b/nova/api/openstack/auth.py
@@ -120,8 +120,8 @@ class AuthMiddleware(wsgi.Middleware):
req - webob.Request object
"""
ctxt = context.get_admin_context()
- user = self.auth.get_user_from_access_key(username)
- if user and user.secret == key:
+ user = self.auth.get_user_from_access_key(key)
+ if user and user.name == username:
token_hash = hashlib.sha1('%s%s%f' % (username, key,
time.time())).hexdigest()
token_dict = {}
diff --git a/nova/tests/api/openstack/fakes.py b/nova/tests/api/openstack/fakes.py
index e0b7b8029..fb282f1c9 100644
--- a/nova/tests/api/openstack/fakes.py
+++ b/nova/tests/api/openstack/fakes.py
@@ -221,8 +221,7 @@ class FakeAuthDatabase(object):
class FakeAuthManager(object):
auth_data = {}
- def add_user(self, user):
- key = user.id
+ def add_user(self, key, user):
FakeAuthManager.auth_data[key] = user
def get_user(self, uid):
@@ -235,10 +234,7 @@ class FakeAuthManager(object):
return None
def get_user_from_access_key(self, key):
- for k, v in FakeAuthManager.auth_data.iteritems():
- if v.access == key:
- return v
- return None
+ return FakeAuthManager.auth_data.get(key, None)
class FakeRateLimiter(object):
diff --git a/nova/tests/api/openstack/test_auth.py b/nova/tests/api/openstack/test_auth.py
index eab78b50c..0dd65d321 100644
--- a/nova/tests/api/openstack/test_auth.py
+++ b/nova/tests/api/openstack/test_auth.py
@@ -48,7 +48,7 @@ class Test(unittest.TestCase):
def test_authorize_user(self):
f = fakes.FakeAuthManager()
- f.add_user(nova.auth.manager.User(1, 'herp', 'herp', 'derp', None))
+ f.add_user('derp', nova.auth.manager.User(1, 'herp', None, None, None))
req = webob.Request.blank('/v1.0/')
req.headers['X-Auth-User'] = 'herp'
@@ -62,7 +62,7 @@ class Test(unittest.TestCase):
def test_authorize_token(self):
f = fakes.FakeAuthManager()
- f.add_user(nova.auth.manager.User(1, 'herp', 'herp', 'derp', None))
+ f.add_user('derp', nova.auth.manager.User(1, 'herp', None, None, None))
req = webob.Request.blank('/v1.0/', {'HTTP_HOST': 'foo'})
req.headers['X-Auth-User'] = 'herp'
@@ -144,7 +144,7 @@ class TestLimiter(unittest.TestCase):
def test_authorize_token(self):
f = fakes.FakeAuthManager()
- f.add_user(nova.auth.manager.User(1, 'herp', 'herp', 'derp', None))
+ f.add_user('derp', nova.auth.manager.User(1, 'herp', None, None, None))
req = webob.Request.blank('/v1.0/')
req.headers['X-Auth-User'] = 'herp'