1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
`Context::get_request_target() -> Option<String>` returns the unchanged request
path and query as received on the wire. Use it when building login return URLs,
canonical page redirects, or signatures that depend on query spelling and order.
Continue using `Request::get_path()` for route matching and the query helpers for
ordinary parameter lookup.
Inside a request hook:
```rust
let target: Option<String> = ctx.get_request_target();
```
Pass this value to the application's shared redirect API. Hyperlane preserves
the transport's original address without defining an application's login route.
- -----
The value lives in reserved request-local lifecycle metadata. A manually
constructed `Context` has no transport snapshot and returns `None`. Explicitly
clearing all context attributes also removes this metadata. Do not manufacture
an original target by rebuilding a query map when byte-exact behavior matters.
HTTP requests do not contain browser fragments. Applications must carry them in
client-side return URLs or restore a fragment inherited through an HTTP redirect.
The existing public `Request` struct, its fields and its serialization remain
unchanged. No synthetic client header is trusted as the original target, and no
internal bookkeeping parameter is inserted into the user's query map.