Merge "Raise HTTP 500 if service catalog is not json."
This commit is contained in:
commit
b97460a62a
@ -99,7 +99,12 @@ class NovaKeystoneContext(wsgi.Middleware):
|
||||
|
||||
service_catalog = None
|
||||
if req.headers.get('X_SERVICE_CATALOG') is not None:
|
||||
service_catalog = json.loads(req.headers.get('X_SERVICE_CATALOG'))
|
||||
try:
|
||||
catalog_header = req.headers.get('X_SERVICE_CATALOG')
|
||||
service_catalog = json.loads(catalog_header)
|
||||
except ValueError:
|
||||
raise webob.exc.HTTPInternalServerError(
|
||||
_('Invalid service catalog json.'))
|
||||
|
||||
ctx = context.RequestContext(user_id,
|
||||
project_id,
|
||||
|
@ -58,3 +58,9 @@ class TestNovaKeystoneContextMiddleware(test.TestCase):
|
||||
response = self.request.get_response(self.middleware)
|
||||
self.assertEqual(response.status, '200 OK')
|
||||
self.assertEqual(self.context.user_id, 'testuserid')
|
||||
|
||||
def test_invalid_service_catalog(self):
|
||||
self.request.headers['X_USER'] = 'testuser'
|
||||
self.request.headers['X_SERVICE_CATALOG'] = "bad json"
|
||||
response = self.request.get_response(self.middleware)
|
||||
self.assertEqual(response.status, '500 Internal Server Error')
|
||||
|
Loading…
x
Reference in New Issue
Block a user