Skip to content

Commit 4d269ba

Browse files
committed
feat: uma extra payload
1 parent d1984c7 commit 4d269ba

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

src/keycloak/keycloak_openid.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -731,7 +731,7 @@ def get_permissions(self, token, method_token_info="introspect", **kwargs):
731731

732732
return list(set(permissions))
733733

734-
def uma_permissions(self, token, permissions=""):
734+
def uma_permissions(self, token, permissions="", **extra_payload):
735735
"""Get UMA permissions by user token with requested permissions.
736736
737737
The token endpoint is used to retrieve UMA permissions from Keycloak. It can only be
@@ -743,6 +743,8 @@ def uma_permissions(self, token, permissions=""):
743743
:type token: str
744744
:param permissions: list of uma permissions list(resource:scope) requested by the user
745745
:type permissions: str
746+
:param extra_payload: Additional payload data
747+
:type extra_payload: dict
746748
:returns: Keycloak server response
747749
:rtype: dict
748750
"""
@@ -754,6 +756,7 @@ def uma_permissions(self, token, permissions=""):
754756
"permission": permission,
755757
"response_mode": "permissions",
756758
"audience": self.client_id,
759+
**extra_payload,
757760
}
758761

759762
orig_bearer = self.connection.headers.get("Authorization")
@@ -1394,7 +1397,7 @@ async def a_get_permissions(self, token, method_token_info="introspect", **kwarg
13941397

13951398
return list(set(permissions))
13961399

1397-
async def a_uma_permissions(self, token, permissions=""):
1400+
async def a_uma_permissions(self, token, permissions="", **extra_payload):
13981401
"""Get UMA permissions by user token with requested permissions asynchronously.
13991402
14001403
The token endpoint is used to retrieve UMA permissions from Keycloak. It can only be
@@ -1406,6 +1409,8 @@ async def a_uma_permissions(self, token, permissions=""):
14061409
:type token: str
14071410
:param permissions: list of uma permissions list(resource:scope) requested by the user
14081411
:type permissions: str
1412+
:param extra_payload: Additional payload data
1413+
:type extra_payload: dict
14091414
:returns: Keycloak server response
14101415
:rtype: dict
14111416
"""
@@ -1417,6 +1422,7 @@ async def a_uma_permissions(self, token, permissions=""):
14171422
"permission": list(permission), # httpx does not handle `set` correctly
14181423
"response_mode": "permissions",
14191424
"audience": self.client_id,
1425+
**extra_payload,
14201426
}
14211427

14221428
orig_bearer = self.connection.headers.get("Authorization")

0 commit comments

Comments
 (0)