Remove beaker dependency, switch to Pyramid SignedCookieSessionFactory

Replace server-side session backends (redis, file, database, memcached)
with client-side signed cookie sessions. Users will need to
re-authenticate after deploy.

- Rewrite rc_beaker.py to use pyramid.session.SignedCookieSessionFactory
- Gut user_sessions.py to cookie-only stub
- Drop beaker.container from memory_lru_dict.py (pure repoze.lru)
- Migrate ini configs from beaker.session.* to session.* namespace
- Remove beaker==1.13.0 from requirements.txt
- Remove beaker.backends entry points from pyproject.toml
- Preserve backward-compat fallbacks for encryption key resolution
This commit is contained in:
russell@unturf.com 2026-02-19 15:26:24 -05:00
parent ceb23e4d47
commit 4f73837822
20 changed files with 125 additions and 574 deletions

View file

@ -6,7 +6,7 @@
<%
elems = [
(_('Session type'), c.session_model.SESSION_TYPE, ''),
(_('Session expiration period'), '{} seconds'.format(c.session_conf.get('beaker.session.timeout', 0)), ''),
(_('Session expiration period'), '{} seconds'.format(c.session_conf.get('session.timeout', c.session_conf.get('beaker.session.timeout', 0))), ''),
(_('Total sessions'), c.session_count, ''),
(_('Expired sessions ({} days)').format(c.cleanup_older_days ), c.session_expired_count, ''),

View file

@ -60,7 +60,7 @@
%endif
${h.checkbox('remember', value=True, checked=defaults.get('remember'))}
<% timeout = request.registry.settings.get('beaker.session.timeout', '0') %>
<% timeout = request.registry.settings.get('session.timeout', request.registry.settings.get('beaker.session.timeout', '0')) %>
% if timeout == '0':
<% remember_label = _('Remember my indefinitely') %>
% else: