basquetWi + New ticket
movilba MOVILBA-296

federated-logout nunca descifra el JWT: decode con salt '' contra un token cifrado con salt = nombre de cookie

Done normal rmresearcher-mba-l-cc

coder03, 2026-09-06, medido en DEV app_logs: los 45 federated-logout de 7 dias (08-31..09-06) loguearon 'Could not decode session token; local logout only' con error 'no matching decryption secret'. Causa: src/app/api/auth/federated-logout/route.ts llama decode({token, secret, salt: ''}); Auth.js 0.41 (next-auth 5.0.0-beta.31) deriva la clave JWE por hkdf con salt = nombre de la cookie (next-auth.session-token, jwt.js:86,122) y auth.ts no define encode/decode propios. Efecto: idToken y provider nunca se leen, el logout Keycloak nunca manda id_token_hint (MOBAAPI-632 no funciona de hecho). Fix: salt = SESSION_COOKIE. Verificacion posible aqui: el warn desaparece en el proximo logout en DEV; la parte Keycloak no se puede ejercitar (credenciales GCABA).

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Activity

  • wi-cli-venus created · 5w ago
  • wi-cli-venus note · 5w ago
    SHIPPED dev v5.4.242 (05ac45e7). salt = SESSION_COOKIE. La prueba es que el proximo federated-logout en DEV NO deje el warn 'Could not decode session token'. La parte Keycloak (id_token_hint) no se puede ejercitar desde aca.
  • wi-cli-venus note · 5w ago
    El nombre de la cookie pasa a tener un solo dueño: auth.ts exporta AUTH_SESSION_COOKIE_NAME y federated-logout lo importa. El defecto no era el salt sino que dos archivos tenian que coincidir y solo uno era autoritativo; la rotura solo emite warn. v5.4.245 / 9343b5a7. NO EJERCITADO: nadie observo un federated logout completo; la mitad de Keycloak es de GCABA. 296 = camino de decode arreglado, no MOBAAPI-632 funcionando.
  • wi-cli-venus note · 5w ago
    El nombre de la cookie pasa a tener un solo dueño: auth.ts exporta AUTH_SESSION_COOKIE_NAME y cookies.sessionToken.name lo usa; federated-logout lo importa en vez de re-escribirlo. Hallazgo de audit-mba-l-cc sobre 05ac45e7: el defecto no era el salt sino que dos archivos tenian que coincidir en un string y solo uno era autoritativo, y la rotura solo emite warn (100 dias invisible). v5.4.245 / 9343b5a7. Sin tocar a proposito: proxy.ts:89-90, api/health/route.ts:12-13, openapi/build-spec.ts:402 chequean PRESENCIA y listan las dos formas (con y sin __Secure-); un rename ahi degrada a 'no la detecto', no a un decode que falla en silencio. NO EJERCITADO: nadie observo todavia un federated logout completo de punta a punta; la mitad de Keycloak es de GCABA y no la podemos manejar. 296 = el camino de decode esta arreglado, NO 'MOBAAPI-632 funciona'.
  • coder03-mba-l-cc assigned · 2w ago
    coder04-mba-l-ca
  • coder03-mba-l-cc assigned · 1w ago
    researcher-mba-l-cc / solo
  • researcher-mba-l-cc statusChanged · 1w ago
    researcher-mba-l-cc claiming per coder03's 2026-10-08 reassignment: reproduce federated-logout JWT decrypt defect, confirm still present on current build, write exact fix spec for coder04.
  • researcher-mba-l-cc note · 1w ago
    researcher-mba-l-cc 2026-10-08T11:42:07-03:00 — already fixed, confirmed by direct code read on v5.6.186 (package.json). src/app/api/auth/federated-logout/route.ts:51-56 calls decode({token, secret, salt: SESSION_COOKIE}) where SESSION_COOKIE = AUTH_SESSION_COOKIE_NAME imported from @/lib/auth.ts:127, which is the SAME constant auth.ts:704 uses as the actual cookie name. Single source of truth, no salt='' left anywhere. git log -S confirms two commits already closed this: 9343b5a7 (single-owner cookie name) and 05ac45e7 (salt fix itself), both tagged fix(MOVILBA-296), dated 2026-09-06 per the ticket's own event history above. No code-level defect remains to reproduce or spec a fix for — coder04 has nothing to build. The DEV app_logs live-verification ('warn disappears on next logout') needs log/DB access I don't have; that's a db-lane check if Elazar wants it confirmed empirically, not a coder04 fix task. Reassignment to me was stale.
  • researcher-mba-l-cc completed · 1w ago
    researcher-mba-l-cc already-fixed, confirmed by code read, no further work needed
task
5w ago by wi-cli-venus
1w ago
2026-10-08 14:42