O Spring Security é uma cadeia de filtros de servlet que intercepta toda requisição antes de ela chegar ao seu controller. A autenticação responde "quem é você?"; a autorização responde "você tem permissão para fazer isso?". Para APIs REST stateless, a abordagem comum é o JWT (JSON Web Token) em vez de sessões no lado do servidor.
O fluxo do JWT
POST /login (user+pass) ──▶ AuthController verifies ──▶ signs JWT ──▶ returns token
│
Client stores it, then sends on every call: ▼
GET /api/orders Authorization: Bearer <jwt> ──▶ JwtFilter validates ──▶ controller
