Exemple #1
0
def default_setup(config):
    from pyramid.session import UnencryptedCookieSessionFactoryConfig

    log.info('Using an unencrypted cookie-based session. This can be '
             'changed by pointing the "velruse.setup" setting at a different '
             'function for configuring the session factory.')

    settings = config.registry.settings
    secret = settings.get('session.secret')
    cookie_name = settings.get('session.cookie_name', 'velruse.session')
    if secret is None:
        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))
        log.info('autogenerated session secret: %s', secret)
    factory = UnencryptedCookieSessionFactoryConfig(secret,
                                                    cookie_name=cookie_name)
    config.set_session_factory(factory)

    # setup backing storage
    storage_string = settings.get('store', 'memory')
    settings['store.store'] = storage_string
    store = create_store_from_settings(settings, prefix='store.')
    config.register_velruse_store(store)
Exemple #2
0
 def _makeOne(self):
     from anykeystore import create_store_from_settings
     try:
         store = create_store_from_settings(config, prefix=self.key + '.')
     except ImportError as e:
         raise unittest.SkipTest(str(e))
     return store
Exemple #3
0
    def test_create_store_from_settings_with_prefix(self):
        from anykeystore import create_store_from_settings
        store = create_store_from_settings(
            {'any.store': 'memory'}, prefix='any.')

        from anykeystore.backends.memory import MemoryStore
        self.assertTrue(isinstance(store, MemoryStore))
Exemple #4
0
def default_setup(config):
    from pyramid.session import UnencryptedCookieSessionFactoryConfig

    log.info('Using an unencrypted cookie-based session. This can be '
             'changed by pointing the "velruse.setup" setting at a different '
             'function for configuring the session factory.')

    settings = config.registry.settings
    secret = settings.get('session.secret')
    cookie_name = settings.get('session.cookie_name', 'velruse.session')
    if secret is None:
        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))
        log.info('autogenerated session secret: %s', secret)
    factory = UnencryptedCookieSessionFactoryConfig(
        secret, cookie_name=cookie_name)
    config.set_session_factory(factory)

    # setup backing storage
    storage_string = settings.get('store', 'memory')
    settings['store.store'] = storage_string
    store = create_store_from_settings('store.')
    config.register_velruse_store(store)
Exemple #5
0
    def test_create_store_from_settings_with_prefix(self):
        from anykeystore import create_store_from_settings
        store = create_store_from_settings({'any.store': 'memory'},
                                           prefix='any.')

        from anykeystore.backends.memory import MemoryStore
        self.assertTrue(isinstance(store, MemoryStore))
Exemple #6
0
 def _makeOne(self):
     from anykeystore import create_store_from_settings
     try:
         store = create_store_from_settings(config, prefix=self.key + '.')
     except ImportError as e:
         raise unittest.SkipTest(str(e))
     return store
Exemple #7
0
def default_setup(config):
    """Configure Velruse's session factory and backend storage.

    The default setup uses Pyramid's
    ``UnencryptedCookieSessionFactoryConfig`` for storing session data.

    Relevant settings:

    ``session.secret`` controls the secret used when signing the session
    cookies and will be randomly generated if unspecified.

    ``session.cookie_name`` is the name of the cookie stored on a client's
    browser and will default to 'velruse.session'.

    ``store.*`` settings are used by the `anykeystore` library to construct
    a storage backend for user credentials. If no storage settings are
    specified then an in-memory storage backend will be used.

    """
    try:
        from pyramid.session import SignedCookieSessionFactory as SessionFactory
    except ImportError:
        from pyramid.session import UnencryptedCookieSessionFactoryConfig as SessionFactory

    log.info('Using an unencrypted cookie-based session. This can be '
             'changed by pointing the "velruse.setup" setting at a different '
             'function for configuring the session factory.')

    settings = config.registry.settings
    secret = settings.get('session.secret')
    cookie_name = settings.get('session.cookie_name', 'velruse.session')
    if secret is None:
        log.info('Configuring unencrypted cookie-based session with a '
                 'random secret which will invalidate old cookies when '
                 'restarting the app.')
        if secrets is not None:
            secret = secrets.token_urlsafe(32)
        elif PYTHON_2:
            secret = ''.join('%02x' % ord(x) for x in os.urandom(16))
        else:
            secret = ''.join('%02x' % x for x in os.urandom(16))
        log.info('autogenerated session secret: %s', secret)
    factory = SessionFactory(secret, cookie_name=cookie_name)
    config.set_session_factory(factory)

    # setup backing storage
    storage_string = settings.get('store', 'memory')
    settings['store.store'] = storage_string
    store = create_store_from_settings(settings, prefix='store.')
    config.register_velruse_store(store)
Exemple #8
0
def default_setup(config):
    """Configure Velruse's session factory and backend storage.

    The default setup uses Pyramid's
    ``UnencryptedCookieSessionFactoryConfig`` for storing session data.

    Relevant settings:

    ``session.secret`` controls the secret used when signing the session
    cookies and will be randomly generated if unspecified.

    ``session.cookie_name`` is the name of the cookie stored on a client's
    browser and will default to 'velruse.session'.

    ``store.*`` settings are used by the `anykeystore` library to construct
    a storage backend for user credentials. If no storage settings are
    specified then an in-memory storage backend will be used.

    """
    from pyramid.session import UnencryptedCookieSessionFactoryConfig

    log.info('Using an unencrypted cookie-based session. This can be '
             'changed by pointing the "velruse.setup" setting at a different '
             'function for configuring the session factory.')

    settings = config.registry.settings
    secret = settings.get('session.secret')
    cookie_name = settings.get('session.cookie_name', 'velruse.session')
    if secret is None:
        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))
        log.info('autogenerated session secret: %s', secret)
    factory = UnencryptedCookieSessionFactoryConfig(
        secret, cookie_name=cookie_name)
    config.set_session_factory(factory)

    # setup backing storage
    storage_string = settings.get('store', 'memory')
    settings['store.store'] = storage_string
    store = create_store_from_settings(settings, prefix='store.')
    config.register_velruse_store(store)
Exemple #9
0
    def test_create_store_from_settings(self):
        from anykeystore import create_store_from_settings
        store = create_store_from_settings({'store': 'memory'})

        from anykeystore.backends.memory import MemoryStore
        self.assertTrue(isinstance(store, MemoryStore))
Exemple #10
0
    def test_create_store_from_settings(self):
        from anykeystore import create_store_from_settings
        store = create_store_from_settings({'store': 'memory'})

        from anykeystore.backends.memory import MemoryStore
        self.assertTrue(isinstance(store, MemoryStore))