##// END OF EJS Templates
persist notebook server cookie secret in security dir...
MinRK -
Show More
@@ -6,6 +6,7 b''
6
6
7 from __future__ import print_function
7 from __future__ import print_function
8
8
9 import base64
9 import errno
10 import errno
10 import io
11 import io
11 import json
12 import json
@@ -357,6 +358,14 b' class NotebookApp(BaseIPythonApplication):'
357 help="""The full path to a private key file for usage with SSL/TLS."""
358 help="""The full path to a private key file for usage with SSL/TLS."""
358 )
359 )
359
360
361 cookie_secret_file = Unicode(config=True,
362 help="""The file where the cookie secret is stored."""
363 )
364 def _cookie_secret_file_default(self):
365 if self.profile_dir is None:
366 return ''
367 return os.path.join(self.profile_dir.security_dir, 'notebook_cookie_secret')
368
360 cookie_secret = Bytes(b'', config=True,
369 cookie_secret = Bytes(b'', config=True,
361 help="""The random bytes used to secure cookies.
370 help="""The random bytes used to secure cookies.
362 By default this is a new random number every time you start the Notebook.
371 By default this is a new random number every time you start the Notebook.
@@ -367,7 +376,26 b' class NotebookApp(BaseIPythonApplication):'
367 """
376 """
368 )
377 )
369 def _cookie_secret_default(self):
378 def _cookie_secret_default(self):
370 return os.urandom(1024)
379 if os.path.exists(self.cookie_secret_file):
380 with io.open(self.cookie_secret_file, 'rb') as f:
381 return f.read()
382 else:
383 secret = base64.encodestring(os.urandom(1024))
384 self._write_cookie_secret_file(secret)
385 return secret
386
387 def _write_cookie_secret_file(self, secret):
388 """write my secret to my secret_file"""
389 self.log.info("Writing notebook server cookie secret to %s", self.cookie_secret_file)
390 with io.open(self.cookie_secret_file, 'wb') as f:
391 f.write(secret)
392 try:
393 os.chmod(self.cookie_secret_file, 0o600)
394 except OSError:
395 self.log.warn(
396 "Could not set permissions on %s",
397 self.cookie_secret_file
398 )
371
399
372 password = Unicode(u'', config=True,
400 password = Unicode(u'', config=True,
373 help="""Hashed password to use for web authentication.
401 help="""Hashed password to use for web authentication.
General Comments 0
You need to be logged in to leave comments. Login now