From f8ae648c6d557689c8c67caef6a2c6b034b7aaba Mon Sep 17 00:00:00 2001 From: Thiago da Silva Date: Fri, 15 Nov 2013 17:13:53 -0500 Subject: fix error with swauth-clean-tokens Error is caused by left-over code from swauth. It had hard-coded the auth account to .auth. Changed code to use volume specified in the config file Change-Id: Id00eb3964b6b26a84511e4753ab80b2dea5654da Signed-off-by: Thiago da Silva Reviewed-on: http://review.gluster.org/6280 Reviewed-by: Luis Pabon Tested-by: Luis Pabon --- .../common/middleware/gswauth/swauth/middleware.py | 2 +- .../middleware/gswauth/swauth/test_middleware.py | 34 ++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/gluster/swift/common/middleware/gswauth/swauth/middleware.py b/gluster/swift/common/middleware/gswauth/swauth/middleware.py index 3165ecd..6388aa2 100644 --- a/gluster/swift/common/middleware/gswauth/swauth/middleware.py +++ b/gluster/swift/common/middleware/gswauth/swauth/middleware.py @@ -1173,7 +1173,7 @@ class Swauth(object): if user == '.super_admin' and self.super_admin_key and \ key == self.super_admin_key: token = self.get_itoken(req.environ) - url = '%s/%s.auth' % (self.dsc_url, self.reseller_prefix) + url = '%s/%s' % (self.dsc_url, self.auth_account) return Response( request=req, body=json.dumps( diff --git a/test/unit/common/middleware/gswauth/swauth/test_middleware.py b/test/unit/common/middleware/gswauth/swauth/test_middleware.py index 9ecd7d6..46d634f 100644 --- a/test/unit/common/middleware/gswauth/swauth/test_middleware.py +++ b/test/unit/common/middleware/gswauth/swauth/test_middleware.py @@ -804,6 +804,40 @@ class TestAuth(unittest.TestCase): self.assertEquals(resp.status_int, 500) self.assertEquals(self.test_auth.app.calls, 2) + def test_get_token_for_auth_acct_success(self): + local_auth = \ + auth.filter_factory({ + 'super_admin_key': 'supertest', + 'metadata_volume': 'gsmd', + 'token_life': str(DEFAULT_TOKEN_LIFE), + 'max_token_life': str(MAX_TOKEN_LIFE)})(FakeApp()) + resp = Request.blank( + '/auth/v1.0', + environ={'REQUEST_METHOD': 'GET', + 'swift.cache': FakeMemcache()}, + headers={'X-Auth-User': 'act:.super_admin', + 'X-Auth-Key': 'supertest'}).get_response(local_auth) + self.assertEquals(resp.status_int, 200) + itk = resp.headers.get('x-auth-token') + self.assertTrue(itk.startswith('AUTH_itk'), itk) + self.assertEquals(resp.headers.get('x-storage-url'), + 'http://127.0.0.1:8080/v1/AUTH_gsmd') + + def test_get_token_for_auth_acct_fail_passwd(self): + local_auth = \ + auth.filter_factory({ + 'super_admin_key': 'supertest', + 'metadata_volume': 'gsmd', + 'token_life': str(DEFAULT_TOKEN_LIFE), + 'max_token_life': str(MAX_TOKEN_LIFE)})(FakeApp()) + resp = Request.blank( + '/auth/v1.0', + environ={'REQUEST_METHOD': 'GET', + 'swift.cache': FakeMemcache()}, + headers={'X-Auth-User': 'act:.super_admin', + 'X-Auth-Key': 'invalidpasswd'}).get_response(local_auth) + self.assertEquals(resp.status_int, 401) + def test_get_token_success_v1_0(self): self.test_auth.app = FakeApp(iter([ # GET of user object -- cgit