diff options
Diffstat (limited to 'accounts/utils/sessions.py')
-rw-r--r-- | accounts/utils/sessions.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/accounts/utils/sessions.py b/accounts/utils/sessions.py index 5d01b5d..e156f0c 100644 --- a/accounts/utils/sessions.py +++ b/accounts/utils/sessions.py @@ -3,9 +3,12 @@ from Crypto import Random from Crypto.Cipher import AES -from flask import current_app +from flask import Flask from flask.sessions import TaggedJSONSerializer, SecureCookieSessionInterface from itsdangerous import BadPayload +from accounts.app import accounts_app + +from typing import cast def _pad(value, block_size): @@ -25,7 +28,7 @@ class EncryptedSerializer(TaggedJSONSerializer): self.block_size = AES.block_size def _cipher(self, iv): - key = current_app.config['SESSION_ENCRYPTION_KEY'] + key = accounts_app.config['SESSION_ENCRYPTION_KEY'] assert len(key) == 32 return AES.new(key, AES.MODE_CBC, iv) @@ -53,11 +56,12 @@ class EncryptedSerializer(TaggedJSONSerializer): class EncryptedSessionInterface(SecureCookieSessionInterface): serializer = EncryptedSerializer() - def open_session(self, app, request): + def open_session(self, app: Flask, request): session = None try: parent = super(EncryptedSessionInterface, self) - session = parent.open_session(app, request) + session = cast(EncryptedSessionInterface, parent) \ + .open_session(app, request) except BadPayload: session = self.session_class() |