Spring Security es una cadena de filtros de servlet que intercepta cada petición antes de que llegue a tu controlador. La autenticación responde a "¿quién eres?"; la autorización responde a "¿tienes permiso para hacer esto?". Para APIs REST stateless, el enfoque habitual es JWT (JSON Web Token) en lugar de sesiones del lado servidor.
El flujo JWT
POST /login (user+pass) ──▶ AuthController verifica ──▶ firma el JWT ──▶ devuelve el token
│
El cliente lo guarda y luego lo envía en cada llamada: ▼
GET /api/orders Authorization: Bearer <jwt> ──▶ JwtFilter valida ──▶ controlador
