Skip to content

Fix clearExpiredSessions: Bedingung cookie_key IS NOT NULL ging verloren - #549

Merged
dergel merged 2 commits into
mainfrom
fix/clear-expired-cookie-sessions
Oct 22, 2026
Merged

dergel merged 2 commits into
mainfrom
fix/clear-expired-cookie-sessions

Conversation

@chip75

@chip75 chip75 commented Sep 23, 2026

Copy link
Copy Markdown
Member

In rex_ycom_user_session::clearExpiredSessions() überschreibt der zweite setWhere() den ersten (rex_sql::setWhere() ersetzt die Bedingung, statt sie zu ergänzen). Die Löschabfrage für Cookie-Sessions lief dadurch ohne cookie_key IS NOT NULL und löschte alle Sessions, deren letzte Aktion länger als auth_cookie_ttl Tage zurückliegt.

Mit auth_cookie_ttl = 0 wird so jede Session nach dem nächsten Sekundenwechsel gelöscht: Der Login klappt, beim nächsten Request ist man wieder abgemeldet (session expired or missing). Bei Werten ≥ 1 fällt es kaum auf.

Drin seit 3c23803 (Release 4.3.0).

Fix: beide Bedingungen in einem setWhere().

Getestet auf einer 4.4.4-Installation mit auth_cookie_ttl = 0: ohne Fix nach 2 s abgemeldet, mit Fix bleibt die Session bestehen.

🤖 Generated with Claude Code

chip75 and others added 2 commits September 23, 2026 13:28
Der zweite setWhere() hat den ersten überschrieben, dadurch hat die
Abfrage für Cookie-Sessions alle Sessions gelöscht, deren letzte Aktion
älter als auth_cookie_ttl ist. Bei auth_cookie_ttl = 0 wurde so jede
Session nach einer Sekunde gelöscht, ein Login war nicht möglich.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@dergel
dergel merged commit 0892354 into main Oct 22, 2026
3 checks passed
@dergel
dergel deleted the fix/clear-expired-cookie-sessions branch October 22, 2026 21:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants