Fixes in sessions
This commit is contained in:
parent
6f52588498
commit
5f3e33297b
1 changed files with 79 additions and 1 deletions
|
|
@ -1,6 +1,8 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
from paramecio.citoplasma.keyutils import create_key_encrypt, create_key_encrypt_256, create_key
|
from paramecio.citoplasma.keyutils import create_key_encrypt, create_key_encrypt_256, create_key
|
||||||
|
from oslo_concurrency import lockutils
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
|
||||||
|
|
@ -228,7 +230,7 @@ else:
|
||||||
def save_session(cookie, session):
|
def save_session(cookie, session):
|
||||||
generate_session(session)
|
generate_session(session)
|
||||||
"""
|
"""
|
||||||
|
"""
|
||||||
def generate_session(session={}):
|
def generate_session(session={}):
|
||||||
|
|
||||||
#secret=URLSafeSerializer(config.key_encrypt)
|
#secret=URLSafeSerializer(config.key_encrypt)
|
||||||
|
|
@ -255,6 +257,7 @@ else:
|
||||||
|
|
||||||
return ParamecioSession(s)
|
return ParamecioSession(s)
|
||||||
|
|
||||||
|
|
||||||
cache=Cache(config.session_opts['session.data_dir'])
|
cache=Cache(config.session_opts['session.data_dir'])
|
||||||
|
|
||||||
def load_session(token):
|
def load_session(token):
|
||||||
|
|
@ -272,6 +275,81 @@ else:
|
||||||
def save_session(token, session):
|
def save_session(token, session):
|
||||||
|
|
||||||
cache[token]=json.dumps(session)
|
cache[token]=json.dumps(session)
|
||||||
|
"""
|
||||||
|
|
||||||
|
def generate_session(session={}):
|
||||||
|
|
||||||
|
#secret=URLSafeSerializer(config.key_encrypt)
|
||||||
|
|
||||||
|
#session=secret.dumps(session)
|
||||||
|
|
||||||
|
token=create_key(30).replace('/', '#')
|
||||||
|
|
||||||
|
s={'token': token}
|
||||||
|
|
||||||
|
response.set_cookie(config.cookie_name, token, path=config.session_opts['session.path'])
|
||||||
|
|
||||||
|
request.environ['session']=s
|
||||||
|
|
||||||
|
file_session=config.session_opts['session.data_dir']+'/'+token+'_session'
|
||||||
|
|
||||||
|
save_session(token, s, True)
|
||||||
|
|
||||||
|
request.environ['session']=s
|
||||||
|
|
||||||
|
return s
|
||||||
|
|
||||||
|
def regenerate_session():
|
||||||
|
|
||||||
|
token=create_key(30).replace('/', '#')
|
||||||
|
|
||||||
|
s={'token': token}
|
||||||
|
|
||||||
|
response.set_cookie(config.cookie_name, token, path=config.session_opts['session.path'])
|
||||||
|
|
||||||
|
file_session=config.session_opts['session.data_dir']+'/'+token+'_session'
|
||||||
|
|
||||||
|
save_session(token, s, True)
|
||||||
|
|
||||||
|
request.environ['session']=s
|
||||||
|
|
||||||
|
return ParamecioSession(s)
|
||||||
|
|
||||||
|
def load_session(token):
|
||||||
|
|
||||||
|
file_session=config.session_opts['session.data_dir']+'/'+token+'_session'
|
||||||
|
|
||||||
|
if os.path.isfile(file_session):
|
||||||
|
|
||||||
|
with open(file_session) as f:
|
||||||
|
|
||||||
|
try:
|
||||||
|
|
||||||
|
s=json.loads(f.read())
|
||||||
|
|
||||||
|
except:
|
||||||
|
|
||||||
|
s={'token': token}
|
||||||
|
|
||||||
|
else:
|
||||||
|
return generate_session({'token': token})
|
||||||
|
|
||||||
|
return s
|
||||||
|
|
||||||
|
@lockutils.synchronized('not_thread_safe')
|
||||||
|
def save_session(token, session, create_file=False):
|
||||||
|
|
||||||
|
file_session=config.session_opts['session.data_dir']+'/'+token+'_session'
|
||||||
|
|
||||||
|
# Check if exists lock
|
||||||
|
|
||||||
|
if os.path.isfile(file_session) or create_file:
|
||||||
|
|
||||||
|
with open(file_session, 'w') as f:
|
||||||
|
#try:
|
||||||
|
json_session=json.dumps(session)
|
||||||
|
|
||||||
|
f.write(json_session)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
region = make_region().configure(
|
region = make_region().configure(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue