Unverified Commit 26efc226 authored by Antoine Kaufmann's avatar Antoine Kaufmann
Browse files

symphony/client: add token request support for UMA

parent 8073e668
...@@ -74,7 +74,7 @@ class TokenClient: ...@@ -74,7 +74,7 @@ class TokenClient:
return Token( return Token(
access_token=json_obj["access_token"], access_token=json_obj["access_token"],
refresh_token=json_obj["refresh_token"], refresh_token=json_obj["refresh_token"],
session_state=json_obj["session_state"], session_state='',
access_valid_until=access_valid_until, access_valid_until=access_valid_until,
refresh_valid_until=refresh_valid_until, refresh_valid_until=refresh_valid_until,
) )
...@@ -166,6 +166,29 @@ class TokenClient: ...@@ -166,6 +166,29 @@ class TokenClient:
assert token assert token
return token return token
async def resource_token(self, token: Token, ticket: str) -> Token:
assert token.is_access_valid()
async with aiohttp.ClientSession() as session:
async with session.post(
url=self._token_url,
headers={"Authorization": f"Bearer {token.access_token}"},
data={
"client_id": self._client_id,
"grant_type": "urn:ietf:params:oauth:grant-type:uma-ticket",
"ticket": ticket,
},
) as resp:
print(await resp.text())
resp.raise_for_status() # TODO: handel gracefully
json_resp = await resp.json()
if "error" in json_resp:
raise Exception(f"error refreshing token: {json_resp}")
token = self._create_token_from_resp(json_obj=json_resp)
assert token
return token
class TokenProvider: class TokenProvider:
...@@ -217,3 +240,8 @@ class TokenProvider: ...@@ -217,3 +240,8 @@ class TokenProvider:
await self._refresh_token() await self._refresh_token()
assert self._token assert self._token
return self._token.access_token return self._token.access_token
async def resource_token(self, ticket):
await self._refresh_token()
self._token = await self._toke_client.resource_token(self._token, ticket)
self._store_token()
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment