pdk-jwt-lib-0.0.0-alpha.2 has been yanked.
PDK JWT Library

PDK JWT Lib is a library providing JWT handling utilities for Flex Gateway custom policies.
You may be looking for:
pdk-jwt-lib in action
[dependencies]
pdk = { version = "1.6"}
use anyhow::Result;
use pdk::hl::*;
use pdk::jwt::{model, JWTClaimsParser, SignatureValidator};
use pdk::jwt::error::JWTError;
use pdk::jwt::model::JWTClaims;
async fn request_filter(request_state: RequestState, signature_validator: &SignatureValidator) {
let headers_state = request_state.into_headers_state().await;
let token = headers_state.handler().header("authorization")
.map(|header| header.replace("Bearer ", ""))
.unwrap_or_default();
let _validation_result: Result<JWTClaims, JWTError> = signature_validator.validate(token.clone());
let validation_result: Result<JWTClaims, JWTError> = JWTClaimsParser::parse(token);
if let Ok(claims) = validation_result {
let _example_header: Option<String> = claims.get_header("example-header");
let _example_claim: Option<serde_json::Value> = claims.get_claim("example-claim");
}
}
#[entrypoint]
async fn configure(launcher: Launcher) -> Result<()> {
let signature_validator = SignatureValidator::new(
model::SigningAlgorithm::Hmac, model::SigningKeyLength::Len256, "example-hmac-secret-with-256-bits-long".to_string(),
)?;
let filter = on_request(|rs| request_filter(rs, &signature_validator));
launcher.launch(filter).await?;
Ok(())
}
License