Skip to content

Commit 321f5a9

Browse files
authored
give authorizer handle on identity provider (#830)
1 parent f2a0344 commit 321f5a9

File tree

3 files changed

+17
-11
lines changed

3 files changed

+17
-11
lines changed

jupyter_server/auth/authorizer.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@
77
"""
88
# Copyright (c) Jupyter Development Team.
99
# Distributed under the terms of the Modified BSD License.
10+
from traitlets import Instance
1011
from traitlets.config import LoggingConfigurable
1112

1213
from jupyter_server.base.handlers import JupyterHandler
1314

14-
from .identity import User
15+
from .identity import IdentityProvider, User
1516

1617

1718
class Authorizer(LoggingConfigurable):
@@ -34,6 +35,8 @@ class Authorizer(LoggingConfigurable):
3435
.. versionadded:: 2.0
3536
"""
3637

38+
identity_provider = Instance(IdentityProvider)
39+
3740
def is_authorized(
3841
self, handler: JupyterHandler, user: User, action: str, resource: str
3942
) -> bool:

jupyter_server/base/handlers.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,8 @@ def authorizer(self):
220220
from jupyter_server.auth import AllowAllAuthorizer
221221

222222
self.settings["authorizer"] = AllowAllAuthorizer(
223-
config=self.settings.get("config", None)
223+
config=self.settings.get("config", None),
224+
identity_provider=self.identity_provider,
224225
)
225226

226227
return self.settings.get("authorizer")

jupyter_server/serverapp.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -217,23 +217,23 @@ def __init__(
217217
authorizer=None,
218218
identity_provider=None,
219219
):
220-
if authorizer is None:
220+
if identity_provider is None:
221221
warnings.warn(
222-
"authorizer unspecified. Using permissive AllowAllAuthorizer."
223-
" Specify an authorizer to avoid this message.",
222+
"identity_provider unspecified. Using default IdentityProvider."
223+
" Specify an identity_provider to avoid this message.",
224224
RuntimeWarning,
225225
stacklevel=2,
226226
)
227-
authorizer = AllowAllAuthorizer(parent=jupyter_app)
227+
identity_provider = IdentityProvider(parent=jupyter_app)
228228

229-
if identity_provider is None:
229+
if authorizer is None:
230230
warnings.warn(
231-
"identity_provider unspecified. Using default IdentityProvider."
232-
" Specify an identity_provider to avoid this message.",
231+
"authorizer unspecified. Using permissive AllowAllAuthorizer."
232+
" Specify an authorizer to avoid this message.",
233233
RuntimeWarning,
234234
stacklevel=2,
235235
)
236-
identity_provider = IdentityProvider(parent=jupyter_app)
236+
authorizer = AllowAllAuthorizer(parent=jupyter_app, identity_provider=identity_provider)
237237

238238
settings = self.init_settings(
239239
jupyter_app,
@@ -1861,8 +1861,10 @@ def init_configurables(self):
18611861
parent=self,
18621862
log=self.log,
18631863
)
1864-
self.authorizer = self.authorizer_class(parent=self, log=self.log)
18651864
self.identity_provider = self.identity_provider_class(parent=self, log=self.log)
1865+
self.authorizer = self.authorizer_class(
1866+
parent=self, log=self.log, identity_provider=self.identity_provider
1867+
)
18661868

18671869
def init_logging(self):
18681870
# This prevents double log messages because tornado use a root logger that

0 commit comments

Comments
 (0)