Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Use secrets builtin module if available when autogenerating session…
… secret.
  • Loading branch information
Preston-Landers committed Jul 23, 2017
commit 8debaa57d789d4754bc010498f55f45b2d4e2fe5
9 changes: 8 additions & 1 deletion velruse/app/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
from velruse.app.utils import generate_token
from velruse.app.utils import redirect_form

try:
import secrets
except ImportError:
secrets = None

log = __import__('logging').getLogger(__name__)

Expand Down Expand Up @@ -86,7 +90,10 @@ def default_setup(config):
log.warn('Configuring unencrypted cookie-based session with a '
'random secret which will invalidate old cookies when '
'restarting the app.')
secret = ''.join('%02x' % ord(x) for x in os.urandom(16))
if secrets is not None:
secret = secrets.token_urlsafe(32)
else:
secret = ''.join('%02x' % ord(x) for x in os.urandom(16))
log.info('autogenerated session secret: %s', secret)
factory = UnencryptedCookieSessionFactoryConfig(
secret, cookie_name=cookie_name)
Expand Down