refactor(core): use secrets for connector AuthType in connector integration (#1441)

This commit is contained in:
Shankar Singh C
2023-07-26 17:04:49 +05:30
committed by GitHub
parent e6a5e9fa72
commit d068569f4d
80 changed files with 491 additions and 393 deletions

View File

@ -1,6 +1,6 @@
use std::{collections::HashMap, env};
use masking::{PeekInterface, Secret};
use masking::Secret;
use router::types::ConnectorAuthType;
use serde::{Deserialize, Serialize};
@ -149,25 +149,43 @@ impl ConnectorAuthenticationMap {
table.get("key2"),
) {
(Some(api_key), None, None, None) => ConnectorAuthType::HeaderKey {
api_key: api_key.as_str().unwrap_or_default().to_string(),
api_key: Secret::new(
api_key.as_str().unwrap_or_default().to_string(),
),
},
(Some(api_key), Some(key1), None, None) => ConnectorAuthType::BodyKey {
api_key: api_key.as_str().unwrap_or_default().to_string(),
key1: key1.as_str().unwrap_or_default().to_string(),
api_key: Secret::new(
api_key.as_str().unwrap_or_default().to_string(),
),
key1: Secret::new(key1.as_str().unwrap_or_default().to_string()),
},
(Some(api_key), Some(key1), Some(api_secret), None) => {
ConnectorAuthType::SignatureKey {
api_key: api_key.as_str().unwrap_or_default().to_string(),
key1: key1.as_str().unwrap_or_default().to_string(),
api_secret: api_secret.as_str().unwrap_or_default().to_string(),
api_key: Secret::new(
api_key.as_str().unwrap_or_default().to_string(),
),
key1: Secret::new(
key1.as_str().unwrap_or_default().to_string(),
),
api_secret: Secret::new(
api_secret.as_str().unwrap_or_default().to_string(),
),
}
}
(Some(api_key), Some(key1), Some(api_secret), Some(key2)) => {
ConnectorAuthType::MultiAuthKey {
api_key: api_key.as_str().unwrap_or_default().to_string(),
key1: key1.as_str().unwrap_or_default().to_string(),
api_secret: api_secret.as_str().unwrap_or_default().to_string(),
key2: key2.as_str().unwrap_or_default().to_string(),
api_key: Secret::new(
api_key.as_str().unwrap_or_default().to_string(),
),
key1: Secret::new(
key1.as_str().unwrap_or_default().to_string(),
),
api_secret: Secret::new(
api_secret.as_str().unwrap_or_default().to_string(),
),
key2: Secret::new(
key2.as_str().unwrap_or_default().to_string(),
),
}
}
_ => ConnectorAuthType::NoKey,
@ -191,7 +209,7 @@ pub struct HeaderKey {
impl From<HeaderKey> for ConnectorAuthType {
fn from(key: HeaderKey) -> Self {
Self::HeaderKey {
api_key: key.api_key.peek().to_string(),
api_key: key.api_key,
}
}
}
@ -205,8 +223,8 @@ pub struct BodyKey {
impl From<BodyKey> for ConnectorAuthType {
fn from(key: BodyKey) -> Self {
Self::BodyKey {
api_key: key.api_key.peek().to_string(),
key1: key.key1.peek().to_string(),
api_key: key.api_key,
key1: key.key1,
}
}
}
@ -221,9 +239,9 @@ pub struct SignatureKey {
impl From<SignatureKey> for ConnectorAuthType {
fn from(key: SignatureKey) -> Self {
Self::SignatureKey {
api_key: key.api_key.peek().to_string(),
key1: key.key1.peek().to_string(),
api_secret: key.api_secret.peek().to_string(),
api_key: key.api_key,
key1: key.key1,
api_secret: key.api_secret,
}
}
}
@ -239,10 +257,10 @@ pub struct MultiAuthKey {
impl From<MultiAuthKey> for ConnectorAuthType {
fn from(key: MultiAuthKey) -> Self {
Self::MultiAuthKey {
api_key: key.api_key.peek().to_string(),
key1: key.key1.peek().to_string(),
api_secret: key.api_secret.peek().to_string(),
key2: key.key2.peek().to_string(),
api_key: key.api_key,
key1: key.key1,
api_secret: key.api_secret,
key2: key.key2,
}
}
}

View File

@ -4,6 +4,7 @@ use std::{
};
use clap::{arg, command, Parser};
use masking::PeekInterface;
use router::types::ConnectorAuthType;
use test_utils::connector_auth::ConnectorAuthenticationMap;
@ -53,14 +54,18 @@ fn main() {
if let Some(auth_type) = inner_map.get(&connector_name) {
match auth_type {
ConnectorAuthType::HeaderKey { api_key } => {
newman_command.args(["--env-var", &format!("connector_api_key={api_key}")]);
// newman_command.args(["--env-var", &format!("connector_api_key={}", api_key.map(|val| val))]);
newman_command.args([
"--env-var",
&format!("connector_api_key={}", api_key.peek()),
]);
}
ConnectorAuthType::BodyKey { api_key, key1 } => {
newman_command.args([
"--env-var",
&format!("connector_api_key={api_key}"),
&format!("connector_api_key={}", api_key.peek()),
"--env-var",
&format!("connector_key1={key1}"),
&format!("connector_key1={}", key1.peek()),
]);
}
ConnectorAuthType::SignatureKey {
@ -70,11 +75,11 @@ fn main() {
} => {
newman_command.args([
"--env-var",
&format!("connector_api_key={api_key}"),
&format!("connector_api_key={}", api_key.peek()),
"--env-var",
&format!("connector_key1={key1}"),
&format!("connector_key1={}", key1.peek()),
"--env-var",
&format!("connector_api_secret={api_secret}"),
&format!("connector_api_secret={}", api_secret.peek()),
]);
}
ConnectorAuthType::MultiAuthKey {
@ -85,13 +90,13 @@ fn main() {
} => {
newman_command.args([
"--env-var",
&format!("connector_api_key={api_key}"),
&format!("connector_api_key={}", api_key.peek()),
"--env-var",
&format!("connector_key1={key1}"),
&format!("connector_key1={}", key1.peek()),
"--env-var",
&format!("connector_key1={key2}"),
&format!("connector_key1={}", key2.peek()),
"--env-var",
&format!("connector_api_secret={api_secret}"),
&format!("connector_api_secret={}", api_secret.peek()),
]);
}
// Handle other ConnectorAuthType variants