authplane_sdk/
auth_provider.rs1use crate::transport::build_basic_auth_header;
7
8pub trait AuthProvider: Send + Sync {
15 fn auth_header(&self) -> String;
18}
19
20#[derive(Debug, Clone)]
25pub struct ClientCredentialsProvider {
26 header: String,
27 client_id: String,
28}
29
30impl ClientCredentialsProvider {
31 pub fn new(client_id: impl Into<String>, client_secret: &str) -> Self {
32 let client_id = client_id.into();
33 let header = build_basic_auth_header(&client_id, client_secret);
34 Self { header, client_id }
35 }
36
37 pub fn client_id(&self) -> &str {
38 &self.client_id
39 }
40}
41
42impl AuthProvider for ClientCredentialsProvider {
43 fn auth_header(&self) -> String {
44 self.header.clone()
45 }
46}
47
48pub struct InlineCredentials {
51 header: String,
52}
53
54impl InlineCredentials {
55 pub fn new(client_id: &str, client_secret: &str) -> Self {
56 Self {
57 header: build_basic_auth_header(client_id, client_secret),
58 }
59 }
60}
61
62impl AuthProvider for InlineCredentials {
63 fn auth_header(&self) -> String {
64 self.header.clone()
65 }
66}