feat(security): scope dashboard OAuth session cookie to /dashboard path
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- java
- Ambito
- authentication, security
Direzione di ricerca
Start by reading AuthResource and trace how the session cookie is set and consumed by DashboardWebSocket and DashboardWebSocketConfigurator; check the auth integration tests and DashboardWebSocketTest. Verify Quarkus static resource and redirect behavior for the proposed cookie path, and decide how to scope the OAuth state cookie. Done means the login, redirect, dashboard, WebSocket, and logout flow passes with updated tests, the install flow is unaffected, and the security documentation is updated.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem Statement
Dashboard OAuth (#20 opaque sessions, #21 state validation) sets the thrillhouse_session cookie with path=/ in AuthResource (OAuth callback). That exposes the session identifier to every path on the origin — including static install assets (/install.html), health endpoints, and any future routes — even though only /dashboard/* and dashboard WebSocket/API paths consume it.
release_plan.md Step 4 notes this cookie-path scoping idea as backlog (low priority). It does not block releases but is a straightforward defense-in-depth hardening.
Proposed Solution
- Set
thrillhouse_sessioncookiepathto/dashboard(or/dashboard/— verify Quarkus static resource and redirect behavior). - Audit all consumers:
AuthResource— login callback, logout,/meDashboardWebSocket/DashboardWebSocketConfigurator— cookie extraction- Any REST resources under
/dashboardor/api/dashboard
- Ensure OAuth state cookie remains appropriately scoped (likely
/or/api/auth— document choice). - Update
DashboardWebSocketTestand auth integration tests for the new path. - Document in README security section / CHANGELOG when shipped.
Out of scope: changing session storage (#20), CSRF model (#21), or read-only API tokens (#326).
Related issues
- #20 — opaque server-side sessions (closed)
- #21 — OAuth state encoding (closed)
- #326 — read-only dashboard API token (separate auth surface)
Acceptance criteria
-
thrillhouse_sessioncookie usespath=/dashboard(or documented equivalent that limits exposure) - Login → redirect → dashboard → WebSocket → logout flow works end-to-end
- Existing session invalidation on logout unchanged
- Tests updated;
./mvnw verifypasses - No regression for install flow (
/install.html) — cookie not sent to unrelated paths
Alternatives considered
__Host-prefix cookies — stricter but requiresSecure+Path=/+ noDomain; may conflict with subpath dashboard hosting.- Separate subdomain for dashboard — larger deploy change; cookie path is sufficient for self-hosted single-origin.
Priority
Low — defense in depth; no known exploit. Schedule when touching dashboard auth or v1.0.0 hardening (#67 Helm may revisit ingress paths).
Code of Conduct
- I have searched for existing issues and this is not a duplicate.
- Lingua principale
- Java
- Stelle
- 35
- Fork
- 7
- Merge medio
- 7h 7m
- PR unite (30g)
- 225
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di devops-thiago/ThrillhouseBot
-
documentation enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
devops-thiago/ThrillhouseBot#321 ·
I maintainer di solito rispondono entro 1 giorno
-
feat(webhook): skip automatic reviews by pull request authorForse già presa @devops-thiago l’ha presa 2 giorni fa. Apertaenhancement
devops-thiago/ThrillhouseBot#1278 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement java
Difficoltà 5/5 Più di una settimana Idoneità per principianti 38/100
devops-thiago/ThrillhouseBot#1271 ·
I maintainer di solito rispondono entro 1 giorno
-
refactor(review): identify the bot's own read-back text by marker, not English wordingForse già presa @devops-thiago l’ha presa 5 giorni fa. Apertaenhancement java rework
devops-thiago/ThrillhouseBot#1260 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
feat(webhook): translate command replies, learning replies and on-request generator textForse già presa @devops-thiago l’ha presa 5 giorni fa. Apertaenhancement java
devops-thiago/ThrillhouseBot#1259 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di devops-thiago/ThrillhouseBot
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
I maintainer di solito rispondono entro 2 giorni
-
code-health feature/sync OS/Android QA/Test-Plan-Specified QA/Yes
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
brave/brave-browser#60327 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
aws/context-ontology-accelerator#325 ·
I maintainer di solito rispondono entro 1 giorno
-
The README tells to run `mvn jeo:disassemble`, which fails with `No plugin found for prefix 'jeo'`Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
objectionary/jeo-maven-plugin#1938 ·
I maintainer di solito rispondono entro 2 giorni
-
effort/l priority/p2 risk/high triage/deferred
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
iflytek/skillhub#1039 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno