Commit 510d6a3c by Xavier Ordoquy

Introduced HTTP_HEADER_ENCODING.

parent 22a7dc27
...@@ -8,6 +8,7 @@ from rest_framework import exceptions ...@@ -8,6 +8,7 @@ from rest_framework import exceptions
from rest_framework.compat import CsrfViewMiddleware from rest_framework.compat import CsrfViewMiddleware
from rest_framework.compat import smart_text from rest_framework.compat import smart_text
from rest_framework.authtoken.models import Token from rest_framework.authtoken.models import Token
from rest_framework.settings import api_settings
import base64 import base64
...@@ -37,7 +38,9 @@ class BasicAuthentication(BaseAuthentication): ...@@ -37,7 +38,9 @@ class BasicAuthentication(BaseAuthentication):
auth = request.META['HTTP_AUTHORIZATION'].split() auth = request.META['HTTP_AUTHORIZATION'].split()
if len(auth) == 2 and auth[0].lower() == "basic": if len(auth) == 2 and auth[0].lower() == "basic":
try: try:
auth_parts = base64.b64decode(auth[1].encode('iso-8859-1')).decode('iso-8859-1').partition(':') encoding = api_settings.HTTP_HEADER_ENCODING
b = base64.b64decode(auth[1].encode(encoding))
auth_parts = b.decode(encoding).partition(':')
except TypeError: except TypeError:
return None return None
......
...@@ -75,6 +75,9 @@ DEFAULTS = { ...@@ -75,6 +75,9 @@ DEFAULTS = {
'URL_FORMAT_OVERRIDE': 'format', 'URL_FORMAT_OVERRIDE': 'format',
'FORMAT_SUFFIX_KWARG': 'format', 'FORMAT_SUFFIX_KWARG': 'format',
# Header encoding (see RFC5987)
'HTTP_HEADER_ENCODING': 'iso-8859-1',
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment