Merge "Remove middleware reference to PARAMS_ENV and CONTEXT_ENV"

This commit is contained in:
Jenkins 2017-10-04 06:23:48 +00:00 committed by Gerrit Code Review
commit ec619c7247
4 changed files with 14 additions and 20 deletions

View File

@ -136,7 +136,7 @@ class AuthContextMiddleware(auth_token.BaseAuthProtocol):
@wsgi.middleware_exceptions
def process_request(self, request):
context_env = request.environ.get(core.CONTEXT_ENV, {})
context_env = request.environ.get(wsgi.CONTEXT_ENV, {})
# NOTE(notmorgan): This code is merged over from the admin token
# middleware and now emits the security warning when the
@ -150,7 +150,7 @@ class AuthContextMiddleware(auth_token.BaseAuthProtocol):
"not be set. This option is deprecated in favor of using "
"'keystone-manage bootstrap' and will be removed in a "
"future release.")
request.environ[core.CONTEXT_ENV] = context_env
request.environ[wsgi.CONTEXT_ENV] = context_env
if not context_env.get('is_admin', False):
resp = super(AuthContextMiddleware, self).process_request(request)
@ -186,7 +186,7 @@ class AuthContextMiddleware(auth_token.BaseAuthProtocol):
# certificate is effectively disabled if no trusted issuers are
# provided.
if request.environ.get(core.CONTEXT_ENV, {}).get('is_admin', False):
if request.environ.get(wsgi.CONTEXT_ENV, {}).get('is_admin', False):
request_context.is_admin = True
auth_context = {}

View File

@ -30,22 +30,14 @@ AUTH_TOKEN_HEADER = 'X-Auth-Token'
SUBJECT_TOKEN_HEADER = 'X-Subject-Token'
# Environment variable used to pass the request context
CONTEXT_ENV = wsgi.CONTEXT_ENV
# Environment variable used to pass the request params
PARAMS_ENV = wsgi.PARAMS_ENV
class TokenAuthMiddleware(wsgi.Middleware):
def process_request(self, request):
token = request.headers.get(AUTH_TOKEN_HEADER)
context = request.environ.get(CONTEXT_ENV, {})
context = request.environ.get(wsgi.CONTEXT_ENV, {})
context['token_id'] = token
if SUBJECT_TOKEN_HEADER in request.headers:
context['subject_token_id'] = request.headers[SUBJECT_TOKEN_HEADER]
request.environ[CONTEXT_ENV] = context
request.environ[wsgi.CONTEXT_ENV] = context
class AdminTokenAuthMiddleware(wsgi.Middleware):
@ -122,7 +114,7 @@ class JsonBodyMiddleware(wsgi.Middleware):
continue
params[k] = v
request.environ[PARAMS_ENV] = params
request.environ[wsgi.PARAMS_ENV] = params
class NormalizingFilter(wsgi.Middleware):

View File

@ -22,6 +22,7 @@ import webtest
from keystone.common import authorization
from keystone.common import tokenless_auth
from keystone.common import wsgi
import keystone.conf
from keystone import exception
from keystone.federation import constants as federation_constants
@ -107,7 +108,7 @@ class TokenAuthMiddlewareTest(MiddlewareRequestTestBase):
def test_request(self):
headers = {middleware.AUTH_TOKEN_HEADER: 'MAGIC'}
req = self._do_middleware_request(headers=headers)
context = req.environ[middleware.CONTEXT_ENV]
context = req.environ[wsgi.CONTEXT_ENV]
self.assertEqual('MAGIC', context['token_id'])
@ -122,7 +123,7 @@ class JsonBodyMiddlewareTest(MiddlewareRequestTestBase):
headers=headers,
method='post')
self.assertEqual({"arg1": "one", "arg2": ["a"]},
req.environ[middleware.PARAMS_ENV])
req.environ[wsgi.PARAMS_ENV])
def test_malformed_json(self):
headers = {'Content-Type': 'application/json'}
@ -147,7 +148,7 @@ class JsonBodyMiddlewareTest(MiddlewareRequestTestBase):
headers=headers,
method='post')
self.assertEqual({"arg1": "one", "arg2": ["a"]},
req.environ[middleware.PARAMS_ENV])
req.environ[wsgi.PARAMS_ENV])
def test_unrecognized_content_type(self):
headers = {'Content-Type': 'text/plain'}
@ -159,7 +160,7 @@ class JsonBodyMiddlewareTest(MiddlewareRequestTestBase):
def test_unrecognized_content_type_without_body(self):
headers = {'Content-Type': 'text/plain'}
req = self._do_middleware_request(headers=headers)
self.assertEqual({}, req.environ.get(middleware.PARAMS_ENV, {}))
self.assertEqual({}, req.environ.get(wsgi.PARAMS_ENV, {}))
class AuthContextMiddlewareTest(test_backend_sql.SqlTests,
@ -722,7 +723,7 @@ class AuthContextMiddlewareTest(test_backend_sql.SqlTests,
log_fix = self.useFixture(fixtures.FakeLogger())
headers = {middleware.AUTH_TOKEN_HEADER: 'ADMIN'}
req = self._do_middleware_request(headers=headers)
self.assertTrue(req.environ[middleware.CONTEXT_ENV]['is_admin'])
self.assertTrue(req.environ[wsgi.CONTEXT_ENV]['is_admin'])
self.assertNotIn('Invalid user token', log_fix.output)
def test_request_non_admin(self):

View File

@ -25,6 +25,7 @@ from keystone import auth
from keystone.common import authorization
from keystone.common import cache
from keystone.common.validation import validators
from keystone.common import wsgi
from keystone import exception
from keystone import middleware
from keystone.tests.common import auth as common_auth
@ -1251,7 +1252,7 @@ class AuthContextMiddlewareAdminTokenTestCase(RestfulTestCase):
# already.
token_id = uuid.uuid4().hex # token doesn't matter.
# the admin_token middleware sets is_admin in the context.
extra_environ = {middleware.CONTEXT_ENV: {'is_admin': True}}
extra_environ = {wsgi.CONTEXT_ENV: {'is_admin': True}}
req = self._middleware_request(token_id, extra_environ)
auth_context = req.environ.get(authorization.AUTH_CONTEXT_ENV)
self.assertDictEqual({}, auth_context)