Добрый день.
Сейчас настраиваю сервис, который спрятан за сервером с mod_proxy и возникла проблема - mod_proxy удаляет заголовок "Authorization"
Сам сервис написан на django и я написал небольшой middleware что б выводить заголовки в логгер и потом сравнить их. итого, имеем на dev-сервере:
Хоть наверняка это проблема не django, вот middleware:
import logging
import re
from django.http import HttpResponseRedirect
logger = logging.getLogger(__name__)
class CurrentMetaMiddleware(object):
def process_request(self, request):
regex = re.compile('^HTTP_')
z = dict((regex.sub('', header), value) for (header, value)
in request.META.items() if header.startswith('HTTP_'))
logger.error(z)
return None
[23/Sep/2014 14:00:32] ERROR [pipelineapi.middleware:14] {'HOST': '127.0.0.1:8000', 'ACCEPT_ENCODING': 'gzip, deflate', 'ACCEPT': '*/*', 'AUTHORIZATION': 'Bearer 9aea813534cb064ab8c6b617c8f23bf68fec3464', 'USER_AGENT': 'python-requests/2.3.0 CPython/2.7.8 Linux/3.14-1-amd64'}
и абсолютно идентичный запрос, кроме самих значений заголовка(я получаю другой токен, для запроса), на продакшен, через mod_proxy:
[23/Sep/2014 14:01:52] ERROR [pipelineapi.middleware:14] {'HOST': 'api.some-server.com', 'ACCEPT': '*/*', 'CONNECTION': 'Keep-Alive', 'USER_AGENT': 'python-requests/2.3.0 CPython/2.7.8 Linux/3.14-1-amd64', 'X_FORWARDED_SERVER': ''api.some-server.com', 'X_FORWARDED_HOST': 'api.some-server.com', 'X_FORWARDED_FOR': '192.168.0.18', 'ACCEPT_ENCODING': 'gzip, deflate'}
Как видно, во втором логе нет заголовка Authorization.
Пожалуйста, подскажите, почему это происходит и как с этим бороться?