diff --git a/jupyterhub/app.py b/jupyterhub/app.py index 1aec9972..85635291 100644 --- a/jupyterhub/app.py +++ b/jupyterhub/app.py @@ -711,6 +711,7 @@ class JupyterHub(Application): self.log.debug("Loading state for %s from db", user.name) user.spawner = spawner = self.spawner_class( user=user, hub=self.hub, config=self.config, db=self.db, + authenticator=self.authenticator, ) status = yield spawner.poll() if status is None: diff --git a/jupyterhub/handlers/base.py b/jupyterhub/handlers/base.py index cf736be0..f6914ed8 100644 --- a/jupyterhub/handlers/base.py +++ b/jupyterhub/handlers/base.py @@ -265,6 +265,7 @@ class BaseHandler(RequestHandler): base_url=self.base_url, hub=self.hub, config=self.config, + authenticator=self.authenticator, ) @gen.coroutine def finish_user_spawn(f=None): diff --git a/jupyterhub/orm.py b/jupyterhub/orm.py index 5c6158a5..5a5a848b 100644 --- a/jupyterhub/orm.py +++ b/jupyterhub/orm.py @@ -336,7 +336,7 @@ class User(Base): return db.query(cls).filter(cls.name==name).first() @gen.coroutine - def spawn(self, spawner_class, base_url='/', hub=None, config=None): + def spawn(self, spawner_class, base_url='/', hub=None, authenticator=None, config=None): """Start the user's spawner""" db = inspect(self).session if hub is None: @@ -357,6 +357,7 @@ class User(Base): user=self, hub=hub, db=db, + authenticator=authenticator, ) # we are starting a new server, make sure it doesn't restore state spawner.clear_state() diff --git a/jupyterhub/spawner.py b/jupyterhub/spawner.py index b6e25cd6..137e6f78 100644 --- a/jupyterhub/spawner.py +++ b/jupyterhub/spawner.py @@ -39,6 +39,7 @@ class Spawner(LoggingConfigurable): db = Any() user = Any() hub = Any() + authenticator = Any() api_token = Unicode() ip = Unicode('localhost', config=True, help="The IP address (or hostname) the single-user server should listen on"