pub fn exact_ignore_case(
    name: &'static str,
    value: &'static str
) -> impl Filter<Extract = (), Error = Rejection> + Copy
Expand description

Create a Filter that requires a header to match the value exactly.

This Filter will look for a header with supplied name and the exact value, ignoring ASCII case, otherwise rejects the request.

Example

// Require `connection: keep-alive` header to be set.
let keep_alive = warp::header::exact_ignore_case("connection", "keep-alive");
Examples found in repository?
src/filters/ws.rs (line 56)
↕
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
pub fn ws() -> impl Filter<Extract = One<Ws>, Error = Rejection> + Copy {
    let connection_has_upgrade = header::header2()
        .and_then(|conn: ::headers::Connection| {
            if conn.contains("upgrade") {
                future::ok(())
            } else {
                future::err(crate::reject::known(MissingConnectionUpgrade))
            }
        })
        .untuple_one();

    crate::get()
        .and(connection_has_upgrade)
        .and(header::exact_ignore_case("upgrade", "websocket"))
        .and(header::exact("sec-websocket-version", "13"))
        //.and(header::exact2(Upgrade::websocket()))
        //.and(header::exact2(SecWebsocketVersion::V13))
        .and(header::header2::<SecWebsocketKey>())
        .and(on_upgrade())
        .map(
            move |key: SecWebsocketKey, on_upgrade: Option<OnUpgrade>| Ws {
                config: None,
                key,
                on_upgrade,
            },
        )
}