diff options
| author | Xavier Ordoquy | 2012-11-23 01:11:09 +0100 | 
|---|---|---|
| committer | Xavier Ordoquy | 2012-11-23 01:11:09 +0100 | 
| commit | b68263fb652172c5dd74bb7a1c99f0c1230d76bc (patch) | |
| tree | d255e2149aff38a4fa939e58b7a4e5c7e801a5e2 /rest_framework | |
| parent | 4007b56457221f0d80f43c2b5303f11454fd947c (diff) | |
| download | django-rest-framework-b68263fb652172c5dd74bb7a1c99f0c1230d76bc.tar.bz2 | |
Default encoding should probably be latin-1 as some RFC seems to imply it.
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/authentication.py | 2 | ||||
| -rw-r--r-- | rest_framework/tests/authentication.py | 4 | ||||
| -rw-r--r-- | rest_framework/utils/mediatypes.py | 2 | 
3 files changed, 4 insertions, 4 deletions
| diff --git a/rest_framework/authentication.py b/rest_framework/authentication.py index d283959d..15e531bf 100644 --- a/rest_framework/authentication.py +++ b/rest_framework/authentication.py @@ -40,7 +40,7 @@ class BasicAuthentication(BaseAuthentication):              auth = request.META['HTTP_AUTHORIZATION'].split()              if len(auth) == 2 and auth[0].lower() == "basic":                  try: -                    auth_parts = base64.b64decode(auth[1].encode('utf8')).decode('utf8').partition(':') +                    auth_parts = base64.b64decode(auth[1].encode('iso-8859-1')).decode('iso-8859-1').partition(':')                  except TypeError:                      return None diff --git a/rest_framework/tests/authentication.py b/rest_framework/tests/authentication.py index b7cf5032..70905808 100644 --- a/rest_framework/tests/authentication.py +++ b/rest_framework/tests/authentication.py @@ -44,13 +44,13 @@ class BasicAuthTests(TestCase):      def test_post_form_passing_basic_auth(self):          """Ensure POSTing json over basic auth with correct credentials passes and does not require CSRF""" -        auth = 'Basic ' + base64.encodestring(('%s:%s' % (self.username, self.password)).encode('utf8')).strip().decode('utf8') +        auth = 'Basic ' + base64.encodestring(('%s:%s' % (self.username, self.password)).encode('iso-8859-1')).strip().decode('iso-8859-1')          response = self.csrf_client.post('/', {'example': 'example'}, HTTP_AUTHORIZATION=auth)          self.assertEqual(response.status_code, 200)      def test_post_json_passing_basic_auth(self):          """Ensure POSTing form over basic auth with correct credentials passes and does not require CSRF""" -        auth = 'Basic ' + base64.encodestring(('%s:%s' % (self.username, self.password)).encode('utf8')).strip().decode('utf8') +        auth = 'Basic ' + base64.encodestring(('%s:%s' % (self.username, self.password)).encode('iso-8859-1')).strip().decode('iso-8859-1')          response = self.csrf_client.post('/', json.dumps({'example': 'example'}), 'application/json', HTTP_AUTHORIZATION=auth)          self.assertEqual(response.status_code, 200) diff --git a/rest_framework/utils/mediatypes.py b/rest_framework/utils/mediatypes.py index 39b4ef93..3fc59edd 100644 --- a/rest_framework/utils/mediatypes.py +++ b/rest_framework/utils/mediatypes.py @@ -47,7 +47,7 @@ class _MediaType(object):          if media_type_str is None:              media_type_str = ''          self.orig = media_type_str -        self.full_type, self.params = parse_header(media_type_str.encode('utf8')) +        self.full_type, self.params = parse_header(media_type_str.encode('iso-8859-1'))          self.main_type, sep, self.sub_type = self.full_type.partition('/')      def match(self, other): | 
