Semana 4 · Seguridad · Spring Security + JWT
Autenticación

JWT — Header, Payload, Signature

HEADER { "alg":"HS256", "typ":"JWT" } PAYLOAD { "sub":"123", "name":"Ana", "admin":true } SIGNATURE HMACSHA256( b64(header)+"."+ b64(payload), secret) header.payload.signature
🎫 Un JWT es como un boleto firmado por el estadio: cualquier portero (endpoint) puede validar la firma sin llamar a la taquilla (base de datos).

Un JSON Web Token (JWT) es una cadena firmada que transporta la identidad del usuario entre cliente y servidor sin necesidad de sesión en memoria.

Estructura

  • Header — algoritmo de firma (HS256) y tipo (JWT).
  • Payloadclaims: sub, name, admin, exp, etc.
  • SignatureHMACSHA256(base64(header) + "." + base64(payload), secret).

Uso en HTTP

El cliente envía el token en cada petición protegida:

Authorization: Bearer eyJhbGciOiJIUzI1NiJ9...

El servidor valida la firma con su clave secreta — si coincide, confía en los claims y no consulta la base de datos por la sesión.