diff --git a/jupyterhub/handlers/base.py b/jupyterhub/handlers/base.py index 5b5a38ad..1c9099d9 100644 --- a/jupyterhub/handlers/base.py +++ b/jupyterhub/handlers/base.py @@ -265,10 +265,17 @@ class BaseHandler(RequestHandler): def get_current_user(self): """get current username""" - user = self.get_current_user_token() - if user is not None: - return user - return self.get_current_user_cookie() + if not hasattr(self, '_jupyterhub_user'): + try: + user = self.get_current_user_token() + if user is None: + user = self.get_current_user_cookie() + self._jupyterhub_user = user + except Exception: + # don't let errors here raise more than once + self._jupyterhub_user = None + raise + return self._jupyterhub_user def find_user(self, name): """Get a user by name