https://github.com/tobymurray/hmac-predicate
Tower predicate HMAC verification of query params
https://github.com/tobymurray/hmac-predicate
Last synced: about 2 months ago
JSON representation
Tower predicate HMAC verification of query params
- Host: GitHub
- URL: https://github.com/tobymurray/hmac-predicate
- Owner: tobymurray
- Created: 2023-08-19T00:52:10.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2024-08-18T16:03:09.000Z (10 months ago)
- Last Synced: 2025-03-11T01:54:19.203Z (3 months ago)
- Language: Rust
- Size: 6.84 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Use something like:
```
use axum::error_handling::HandleErrorLayer;
use axum::Router;
use hmac_predicate::HmacQueryParamValidator;
use reqwest::StatusCode;
use tower::{BoxError, ServiceBuilder};#[tokio::main]
async fn main() {
let predicate: HmacQueryParamValidator = HmacQueryParamValidator {
key: API_SECRET.to_string(),
};let builder = ServiceBuilder::new()
.layer(HandleErrorLayer::new(handle_error))
.filter(predicate);let app = Router::new()
.route("/", get(handler))
.layer(builder);
}async fn handle_error(err: BoxError) -> (StatusCode, String) {
(
StatusCode::INTERNAL_SERVER_ERROR,
format!("Unhandled internal error: {}", err),
)
}
```