changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > core / annotate rust/lib/obj/src/config/auth.rs

changeset 698: 96958d3eb5b0
parent: 55fbe0e45b62
author: Richard Westhaver <ellis@rwest.io>
date: Fri, 04 Oct 2024 22:04:59 -0400
permissions: -rw-r--r--
description: fixes
17
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
1
 //! Auth Configs
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
2
 use serde::{Deserialize, Serialize};
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
3
 
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
4
 #[cfg(feature = "oauth")]
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
5
 use yup_oauth2::ApplicationSecret;
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
6
 
69
55fbe0e45b62 rust krypt
ellis <ellis@rwest.io>
parents: 67
diff changeset
7
 #[derive(Serialize, Deserialize, Debug, Default, Hash, Clone)]
17
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
8
 pub struct AuthConfig {
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
9
   pub provider: String,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
10
   #[cfg(feature = "oauth")]
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
11
   pub oauth: Option<Oauth2Config>,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
12
   pub ssh: Option<SshConfig>,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
13
   pub pw: Option<PasswordConfig>,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
14
 }
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
15
 
69
55fbe0e45b62 rust krypt
ellis <ellis@rwest.io>
parents: 67
diff changeset
16
 #[derive(Serialize, Deserialize, Default, Debug, Hash, Clone)]
17
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
17
 pub struct PasswordConfig(String, String);
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
18
 
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
19
 #[cfg(feature = "oauth")]
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
20
 #[derive(Serialize, Deserialize, Hash, Debug, PartialEq, Clone, Default)]
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
21
 pub struct Oauth2Config {
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
22
   pub client_id: String,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
23
   pub client_secret: String,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
24
   pub redirect_uris: Vec<String>,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
25
   pub auth_uri: String,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
26
   pub token_uri: String,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
27
   pub project_id: Option<String>, //for apptoken
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
28
   pub client_email: Option<String>,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
29
   /// The URL of the public x509 certificate, used to verify the signature on
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
30
   /// JWTs, such as ID tokens, signed by the authentication provider.
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
31
   pub auth_provider_x509_cert_url: Option<String>,
67
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents: 17
diff changeset
32
   ///  The URL of the public x509 certificate, used to verify JWTs signed by
0ccbbd142694 rust cleanup, added rocksdb bindings
ellis <ellis@rwest.io>
parents: 17
diff changeset
33
   /// the client.
17
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
34
   pub client_x509_cert_url: Option<String>,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
35
 }
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
36
 
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
37
 #[cfg(feature = "oauth")]
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
38
 impl From<ApplicationSecret> for Oauth2Config {
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
39
   fn from(shh: ApplicationSecret) -> Self {
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
40
     Oauth2Config {
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
41
       client_id: shh.client_id,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
42
       client_secret: shh.client_secret,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
43
       redirect_uris: shh.redirect_uris,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
44
       auth_uri: shh.auth_uri,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
45
       token_uri: shh.token_uri,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
46
       project_id: shh.project_id,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
47
       client_email: shh.client_email,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
48
       auth_provider_x509_cert_url: shh.auth_provider_x509_cert_url,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
49
       client_x509_cert_url: shh.client_x509_cert_url,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
50
     }
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
51
   }
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
52
 }
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
53
 
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
54
 #[cfg(feature = "oauth")]
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
55
 impl From<Oauth2Config> for ApplicationSecret {
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
56
   fn from(cfg: Oauth2Config) -> Self {
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
57
     ApplicationSecret {
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
58
       client_id: cfg.client_id,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
59
       client_secret: cfg.client_secret,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
60
       redirect_uris: cfg.redirect_uris,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
61
       auth_uri: cfg.auth_uri,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
62
       token_uri: cfg.token_uri,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
63
       project_id: cfg.project_id,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
64
       client_email: cfg.client_email,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
65
       auth_provider_x509_cert_url: cfg.auth_provider_x509_cert_url,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
66
       client_x509_cert_url: cfg.client_x509_cert_url,
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
67
     }
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
68
   }
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
69
 }
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
70
 
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
71
 #[derive(Serialize, Deserialize, Hash, Debug, PartialEq, Clone, Default)]
c7165d93a9eb add obj and net src
ellis <ellis@rwest.io>
parents:
diff changeset
72
 pub struct SshConfig {}