Skip to content

Commit 91097c1

Browse files
committed
feat: Support Aliyun ram AuthPlugin
1 parent c446e86 commit 91097c1

File tree

14 files changed

+897
-218
lines changed

14 files changed

+897
-218
lines changed

Cargo.toml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ config = []
4343
naming = []
4444
tls = ["reqwest/default-tls"]
4545
auth-by-http = ["reqwest"]
46+
auth-by-aliyun = ["ring", "base64", "chrono"]
4647

4748
[dependencies]
4849
arc-swap = "1.7"
@@ -64,6 +65,11 @@ rand = "0.8.5"
6465
# now only for feature="auth-by-http"
6566
reqwest = { version = "0.12", default-features = false, features = [], optional = true }
6667

68+
# only for aliyun-ram-auth
69+
ring = { version = "0.17.8", default-features = false, optional = true }
70+
base64 = { version = "0.22.1", default-features = false, optional = true }
71+
chrono = { version = "0.4", features = ["now"] ,optional = true }
72+
6773
async-trait = "0.1"
6874
async-stream = "0.3.5"
6975
tonic = "0.12"
@@ -74,6 +80,7 @@ dashmap = "5.4.0"
7480
home = "0.5.4"
7581

7682
dotenvy = "0.15"
83+
log = "0.4.22"
7784

7885
[dev-dependencies]
7986
tracing-subscriber = { version = "0.3", features = ["default"] }

nacos-macro/src/message/request.rs

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,40 @@ pub(crate) fn grpc_request(
2424
}
2525
};
2626

27+
let into_request_resource = match macro_args.module {
28+
super::Module::Naming => {
29+
quote! {
30+
fn request_resource(&self) -> Option<crate::api::plugin::RequestResource> {
31+
Some(crate::api::plugin::RequestResource {
32+
request_type: "Naming".to_string(),
33+
namespace: self.namespace.clone(),
34+
group: self.group_name.clone(),
35+
resource: self.service_name.clone()
36+
})
37+
}
38+
}
39+
}
40+
super::Module::Config => {
41+
quote! {
42+
fn request_resource(&self) -> Option<crate::api::plugin::RequestResource> {
43+
Some(crate::api::plugin::RequestResource {
44+
request_type: "Config".to_string(),
45+
namespace: self.namespace.clone(),
46+
group: self.group.clone(),
47+
resource: self.data_id.clone()
48+
})
49+
}
50+
}
51+
}
52+
_ => {
53+
quote! {
54+
fn request_resource(&self) -> Option<crate::api::plugin::RequestResource> {
55+
None
56+
}
57+
}
58+
}
59+
};
60+
2761
// add derive GrpcRequestMessage
2862
let grpc_message_request = quote! {
2963

@@ -52,8 +86,9 @@ pub(crate) fn grpc_request(
5286
fn module(&self) -> &str {
5387
#module
5488
}
55-
}
5689

90+
#into_request_resource
91+
}
5792
};
5893

5994
// add field

src/api/constants.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,12 @@ pub const ENV_NACOS_CLIENT_AUTH_USERNAME: &str = "NACOS_CLIENT_USERNAME";
4444

4545
pub const ENV_NACOS_CLIENT_AUTH_PASSWORD: &str = "NACOS_CLIENT_PASSWORD";
4646

47+
pub const ENV_NACOS_CLIENT_AUTH_ACCESS_KEY: &str = "NACOS_CLIENT_ACCESS_KEY";
48+
49+
pub const ENV_NACOS_CLIENT_AUTH_ACCESS_SECRET: &str = "NACOS_CLIENT_SECRET_KEY";
50+
51+
pub const ENV_NACOS_CLIENT_SIGN_REGION_ID: &str = "NACOS_CLIENT_SIGN_REGION_ID";
52+
4753
/// env `NACOS_CLIENT_NAMING_PUSH_EMPTY_PROTECTION`, default true
4854
pub const ENV_NACOS_CLIENT_NAMING_PUSH_EMPTY_PROTECTION: &str =
4955
"NACOS_CLIENT_NAMING_PUSH_EMPTY_PROTECTION";

0 commit comments

Comments
 (0)