Skip to content
This repository was archived by the owner on Jun 12, 2021. It is now read-only.

Commit 024d019

Browse files
committed
Fix token introspection endpoint responses
The response object should return a TokenIntrospectionResponse object argument in all cases (if the request is valid).
1 parent 4a761b1 commit 024d019

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

src/oidcendpoint/oauth2/introspection.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,19 +40,20 @@ def process_request(self, request=None, **kwargs):
4040
:return:
4141
"""
4242
_introspect_request = self.request_cls(**request)
43+
_resp = self.response_cls(active=False)
4344

4445
_jwt = JWT(key_jar=self.endpoint_context.keyjar)
4546

4647
try:
4748
_jwt_info = _jwt.unpack(_introspect_request["token"])
4849
except Exception:
49-
return {"response": {"active": False}}
50+
return {"response_args": _resp}
5051

5152
# expired ?
5253
if "exp" in _jwt_info:
5354
now = utc_time_sans_frac()
5455
if _jwt_info["exp"] < now:
55-
return {"response": {"active": False}}
56+
return {"response_args": _resp}
5657

5758
if "release" in self.kwargs:
5859
if "username" in self.kwargs["release"]:
@@ -61,9 +62,9 @@ def process_request(self, request=None, **kwargs):
6162
sub=_jwt_info["sub"]
6263
)
6364
except KeyError:
64-
return {"response": {"active": False}}
65+
return {"response_args": _resp}
6566

66-
_resp = self.response_cls(**_jwt_info)
67+
_resp.update(_jwt_info)
6768
_resp.weed()
6869
_resp["active"] = True
6970

0 commit comments

Comments
 (0)