- main
- manifest
- deps
- main
- Install
- Run
use fastly::{Error, Request, Response};
use std::collections::HashMap;
#[fastly::main]
fn main(mut req: Request) -> Result<Response, Error> {
if let Some(cookie) = req.get_header("Cookie"){
println!("Original Cookie header: {}", cookie.to_str().unwrap());
let mut map = HashMap::new();
for item in cookie.to_str().unwrap().split("; ") {
let parts: Vec<&str> = item.split('=').collect();
map.insert(parts[0].trim().to_string(), parts[1].trim().to_string());
}
let mut filtered_cookie_header_value = "".to_string();
if let Some(value) = map.get("name2") {
filtered_cookie_header_value.push_str(&format!("{}{}", "name2=", value));
}
if let Some(value) = map.get("name3") {
filtered_cookie_header_value.push_str(&format!(";{}{}", "name3=", value));
}
if let Some(value) = map.get("name6") {
filtered_cookie_header_value.push_str(&format!(";{}{}", "name6=", value));
}
req.remove_header("Cookie");
req.set_header("Cookie", &filtered_cookie_header_value);
println!("Filtered Cookie header: {}", &filtered_cookie_header_value);
}
let beresp = req.send("origin_0")?;
Ok(beresp)
}