          Return the instance of the authentication instance class that was used
          to authenticate the request, or `None`.
          """
          if not hasattr(self, '_authenticator'):
              self._authenticator, self._user, self._auth = self._authenticate()
          return self._authenticator
  
      def _load_data_and_files(self):
          """
          Parses the request content into self.DATA and self.FILES.
 
</s> remove             self._authenticator, self._user, self._auth = self._authenticate()
 </s> add             self._authenticate() </s> remove             self._authenticator, self._user, self._auth = self._authenticate()
 </s> add             self._authenticate() </s> remove             auth = None

        return (None, user, auth)
 </s> add             self._auth = None </s> remove                 user, auth = user_auth_tuple
                return (authenticator, user, auth)
        return self._not_authenticated()
 </s> add                 self._authenticator = authenticator
                self._user, self._auth = user_auth_tuple
                return

        self._not_authenticated() </s> remove             user_auth_tuple = authenticator.authenticate(self)
 </s> add             try:
                user_auth_tuple = authenticator.authenticate(self)
            except exceptions.APIException:
                self._not_authenticated()
                raise

            self._authenticate()
          Return the instance of the authentication instance class that was used
          to authenticate the request, or `None`.
          """
          if not hasattr(self, '_authenticator'):
            self._authenticate()
          return self._authenticator
  
      def _load_data_and_files(self):
          """
          Parses the request content into self.DATA and self.FILES.
keep keep keep keep replace keep keep keep keep keep
 request.user should be still be accessible in renderer context if authentication fails 
rest_framework/request.py