Skip to content

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

Open
chip75 wants to merge 1 commit into
mainfrom
fix/clear-expired-cookie-sessions
Open

chip75 wants to merge 1 commit 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

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) <noreply@anthropic.com>
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.

1 participant