]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: fix missing claims on oauth2 sso
authorPedro Gonzalez Gomez <pegonzal@ibm.com>
Thu, 7 May 2026 19:55:15 +0000 (21:55 +0200)
committerPedro Gonzalez Gomez <pegonzal@ibm.com>
Mon, 11 May 2026 10:17:51 +0000 (12:17 +0200)
Fixes: https://tracker.ceph.com/issues/76479
Signed-off-by: Pedro Gonzalez Gomez <pegonzal@ibm.com>
src/pybind/mgr/dashboard/services/auth/oauth2.py

index b000c2f75bafb6f761fce12f444b38fa21c59858..d7ffabb5723877041b9f571ea7f5c8e606a6f668 100644 (file)
@@ -130,13 +130,16 @@ class OAuth2(SSOAuth):
             raise cherrypy.HTTPError()
         try:
             user = mgr.ACCESS_CTRL_DB.create_user(
-                jwt_payload['sub'], None, jwt_payload['name'], jwt_payload['email'])
+                jwt_payload['sub'], None, jwt_payload.get('name', None), jwt_payload.get('email', None))
         except UserAlreadyExists:
             logger.debug("User already exists")
             user = mgr.ACCESS_CTRL_DB.get_user(jwt_payload['sub'])
+        except KeyError as e:
+            raise cherrypy.HTTPError(500, f'Invalid token payload: {e}')
+
         user.set_roles(cls.get_user_roles())
         # set user last update to token time issued
-        user.last_update = jwt_payload['iat']
+        user.last_update = jwt_payload.get('iat', 0)
         cherrypy.request.user = user
 
     @classmethod