Skip to content

Commit 506c959

Browse files
update zenodo endpoints
2 parents 7bb0ffd + f0c6b29 commit 506c959

1 file changed

Lines changed: 13 additions & 11 deletions

File tree

infrastructure/cluster/flux/jhub-dev/jhub-dev-release.yaml

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ spec:
147147
148148
# enable authentication state
149149
c.GenericOAuthenticator.enable_auth_state = True
150-
# Here inden
150+
151151
zenodo-oauth: |
152152
import os, json, time, pathlib, secrets, requests
153153
from urllib.parse import urlencode
@@ -162,6 +162,12 @@ spec:
162162
TOKENS_DIR = os.environ.get('ZENODO_TOKENS_DIR', '/srv/jupyterhub/zenodo-tokens')
163163
164164
class ZenodoLoginHandler(BaseHandler):
165+
def _callback_url(self):
166+
# Build absolute URL (scheme + host + path) to match Zenodo's registered redirect URI exactly
167+
proto = getattr(self.request, 'protocol', 'https')
168+
host = self.request.host
169+
return f"{proto}://{host}{url_path_join(self.base_url, 'zenodo', 'callback')}"
170+
165171
async def get(self):
166172
user = self.current_user
167173
if not user:
@@ -178,10 +184,6 @@ spec:
178184
}
179185
self.redirect(f"{ZENODO_AUTHORIZE_URL}?{urlencode(params)}")
180186
181-
def _callback_url(self):
182-
# base_url already ends with /hub/
183-
return url_path_join(self.base_url, 'zenodo-auth', 'callback')
184-
185187
class ZenodoCallbackHandler(BaseHandler):
186188
async def get(self):
187189
user = self.current_user
@@ -192,7 +194,7 @@ spec:
192194
if not state_cookie or state_cookie.decode() != state_param:
193195
raise web.HTTPError(400, 'Invalid state')
194196
code = self.get_argument('code', '')
195-
callback_url = ZenodoLoginHandler._callback_url(self) # reuse logic
197+
callback_url = ZenodoLoginHandler._callback_url(self)
196198
data = {
197199
'grant_type': 'authorization_code',
198200
'code': code,
@@ -216,10 +218,10 @@ spec:
216218
self.clear_cookie('zen_state')
217219
self.redirect(url_path_join(self.base_url, 'home'))
218220
219-
# Register handlers using (deprecated but functional) extra_handlers
221+
# Register handlers using extra_handlers (deprecated but fucntional)
220222
c.JupyterHub.extra_handlers = [
221-
(r'/zenodo-auth/login', ZenodoLoginHandler),
222-
(r'/zenodo-auth/callback', ZenodoCallbackHandler),
223+
(r'/zenodo/login', ZenodoLoginHandler),
224+
(r'/zenodo/callback', ZenodoCallbackHandler),
223225
]
224226
225227
singleuser:
@@ -289,10 +291,10 @@ spec:
289291
description: "quay.io/jupyter/scipy-notebook:python-3.11 image"
290292
kubespawner_override:
291293
image: quay.io/jupyter/scipy-notebook:python-3.11.10
292-
- display_name: "Zenodo Jupyterlab dev env"
294+
- display_name: "Zenodo Jupyterlab extension DEV env"
293295
description: "All in the tittle"
294296
kubespawner_override:
295-
image: ghcr.io/vre-hub/zenodo-jupyterlab-extension:refactor_extension
297+
image: ghcr.io/vre-hub/zenodo-jupyterlab-extension:dev-oauth
296298
# - display_name: "VRE and rucio extension integration"
297299
# description: "python3.11 and Rucio extension integration "
298300
# kubespawner_override:

0 commit comments

Comments
 (0)