- Synchronizer token stored in session; GET /auth/csrf to obtain it
- csrfProtection middleware requires X-CSRF-Token on non-safe methods
- customFetch injects the header via setCsrfTokenGetter
- toolrate boot loads token; reload after local login (session regenerate)
- OpenAPI GET /auth/csrf + CsrfToken schema, orval regenerated
- Vite-Proxy für /api/* zum Express-Backend (localhost:8080)
- credentials: 'include' in customFetch für Cross-Origin-Cookie-Support
- Behebt: Login-Response-Set-Cookie wurde vom Browser ignoriert