Add coors middleware.
parent
e6011ae777
commit
a4f4c816c7
|
@ -1,6 +1,7 @@
|
|||
import time
|
||||
|
||||
from django.conf import settings
|
||||
from django import http
|
||||
from django.utils.cache import patch_vary_headers
|
||||
from django.utils.http import cookie_date
|
||||
from django.utils.importlib import import_module
|
||||
|
@ -48,3 +49,35 @@ class GreenmineSessionMiddleware(object):
|
|||
secure=settings.SESSION_COOKIE_SECURE or None,
|
||||
httponly=settings.SESSION_COOKIE_HTTPONLY or None)
|
||||
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 = [
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'greenmine.base.middleware.GreenmineSessionMiddleware',
|
||||
'greenmine.base.middleware.CoorsMiddleware',
|
||||
'django.middleware.locale.LocaleMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
|
|
Loading…
Reference in New Issue