A middleware for Actix Web that handles authentication with a JWT emitted by Keycloak.
- Actix Web middleware
- deny HTTP requests that do not provide a valid JWT (or choose to allow them and handle the authentication state from a following middleware)
- require one or several Keycloak realm or client roles to be included in the JWT
- error HTTP responses sent from the middleware can have generic bodies as well as detailed error reasons
- access JWT claims from handlers (for example: get the ID of the authenticated user)
- parse custom JWT claims (using Serde)
- access parsed roles from handlers (every Keycloak role contained in the JWT)
- compatible with paperclip using the
paperclip_compat
feature - store auth status in request-local data instead of returning a HTTP response (so that the next middleware/handler can try another auth mechanism, for example)
MIT License Copyright (c) 2020 David Sferruzza