This commit is contained in:
2025-11-17 14:37:50 -03:00
parent d2abaec021
commit 7f41704d90
51 changed files with 733 additions and 495 deletions

View File

@@ -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): ...

View File

@@ -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