Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ycai
simbricks
Commits
26efc226
Unverified
Commit
26efc226
authored
Dec 21, 2024
by
Antoine Kaufmann
Browse files
symphony/client: add token request support for UMA
parent
8073e668
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
29 additions
and
1 deletion
+29
-1
symphony/client/simbricks/client/auth.py
symphony/client/simbricks/client/auth.py
+29
-1
No files found.
symphony/client/simbricks/client/auth.py
View file @
26efc226
...
@@ -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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment