          Returns the user associated with the current request, as authenticated
          by the authentication classes provided to the request.
          """
          if not hasattr(self, '_user'):
              self._user, self._auth = self._authenticate()
          return self._user
  
      @property
      def auth(self):
          """
 
</s> remove             self._user, self._auth = self._authenticate()
 </s> add             self._authenticator, self._user, self._auth = self._authenticate() </s> remove         Attempt to authenticate the request using each authentication instance in turn.
        Returns a two-tuple of (user, authtoken).
 </s> add         Attempt to authenticate the request using each authentication instance
        in turn.
        Returns a three-tuple of (authenticator, user, authtoken). </s> remove         return (user, auth)
 </s> add         return (None, user, auth) </s> remove             raise exceptions.PermissionDenied('CSRF Failed: %s' % reason)
 </s> add             raise exceptions.AuthenticationFailed('CSRF Failed: %s' % reason)
            self._authenticator, self._user, self._auth = self._authenticate()
          Returns the user associated with the current request, as authenticated
          by the authentication classes provided to the request.
          """
          if not hasattr(self, '_user'):
            self._authenticator, self._user, self._auth = self._authenticate()
          return self._user
  
      @property
      def auth(self):
          """
keep keep keep keep replace keep keep keep keep keep
 Implementing 401 vs 403 responses 
rest_framework/request.py