update
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
from http.cookies import SimpleCookie
|
||||
|
||||
from authlib.oauth2.rfc6749 import errors
|
||||
from authlib.oauth2.rfc6749.util import scope_to_list
|
||||
from aws_lambda_powertools import Logger
|
||||
@@ -15,6 +13,7 @@ from layercake.dynamodb import DynamoDBPersistenceLayer, KeyPair, SortKey
|
||||
from boto3clients import dynamodb_client
|
||||
from config import OAUTH2_TABLE
|
||||
from oauth2 import server
|
||||
from util import parse_cookies
|
||||
|
||||
router = Router()
|
||||
logger = Logger(__name__)
|
||||
@@ -24,7 +23,7 @@ dyn = DynamoDBPersistenceLayer(OAUTH2_TABLE, dynamodb_client)
|
||||
@router.get('/authorize')
|
||||
def authorize():
|
||||
current_event = router.current_event
|
||||
cookies = _parse_cookies(current_event.get('cookies', []))
|
||||
cookies = parse_cookies(current_event.get('cookies', []))
|
||||
session = cookies.get('__session')
|
||||
|
||||
if not session:
|
||||
@@ -80,18 +79,4 @@ def _user_scopes(sub: str) -> set:
|
||||
)
|
||||
|
||||
|
||||
def _parse_cookies(cookies: list[str] | None) -> dict[str, str]:
|
||||
parsed_cookies = {}
|
||||
|
||||
if not cookies:
|
||||
return parsed_cookies
|
||||
|
||||
for s in cookies:
|
||||
c = SimpleCookie()
|
||||
c.load(s)
|
||||
parsed_cookies.update({k: morsel.value for k, morsel in c.items()})
|
||||
|
||||
return parsed_cookies
|
||||
|
||||
|
||||
class InvalidSession(BadRequestError): ...
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import os
|
||||
from http.cookies import SimpleCookie
|
||||
|
||||
ROOT = os.path.abspath(os.path.dirname(__file__))
|
||||
|
||||
@@ -10,3 +11,17 @@ def get_file_path(name: str) -> str:
|
||||
def read_file_path(name: str) -> str:
|
||||
with open(get_file_path(name)) as f:
|
||||
return f.read()
|
||||
|
||||
|
||||
def parse_cookies(cookies: list[str] | None) -> dict[str, str]:
|
||||
parsed_cookies = {}
|
||||
|
||||
if not cookies:
|
||||
return parsed_cookies
|
||||
|
||||
for s in cookies:
|
||||
c = SimpleCookie()
|
||||
c.load(s)
|
||||
parsed_cookies.update({k: morsel.value for k, morsel in c.items()})
|
||||
|
||||
return parsed_cookies
|
||||
|
||||
Reference in New Issue
Block a user