camel-component-http 0.25.1

HTTP client component for rust-camel
Documentation
use std::fs;
use tempfile::TempDir;
use tower::ServiceExt;
use tower_http::services::ServeDir;

#[tokio::test]
async fn servedir_rejects_percent_encoded_traversal() {
    let dir = TempDir::new().unwrap();
    fs::write(dir.path().join("ok.txt"), b"x").unwrap();
    let service = ServeDir::new(dir.path());
    for vector in &["/../", "/%2e%2e/", "/%2e%2e%2f"] {
        let req = http::Request::builder()
            .uri(*vector)
            .body(axum::body::Body::empty())
            .unwrap();
        let resp = service.clone().oneshot(req).await.unwrap();
        assert_ne!(
            resp.status(),
            axum::http::StatusCode::OK,
            "traversal succeeded for {vector}"
        );
    }
}