From 8a92e8aece96bee95c420fd3708299e48ca7e0a7 Mon Sep 17 00:00:00 2001 From: Vitosha Labs Open Source Team Date: Nov 02 2022 16:52:23 +0000 Subject: sometimes userinfo[requested_claim] is bytes which causes an exception, so decode it before use Signed-off-by: Vitosha Labs Open Source Team --- diff --git a/ipsilon/providers/openidc/auth.py b/ipsilon/providers/openidc/auth.py index 98c4539..8987b07 100644 --- a/ipsilon/providers/openidc/auth.py +++ b/ipsilon/providers/openidc/auth.py @@ -464,6 +464,12 @@ class Continue(AuthenticateRequest): for requested_claim in request['claims']['userinfo']: if requested_claim in userinfo: claims_userinfo[requested_claim] = userinfo[requested_claim] + if isinstance(claims_userinfo[requested_claim], bytes): + claims_userinfo[requested_claim] = claims_userinfo[requested_claim].decode('utf-8') + elif isinstance(claims_userinfo[requested_claim], list): + for i in range(len(claims_userinfo[requested_claim])): + if isinstance(claims_userinfo[requested_claim][i], bytes): + claims_userinfo[requested_claim][i] = claims_userinfo[requested_claim][i].decode('utf-8') claims_userinfo['sub'] = userinfo['sub'] userinfocode = None