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
42
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
70
71
72
73
74
75
76
77
78
79
80
81
82
// SPDX-FileCopyrightText: Cadasto B.V.
// SPDX-License-Identifier: BUSL-1.1
//! How a data user authenticates each request to a Generic Function when a
//! fixed header cannot do it (feature `authorizer`, which `nvi` turns on).
//!
//! The IG authenticates a data user to a Generic Function on
//! GF-Authentication: the user holds an access token from GFI-004 and sends
//! it in an Authenticated Interaction (GFI-005), under the `DPoP` scheme with
//! a proof made for that one request (RFC 9449 §7.1). A proof binds the
//! request's method and URL, so it cannot ride in a default header of the
//! HTTP client. An [`Authorizer`] the caller supplies to a client, such as
//! the NVI client's `NviClient::with_authorizer`, gives the headers of each
//! request and reads each answer.
//!
//! The module holds no FHIR model, so a crate that only implements an
//! [`Authorizer`] compiles none. A client hands the authorizer the request
//! URL without its query and fragment, the `htu` of RFC 9449 §4.2, so the
//! NVI client never shows it the pseudonym its query carries.
use fmt;
use Future;
use Pin;
use ;
use Url;
/// The headers an [`Authorizer`] gives one request, once they are made.
pub type Authorized<'a> =
;
/// The source of the headers, such as `Authorization` and `DPoP`, that
/// authenticate each request to a Generic Function service (the IG's
/// GFI-005).
/// What the client does after an answer, as the [`Authorizer`] reads it.
/// An [`Authorizer`] that could not make the headers of a request.
///
/// The source an authorizer reports never carries a credential.