diff --git a/rest_framework/views.py b/rest_framework/views.py index 70af84816..c25b6c38c 100644 --- a/rest_framework/views.py +++ b/rest_framework/views.py @@ -173,7 +173,7 @@ class APIView(View): If request is not permitted, determine what kind of exception to raise. """ if request.authenticators and not request.successful_authenticator: - raise exceptions.NotAuthenticated() + raise exceptions.NotAuthenticated(detail=message) raise exceptions.PermissionDenied(detail=message) def throttled(self, request, wait): diff --git a/tests/test_permissions.py b/tests/test_permissions.py index 37540eb8e..159834f89 100644 --- a/tests/test_permissions.py +++ b/tests/test_permissions.py @@ -522,3 +522,10 @@ class CustomPermissionsTests(TestCase): detail = response.data.get('detail') self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) self.assertEqual(detail, self.custom_message) + + def test_permission_denied_for_object_with_custom_detail_by_anonymous_user(self): + anonymous_request = factory.get('/1', format='json') + response = denied_object_view_with_detail(anonymous_request, pk=1) + detail = response.data.get('detail') + self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + self.assertEqual(detail, self.custom_message)