martinrusev / django-redis-sessions

Session backend for Django that stores sessions in a Redis database
BSD 3-Clause "New" or "Revised" License
494 stars 106 forks source link

Redis Pool is broken #51

Open PhysTom88 opened 6 years ago

PhysTom88 commented 6 years ago

In session.py in the setting of the session.SESSION_REDIS_[VAR] varialbes after the check for if the session pool setting has been set does not work.

Currently:

if settings.SESSION_REDIS_POOL is not None:
    server_key, server = self.get_server(session_key, settings.SESSION_REDIS_POOL)
    self.connection_key = str(server_key)
    settings.SESSION_REDIS_HOST = getattr(server, 'host', 'localhost')
    settings.SESSION_REDIS_PORT = getattr(server, 'port', 6379)
    settings.SESSION_REDIS_DB = getattr(server, 'db', 0)
    settings.SESSION_REDIS_PASSWORD = getattr(server, 'password', None)
    settings.SESSION_REDIS_URL = getattr(server, 'url', None)
    settings.SESSION_REDIS_UNIX_DOMAIN_SOCKET_PATH = getattr(server,'unix_domain_socket_path', None)

...

Should be:


if settings.SESSION_REDIS_POOL is not None:
    server_key, server = self.get_server(
        session_key, settings.SESSION_REDIS_POOL)
    self.connection_key = str(server_key)
    settings.SESSION_REDIS_HOST = server.get('host', 'localhost')
    settings.SESSION_REDIS_PORT = server.get('port', 6379)
    settings.SESSION_REDIS_DB = server.get('db', 0)
    settings.SESSION_REDIS_PASSWORD = server.get('password', None)
    settings.SESSION_REDIS_URL = server.get('url', None)
    settings.SESSION_REDIS_UNIX_DOMAIN_SOCKET_PATH = server.get(
        'unix_domain_socket_path', None)```
Allan-Nava commented 2 years ago

In session.py in the setting of the session.SESSION_REDIS_[VAR] varialbes after the check for if the session pool setting has been set does not work.

Currently:

if settings.SESSION_REDIS_POOL is not None:
    server_key, server = self.get_server(session_key, settings.SESSION_REDIS_POOL)
    self.connection_key = str(server_key)
    settings.SESSION_REDIS_HOST = getattr(server, 'host', 'localhost')
    settings.SESSION_REDIS_PORT = getattr(server, 'port', 6379)
    settings.SESSION_REDIS_DB = getattr(server, 'db', 0)
    settings.SESSION_REDIS_PASSWORD = getattr(server, 'password', None)
    settings.SESSION_REDIS_URL = getattr(server, 'url', None)
    settings.SESSION_REDIS_UNIX_DOMAIN_SOCKET_PATH = getattr(server,'unix_domain_socket_path', None)

...

Should be:

if settings.SESSION_REDIS_POOL is not None:
    server_key, server = self.get_server(
        session_key, settings.SESSION_REDIS_POOL)
    self.connection_key = str(server_key)
    settings.SESSION_REDIS_HOST = server.get('host', 'localhost')
    settings.SESSION_REDIS_PORT = server.get('port', 6379)
    settings.SESSION_REDIS_DB = server.get('db', 0)
    settings.SESSION_REDIS_PASSWORD = server.get('password', None)
    settings.SESSION_REDIS_URL = server.get('url', None)
    settings.SESSION_REDIS_UNIX_DOMAIN_SOCKET_PATH = server.get(
        'unix_domain_socket_path', None)```

ANy newsss?