Rust Axum Middleware - Extract User Info from Header
Custom extractor for Rust Axum to extract the request id from an HTTP header X-Endpoint-API-UserInfo.
Works ONLY with Rust Axum.
Usage
use ;
use ExtractUserInfo;
async
let app = new.route;
If the extracted value is missing or is not a valid base 64 encoded JSON, it returns a 400 Bad Request with this message :
Invalid X-Endpoint-API-UserInfo : Not found: it's a requirement error ;Invalid X-Endpoint-API-UserInfo : Not a valid base 64: it's a decoding error ;Invalid X-Endpoint-API-UserInfo : Not a valid JSON: it's a parsing error.
Samples
Extract user info
curl -H "X-Endpoint-API-UserInfo: eyJpc3MiOiJteS1pc3N1ZXIiLCJzdWIiOiJteS1zdWJqZWN0IiwiYXVkIjoibXktYXVkaWVuY2UiLCJuYW1lIjoibXktbmFtZSIsImlhdCI6MTUxNjIzOTAyMiwiZXhwIjoxNTE2MjM5MDIyLCJuYmYiOjE1MTYyMzkwMjIsImp0aSI6Im15LXVuaXF1ZS1pZCJ9" http://api.nebeto.xyz/foo
curl -H "x-endpoint-api-userinfo: eyJpc3MiOiJteS1pc3N1ZXIiLCJzdWIiOiJteS1zdWJqZWN0IiwiYXVkIjoibXktYXVkaWVuY2UiLCJuYW1lIjoibXktbmFtZSIsImlhdCI6MTUxNjIzOTAyMiwiZXhwIjoxNTE2MjM5MDIyLCJuYmYiOjE1MTYyMzkwMjIsImp0aSI6Im15LXVuaXF1ZS1pZCJ9" http://api.nebeto.xyz/foo
curl -H "X-endPoint-Api-UserInfo: eyJpc3MiOiJteS1pc3N1ZXIiLCJzdWIiOiJteS1zdWJqZWN0IiwiYXVkIjoibXktYXVkaWVuY2UiLCJuYW1lIjoibXktbmFtZSIsImlhdCI6MTUxNjIzOTAyMiwiZXhwIjoxNTE2MjM5MDIyLCJuYmYiOjE1MTYyMzkwMjIsImp0aSI6Im15LXVuaXF1ZS1pZCJ9" http://api.nebeto.xyz/foo
Where eyJpc3MiOiJteS1pc3N1ZXIiLCJzdWIiOiJteS1zdWJqZWN0IiwiYXVkIjoibXktYXVkaWVuY2UiLCJuYW1lIjoibXktbmFtZSIsImlhdCI6MTUxNjIzOTAyMiwiZXhwIjoxNTE2MjM5MDIyLCJuYmYiOjE1MTYyMzkwMjIsImp0aSI6Im15LXVuaXF1ZS1pZCJ9 is a base 64 encoded JSON :
Will give :
user_info // "my-issuer"
user_info // "my-subject"
user_info // "my-audience"
user_info // "my-name"
user_info // 1516239022
user_info // 1516239022
user_info // 1516239022
user_info // "my-unique-id"
Contact
For any question or feature suggestion, you can take a look and open, if necessary, a new discussion.
For any bug, you can take a look to our active issues and open, if necessary, a new issue.