@redocly/respect-core
Version:
API testing framework core
54 lines • 1.75 kB
JavaScript
export function getSecurityParameter(security, ctx) {
if (isApiKeyAuth(security)) {
return {
in: security.scheme.in,
name: security.scheme.name,
value: security.values.apiKey,
};
}
if (isBasicAuth(security)) {
const { username, password } = security.values;
const value = btoa(`${username}:${password}`);
ctx.secretFields.add(value);
return getAuthHeader(`Basic ${value}`, ctx);
}
if (isBearerAuth(security)) {
const { token } = security.values;
ctx.secretFields.add(token);
return getAuthHeader(`Bearer ${token}`, ctx);
}
if (isOpenIdConnectAuth(security)) {
const { accessToken } = security.values;
ctx.secretFields.add(accessToken);
return getAuthHeader(`Bearer ${accessToken}`, ctx);
}
if (isOAuth2Auth(security)) {
const { accessToken } = security.values;
ctx.secretFields.add(accessToken);
return getAuthHeader(`Bearer ${accessToken}`, ctx);
}
return undefined;
}
function getAuthHeader(value, _ctx) {
return {
in: 'header',
name: 'Authorization',
value,
};
}
function isOAuth2Auth(security) {
return security.scheme.type === 'oauth2';
}
function isOpenIdConnectAuth(security) {
return security.scheme.type === 'openIdConnect';
}
function isApiKeyAuth(security) {
return security.scheme.type === 'apiKey';
}
function isBasicAuth(security) {
return security.scheme.type === 'http' && security.scheme.scheme === 'basic';
}
function isBearerAuth(security) {
return security.scheme.type === 'http' && security.scheme.scheme === 'bearer';
}
//# sourceMappingURL=get-security-parameters.js.map