Skip to content

Commit 47c258c

Browse files
committed
feat: added forward_headers on builder. defaults to false
Signed-off-by: Martin <martin@hotmail.com.br>
1 parent 6850a8c commit 47c258c

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

src/builder.rs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,17 @@ pub struct Prerender {
4545
}
4646

4747
#[derive(Debug, Clone)]
48-
pub struct PrerenderBuilder {}
48+
pub struct PrerenderBuilder {
49+
pub(crate) forward_headers: bool,
50+
}
4951

5052
impl PrerenderBuilder {
5153
pub fn use_prerender_io(self, token: String) -> Prerender {
5254
let inner = Inner {
5355
prerender_service_url: middleware::prerender_url(),
5456
inner_client: Client::default(),
5557
prerender_token: Some(token),
58+
forward_headers: self.forward_headers,
5659
};
5760

5861
Prerender { inner: Rc::new(inner) }
@@ -65,15 +68,21 @@ impl PrerenderBuilder {
6568
prerender_service_url,
6669
inner_client: Client::default(),
6770
prerender_token: None,
71+
forward_headers: self.forward_headers,
6872
};
6973

7074
Ok(Prerender { inner: Rc::new(inner) })
7175
}
76+
77+
pub const fn forward_headers(mut self) -> Self {
78+
self.forward_headers = true;
79+
self
80+
}
7281
}
7382

7483
impl Prerender {
7584
pub const fn build() -> PrerenderBuilder {
76-
PrerenderBuilder {}
85+
PrerenderBuilder { forward_headers: false }
7786
}
7887
}
7988

src/middleware.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ pub struct Inner {
2121
pub(crate) prerender_service_url: Url,
2222
pub(crate) inner_client: Client,
2323
pub(crate) prerender_token: Option<String>,
24+
25+
// Should forward request headers to Prerender.
26+
pub(crate) forward_headers: bool,
2427
}
2528

2629
pub(crate) fn prerender_url() -> Url {
@@ -97,9 +100,8 @@ impl<S> PrerenderMiddleware<S> {
97100

98101
pub async fn get_rendered_response(inner: &Inner, req: ServiceRequest) -> Result<ServiceResponse, PrerenderError> {
99102
let mut prerender_request_headers = HeaderMap::new();
100-
let forward_headers = true;
101103

102-
if forward_headers {
104+
if inner.forward_headers {
103105
prerender_request_headers = req.headers().clone();
104106
prerender_request_headers.remove(header::HOST);
105107
}

0 commit comments

Comments
 (0)