Add coors middleware.
parent
e6011ae777
commit
a4f4c816c7
|
@ -1,6 +1,7 @@
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django import http
|
||||||
from django.utils.cache import patch_vary_headers
|
from django.utils.cache import patch_vary_headers
|
||||||
from django.utils.http import cookie_date
|
from django.utils.http import cookie_date
|
||||||
from django.utils.importlib import import_module
|
from django.utils.importlib import import_module
|
||||||
|
@ -48,3 +49,35 @@ class GreenmineSessionMiddleware(object):
|
||||||
secure=settings.SESSION_COOKIE_SECURE or None,
|
secure=settings.SESSION_COOKIE_SECURE or None,
|
||||||
httponly=settings.SESSION_COOKIE_HTTPONLY or None)
|
httponly=settings.SESSION_COOKIE_HTTPONLY or None)
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
COORS_ALLOWED_ORIGINS = getattr(settings, 'COORS_ALLOWED_ORIGINS', '*')
|
||||||
|
COORS_ALLOWED_METHODS = getattr(settings, 'COORS_ALLOWED_METHODS',
|
||||||
|
['POST', 'GET', 'OPTIONS', 'PUT', 'DELETE'])
|
||||||
|
COORS_ALLOWED_HEADERS = getattr(settings, 'COORS_ALLOWED_HEADERS',
|
||||||
|
['Content-Type', 'X-Requested-With',
|
||||||
|
'X-Session-Token', 'Accept-Encoding'])
|
||||||
|
COORS_ALLOWED_CREDENTIALS = getattr(settings, 'COORS_ALLOWED_CREDENTIALS', True)
|
||||||
|
|
||||||
|
|
||||||
|
class CoorsMiddleware(object):
|
||||||
|
def _populate_response(self, response):
|
||||||
|
response['Access-Control-Allow-Origin'] = COORS_ALLOWED_ORIGINS
|
||||||
|
response['Access-Control-Allow-Methods'] = ",".join(COORS_ALLOWED_METHODS)
|
||||||
|
response['Access-Control-Allow-Headers'] = ",".join(COORS_ALLOWED_HEADERS)
|
||||||
|
|
||||||
|
if COORS_ALLOWED_CREDENTIALS:
|
||||||
|
response['Access-Control-Allow-Credentials'] = 'true'
|
||||||
|
|
||||||
|
def process_request(self, request):
|
||||||
|
if 'HTTP_ACCESS_CONTROL_REQUEST_METHOD' in request.META:
|
||||||
|
response = http.HttpResponse()
|
||||||
|
self._populate_response(response)
|
||||||
|
return response
|
||||||
|
|
||||||
|
return None
|
||||||
|
|
||||||
|
def process_response(self, request, response):
|
||||||
|
self._populate_response(response)
|
||||||
|
return response
|
||||||
|
|
|
@ -164,6 +164,7 @@ TEMPLATE_LOADERS = [
|
||||||
MIDDLEWARE_CLASSES = [
|
MIDDLEWARE_CLASSES = [
|
||||||
'django.middleware.common.CommonMiddleware',
|
'django.middleware.common.CommonMiddleware',
|
||||||
'greenmine.base.middleware.GreenmineSessionMiddleware',
|
'greenmine.base.middleware.GreenmineSessionMiddleware',
|
||||||
|
'greenmine.base.middleware.CoorsMiddleware',
|
||||||
'django.middleware.locale.LocaleMiddleware',
|
'django.middleware.locale.LocaleMiddleware',
|
||||||
'django.middleware.csrf.CsrfViewMiddleware',
|
'django.middleware.csrf.CsrfViewMiddleware',
|
||||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
|
|
Loading…
Reference in New Issue