fix(api): fixed websocket /sio/events namespace with jwt
parent
e0eee87370
commit
267d1e26a1
|
@ -1,8 +1,9 @@
|
|||
import os
|
||||
|
||||
from admin import app
|
||||
from flask_login import LoginManager, UserMixin
|
||||
|
||||
from admin import app
|
||||
|
||||
""" OIDC TESTS """
|
||||
# from flask_oidc import OpenIDConnect
|
||||
# app.config.update({
|
||||
|
|
|
@ -9,10 +9,11 @@ import os
|
|||
import traceback
|
||||
from functools import wraps
|
||||
|
||||
from admin import app
|
||||
from flask import request
|
||||
from jose import jwt
|
||||
|
||||
from admin import app
|
||||
|
||||
from ..lib.api_exceptions import Error
|
||||
|
||||
|
||||
|
@ -55,12 +56,15 @@ def get_token_auth_header():
|
|||
|
||||
|
||||
def get_token_payload(token):
|
||||
log.warning("The received token in get_token_payload is: " + str(token))
|
||||
try:
|
||||
claims = jwt.get_unverified_claims(token)
|
||||
secret = app.config["API_SECRET"]
|
||||
|
||||
except:
|
||||
log.warning("JWT token with invalid parameters. Can not parse it.")
|
||||
log.warning(
|
||||
"JWT token with invalid parameters. Can not parse it.: " + str(token)
|
||||
)
|
||||
raise Error(
|
||||
"unauthorized",
|
||||
"Unable to parse authentication parameters token.",
|
||||
|
@ -75,7 +79,7 @@ def get_token_payload(token):
|
|||
options=dict(verify_aud=False, verify_sub=False, verify_exp=True),
|
||||
)
|
||||
except jwt.ExpiredSignatureError:
|
||||
log.info("Token expired")
|
||||
log.warning("Token expired")
|
||||
raise Error("unauthorized", "Token is expired", traceback.format_stack())
|
||||
|
||||
except jwt.JWTClaimsError:
|
||||
|
|
|
@ -6,12 +6,19 @@ from pprint import pprint
|
|||
from time import sleep
|
||||
|
||||
import diceware
|
||||
|
||||
from admin import app
|
||||
|
||||
from .avatars import Avatars
|
||||
from .helpers import (filter_roles_list, filter_roles_listofdicts,
|
||||
get_gids_from_kgroup_ids, get_group_from_group_id,
|
||||
gid2kpath, kpath2gid, system_username)
|
||||
from .helpers import (
|
||||
filter_roles_list,
|
||||
filter_roles_listofdicts,
|
||||
get_gids_from_kgroup_ids,
|
||||
get_group_from_group_id,
|
||||
gid2kpath,
|
||||
kpath2gid,
|
||||
system_username,
|
||||
)
|
||||
from .keycloak_client import KeycloakClient
|
||||
from .moodle import Moodle
|
||||
from .nextcloud import Nextcloud
|
||||
|
@ -26,9 +33,14 @@ import secrets
|
|||
from .api_exceptions import Error
|
||||
from .events import Events, sio_event_send
|
||||
from .exceptions import UserExists, UserNotFound
|
||||
from .helpers import (count_repeated, get_group_with_childs,
|
||||
get_kid_from_kpath, kpath2gids, kpath2kpaths,
|
||||
rand_password)
|
||||
from .helpers import (
|
||||
count_repeated,
|
||||
get_group_with_childs,
|
||||
get_kid_from_kpath,
|
||||
kpath2gids,
|
||||
kpath2kpaths,
|
||||
rand_password,
|
||||
)
|
||||
|
||||
MANAGER = os.environ["CUSTOM_ROLE_MANAGER"]
|
||||
TEACHER = os.environ["CUSTOM_ROLE_TEACHER"]
|
||||
|
|
|
@ -4,9 +4,10 @@ import logging as log
|
|||
import os
|
||||
import traceback
|
||||
|
||||
from admin import app
|
||||
from flask import jsonify, request
|
||||
|
||||
from admin import app
|
||||
|
||||
content_type = {"Content-Type": "application/json"}
|
||||
ex = {
|
||||
"bad_request": {
|
||||
|
|
|
@ -2,12 +2,13 @@ import logging as log
|
|||
import os
|
||||
from pprint import pprint
|
||||
|
||||
from admin import app
|
||||
from minio import Minio
|
||||
from minio.commonconfig import REPLACE, CopySource
|
||||
from minio.deleteobjects import DeleteObject
|
||||
from requests import get, post
|
||||
|
||||
from admin import app
|
||||
|
||||
|
||||
class Avatars:
|
||||
def __init__(self):
|
||||
|
|
|
@ -7,10 +7,11 @@ from pprint import pprint
|
|||
|
||||
import requests
|
||||
import yaml
|
||||
from admin import app
|
||||
from PIL import Image
|
||||
from schema import And, Optional, Schema, SchemaError, Use
|
||||
|
||||
from admin import app
|
||||
|
||||
|
||||
class Dashboard:
|
||||
def __init__(
|
||||
|
|
|
@ -9,11 +9,19 @@ import traceback
|
|||
from time import sleep
|
||||
from uuid import uuid4
|
||||
|
||||
from flask import Response, jsonify, redirect, render_template, request, url_for
|
||||
from flask_socketio import (
|
||||
SocketIO,
|
||||
close_room,
|
||||
disconnect,
|
||||
emit,
|
||||
join_room,
|
||||
leave_room,
|
||||
rooms,
|
||||
send,
|
||||
)
|
||||
|
||||
from admin import app
|
||||
from flask import (Response, jsonify, redirect, render_template, request,
|
||||
url_for)
|
||||
from flask_socketio import (SocketIO, close_room, disconnect, emit, join_room,
|
||||
leave_room, rooms, send)
|
||||
|
||||
|
||||
def sio_event_send(event, data):
|
||||
|
|
|
@ -5,7 +5,6 @@ import traceback
|
|||
from admin import app
|
||||
from pprint import pprint
|
||||
|
||||
from admin import app
|
||||
from minio import Minio
|
||||
from minio.commonconfig import REPLACE, CopySource
|
||||
from minio.deleteobjects import DeleteObject
|
||||
|
|
|
@ -7,9 +7,10 @@ import sys
|
|||
import traceback
|
||||
|
||||
import yaml
|
||||
from admin import app
|
||||
from cerberus import Validator, rules_set_registry, schema_registry
|
||||
|
||||
from admin import app
|
||||
|
||||
|
||||
class AdminValidator(Validator):
|
||||
None
|
||||
|
|
|
@ -2,9 +2,10 @@ import logging as log
|
|||
import traceback
|
||||
from pprint import pprint
|
||||
|
||||
from admin import app
|
||||
from requests import get, post
|
||||
|
||||
from admin import app
|
||||
|
||||
from .exceptions import UserExists, UserNotFound
|
||||
from .postgres import Postgres
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ import traceback
|
|||
import urllib
|
||||
|
||||
import requests
|
||||
|
||||
# from ..lib.log import *
|
||||
from admin import app
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import json
|
|||
import logging as log
|
||||
import os
|
||||
import random
|
||||
|
||||
# from .keycloak import Keycloak
|
||||
# from .moodle import Moodle
|
||||
import string
|
||||
|
@ -13,6 +14,7 @@ from datetime import datetime, timedelta
|
|||
|
||||
import psycopg2
|
||||
import yaml
|
||||
|
||||
from admin import app
|
||||
|
||||
from .postgres import Postgres
|
||||
|
|
|
@ -8,9 +8,10 @@ import sys
|
|||
import time
|
||||
import traceback
|
||||
|
||||
from admin import app
|
||||
from flask import request
|
||||
|
||||
from admin import app
|
||||
|
||||
from ..lib.api_exceptions import Error
|
||||
from .decorators import has_token
|
||||
|
||||
|
|
|
@ -6,17 +6,18 @@ import logging as log
|
|||
import os
|
||||
import re
|
||||
import sys
|
||||
|
||||
# import Queue
|
||||
import threading
|
||||
import time
|
||||
import traceback
|
||||
from uuid import uuid4
|
||||
|
||||
from admin import app
|
||||
from flask import (Response, jsonify, redirect, render_template, request,
|
||||
url_for)
|
||||
from flask import Response, jsonify, redirect, render_template, request, url_for
|
||||
from flask_login import current_user, login_required
|
||||
|
||||
from admin import app
|
||||
|
||||
from ..lib.helpers import system_group
|
||||
from .decorators import login_or_token
|
||||
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
import os
|
||||
|
||||
from admin import app
|
||||
from flask import flash, redirect, render_template, request, url_for
|
||||
from flask_login import current_user, login_required, login_user, logout_user
|
||||
|
||||
from admin import app
|
||||
|
||||
from ..auth.authentication import *
|
||||
|
||||
|
||||
|
|
|
@ -11,11 +11,19 @@ from pprint import pprint
|
|||
from uuid import uuid4
|
||||
|
||||
import requests
|
||||
from admin import app
|
||||
from flask import (Response, jsonify, redirect, render_template, request,
|
||||
send_file, url_for)
|
||||
from flask import (
|
||||
Response,
|
||||
jsonify,
|
||||
redirect,
|
||||
render_template,
|
||||
request,
|
||||
send_file,
|
||||
url_for,
|
||||
)
|
||||
from flask_login import login_required
|
||||
|
||||
from admin import app
|
||||
|
||||
from ..lib.avatars import Avatars
|
||||
from .decorators import is_admin
|
||||
|
||||
|
|
|
@ -8,9 +8,10 @@ import sys
|
|||
import time
|
||||
import traceback
|
||||
|
||||
from admin import app
|
||||
from flask import request
|
||||
|
||||
from admin import app
|
||||
|
||||
from .decorators import is_internal
|
||||
|
||||
|
||||
|
|
|
@ -6,7 +6,6 @@ monkey_patch()
|
|||
|
||||
import json
|
||||
|
||||
<<<<<<< HEAD
|
||||
from flask_login import login_required
|
||||
from flask_socketio import (
|
||||
SocketIO,
|
||||
|
@ -19,14 +18,10 @@ from flask_socketio import (
|
|||
send,
|
||||
)
|
||||
|
||||
=======
|
||||
>>>>>>> fix(admin): applied jwt token verification at ws and black/isort
|
||||
from admin import app
|
||||
from admin.auth.tokens import get_token_payload
|
||||
from admin.lib.api_exceptions import Error
|
||||
from flask import request
|
||||
from flask_socketio import (SocketIO, close_room, disconnect, emit, join_room,
|
||||
leave_room, rooms, send)
|
||||
|
||||
app.socketio = SocketIO(app)
|
||||
|
||||
|
|
Loading…
Reference in New Issue