mirror of
https://github.com/foss42/apidash.git
synced 2025-12-02 18:57:05 +08:00
feat: enhance oauth1 and oauth2 models to support env variable substitution
This commit is contained in:
@@ -168,7 +168,84 @@ AuthModel? substituteAuthModel(
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case APIAuthType.oauth1:
|
case APIAuthType.oauth1:
|
||||||
|
if (authModel.oauth1 != null) {
|
||||||
|
final oauth1 = authModel.oauth1!;
|
||||||
|
return authModel.copyWith(
|
||||||
|
oauth1: oauth1.copyWith(
|
||||||
|
consumerKey: substituteVariables(oauth1.consumerKey, envVarMap) ??
|
||||||
|
oauth1.consumerKey,
|
||||||
|
consumerSecret:
|
||||||
|
substituteVariables(oauth1.consumerSecret, envVarMap) ??
|
||||||
|
oauth1.consumerSecret,
|
||||||
|
credentialsFilePath:
|
||||||
|
substituteVariables(oauth1.credentialsFilePath, envVarMap) ??
|
||||||
|
oauth1.credentialsFilePath,
|
||||||
|
accessToken: substituteVariables(oauth1.accessToken, envVarMap) ??
|
||||||
|
oauth1.accessToken,
|
||||||
|
tokenSecret: substituteVariables(oauth1.tokenSecret, envVarMap) ??
|
||||||
|
oauth1.tokenSecret,
|
||||||
|
parameterLocation:
|
||||||
|
substituteVariables(oauth1.parameterLocation, envVarMap) ??
|
||||||
|
oauth1.parameterLocation,
|
||||||
|
version: substituteVariables(oauth1.version, envVarMap) ??
|
||||||
|
oauth1.version,
|
||||||
|
realm: substituteVariables(oauth1.realm, envVarMap) ?? oauth1.realm,
|
||||||
|
callbackUrl: substituteVariables(oauth1.callbackUrl, envVarMap) ??
|
||||||
|
oauth1.callbackUrl,
|
||||||
|
verifier: substituteVariables(oauth1.verifier, envVarMap) ??
|
||||||
|
oauth1.verifier,
|
||||||
|
nonce: substituteVariables(oauth1.nonce, envVarMap) ?? oauth1.nonce,
|
||||||
|
timestamp: substituteVariables(oauth1.timestamp, envVarMap) ??
|
||||||
|
oauth1.timestamp,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case APIAuthType.oauth2:
|
case APIAuthType.oauth2:
|
||||||
|
if (authModel.oauth2 != null) {
|
||||||
|
final oauth2 = authModel.oauth2!;
|
||||||
|
return authModel.copyWith(
|
||||||
|
oauth2: oauth2.copyWith(
|
||||||
|
authorizationUrl:
|
||||||
|
substituteVariables(oauth2.authorizationUrl, envVarMap) ??
|
||||||
|
oauth2.authorizationUrl,
|
||||||
|
accessTokenUrl:
|
||||||
|
substituteVariables(oauth2.accessTokenUrl, envVarMap) ??
|
||||||
|
oauth2.accessTokenUrl,
|
||||||
|
clientId: substituteVariables(oauth2.clientId, envVarMap) ??
|
||||||
|
oauth2.clientId,
|
||||||
|
clientSecret: substituteVariables(oauth2.clientSecret, envVarMap) ??
|
||||||
|
oauth2.clientSecret,
|
||||||
|
credentialsFilePath:
|
||||||
|
substituteVariables(oauth2.credentialsFilePath, envVarMap) ??
|
||||||
|
oauth2.credentialsFilePath,
|
||||||
|
redirectUrl: substituteVariables(oauth2.redirectUrl, envVarMap) ??
|
||||||
|
oauth2.redirectUrl,
|
||||||
|
scope: substituteVariables(oauth2.scope, envVarMap) ?? oauth2.scope,
|
||||||
|
state: substituteVariables(oauth2.state, envVarMap) ?? oauth2.state,
|
||||||
|
codeChallengeMethod:
|
||||||
|
substituteVariables(oauth2.codeChallengeMethod, envVarMap) ??
|
||||||
|
oauth2.codeChallengeMethod,
|
||||||
|
codeVerifier: substituteVariables(oauth2.codeVerifier, envVarMap) ??
|
||||||
|
oauth2.codeVerifier,
|
||||||
|
codeChallenge:
|
||||||
|
substituteVariables(oauth2.codeChallenge, envVarMap) ??
|
||||||
|
oauth2.codeChallenge,
|
||||||
|
username: substituteVariables(oauth2.username, envVarMap) ??
|
||||||
|
oauth2.username,
|
||||||
|
password: substituteVariables(oauth2.password, envVarMap) ??
|
||||||
|
oauth2.password,
|
||||||
|
refreshToken: substituteVariables(oauth2.refreshToken, envVarMap) ??
|
||||||
|
oauth2.refreshToken,
|
||||||
|
identityToken:
|
||||||
|
substituteVariables(oauth2.identityToken, envVarMap) ??
|
||||||
|
oauth2.identityToken,
|
||||||
|
accessToken: substituteVariables(oauth2.accessToken, envVarMap) ??
|
||||||
|
oauth2.accessToken,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case APIAuthType.none:
|
case APIAuthType.none:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user