aboutsummaryrefslogtreecommitdiff
path: root/uploader/phenotypes
diff options
context:
space:
mode:
Diffstat (limited to 'uploader/phenotypes')
-rw-r--r--uploader/phenotypes/views.py39
1 files changed, 5 insertions, 34 deletions
diff --git a/uploader/phenotypes/views.py b/uploader/phenotypes/views.py
index 834a450..4a9df8b 100644
--- a/uploader/phenotypes/views.py
+++ b/uploader/phenotypes/views.py
@@ -13,7 +13,6 @@ from logging import INFO, ERROR, DEBUG, FATAL, CRITICAL, WARNING
from urllib.parse import urljoin, urlparse, ParseResult, urlunparse, urlencode
import datetime
-from datetime import timedelta
from redis import Redis
from pymonad.either import Left
@@ -25,9 +24,7 @@ from gn_libs import sqlite3
from gn_libs import jobs as gnlibs_jobs
from gn_libs.jobs.jobs import JobNotFound
from gn_libs.mysqldb import database_connection
-from gn_libs import monadic_requests as mrequests
-from authlib.jose import jwt
from flask import (flash,
request,
url_for,
@@ -47,8 +44,9 @@ from uploader import session
from uploader.files import save_file#, fullpath
from uploader.ui import make_template_renderer
from uploader.oauth2.client import oauth2_post
+from uploader.oauth2.tokens import request_token
from uploader.authorisation import require_login
-from uploader.oauth2 import jwks, client as oauth2client
+from uploader.oauth2 import client as oauth2client
from uploader.route_utils import generic_select_population
from uploader.datautils import safe_int, enumerate_sequence
from uploader.species.models import all_species, species_by_id
@@ -676,37 +674,10 @@ def load_data_to_database(
return redirect(url_for(
"background-jobs.job_status", job_id=load_job["job_id"]))
- issued = datetime.datetime.now()
- jwtkey = jwks.newest_jwk_with_rotation(
- jwks.jwks_directory(app, "UPLOADER_SECRETS"),
- int(app.config["JWKS_ROTATION_AGE_DAYS"]))
- return mrequests.post(
- urljoin(oauth2client.authserver_uri(), "auth/token"),
- json={
- "grant_type": "urn:ietf:params:oauth:grant-type:jwt-bearer",
- "scope": oauth2client.SCOPE,
- "assertion": jwt.encode(
- header={
- "alg": "RS256",
- "typ": "JWT",
- "kid": jwtkey.as_dict()["kid"]
- },
- payload={
- "iss": str(oauth2client.oauth2_clientid()),
- "sub": str(session.user_details()["user_id"]),
- "aud": urljoin(oauth2client.authserver_uri(),
- "auth/token"),
- # TODO: Update expiry time once fix is implemented in
- # auth server.
- "exp": (issued + timedelta(minutes=5)).timestamp(),
- "nbf": int(issued.timestamp()),
- "iat": int(issued.timestamp()),
- "jti": str(uuid.uuid4())
- },
- key=jwtkey).decode("utf8"),
- "client_id": oauth2client.oauth2_clientid()
- }
+ return request_token(
+ token_uri=urljoin(oauth2client.authserver_uri(), "auth/token"),
+ user_id=session.user_details()["user_id"]
).then(
lambda token: gnlibs_jobs.initialise_job(
conn,