Skip to content

Commit

Permalink
Change invocation of call to keystone middleware for token validation
Browse files Browse the repository at this point in the history
that meets Mitaka expectations.

Closes-Bug: 1608815

Conflicts:
	src/config/api-server/vnc_auth_keystone.py

Change-Id: I69c69c0c9a88cb27e818bdae59289ea24d8ac7bf
  • Loading branch information
Deepinder Setia committed Aug 17, 2016
1 parent b7914d2 commit 7be5fa8
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 10 deletions.
10 changes: 3 additions & 7 deletions src/config/api-server/tests/test_perms2.py
Expand Up @@ -347,9 +347,9 @@ def setUp(self):
auth_url='http://127.0.0.1:5000/v2.0')

# prepare token before vnc api invokes keystone
alice = User(ip, port, kc, 'alice', 'alice123', 'alice-role', 'alice-proj')
bob = User(ip, port, kc, 'bob', 'bob123', 'bob-role', 'bob-proj')
admin = User(ip, port, kc, 'admin', 'contrail123', 'admin', 'admin')
alice = User(ip, port, kc, 'alice', 'alice123', 'alice-role', 'alice-proj-%s' % self.id())
bob = User(ip, port, kc, 'bob', 'bob123', 'bob-role', 'bob-proj-%s' % self.id())
admin = User(ip, port, kc, 'admin', 'contrail123', 'admin', 'admin-%s' % self.id())

self.alice = alice
self.bob = bob
Expand Down Expand Up @@ -762,10 +762,6 @@ def test_ri_owner(self):
self.assertEquals(ri.get_perms2().owner, 'cloud-admin')

def tearDown(self):
self._api_svr_greenlet.kill()
self._api_server._db_conn._msgbus.shutdown()
test_utils.FakeIfmapClient.reset()
test_utils.CassandraCFs.reset()
super(TestPermissions, self).tearDown()
# end tearDown

9 changes: 7 additions & 2 deletions src/config/api-server/vnc_auth_keystone.py
Expand Up @@ -265,7 +265,12 @@ def verify_signed_token(self, user_token):
# gets called from keystone middleware after token check
def token_valid(self, env, start_response):
status = env.get('HTTP_X_IDENTITY_STATUS')
return True if status != 'Invalid' else False
token_info = env.get('keystone.token_info')
start_response('200 OK', [('Content-type', 'text/plain')])
return token_info if status != 'Invalid' else ''

def start_response(self, status, headers):
pass

def validate_user_token(self, request):
# following config forces keystone middleware to always return the result
Expand All @@ -274,7 +279,7 @@ def validate_user_token(self, request):
conf_info['delay_auth_decision'] = True

auth_middleware = auth_token.AuthProtocol(self.token_valid, conf_info)
return auth_middleware(request.headers.environ, None)
return auth_middleware(request.headers.environ, self.start_response)

# convert keystone user id to name
def user_id_to_name(self, id):
Expand Down
2 changes: 1 addition & 1 deletion src/config/common/tests/test_utils.py
Expand Up @@ -1095,7 +1095,7 @@ def __call__(self, env, start_response):
return self._reject_request(env, start_response)

token_info = self._validate_user_token(user_token, env)
# env['keystone.token_info'] = token_info
env['keystone.token_info'] = token_info
user_headers = self._build_user_headers(token_info)
self._add_headers(env, user_headers)
return self.app(env, start_response)
Expand Down

0 comments on commit 7be5fa8

Please sign in to comment.