summaryrefslogtreecommitdiffstats
path: root/accounts/utils/sessions.py
diff options
context:
space:
mode:
Diffstat (limited to 'accounts/utils/sessions.py')
-rw-r--r--accounts/utils/sessions.py12
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()