File Explorer

/proc/self/root/var/runtime/node_modules/@aws-sdk/client-sts/dist-cjs/auth

This explorer reads the filesystem of the server it runs on, so /workspace/user isn't present here. Browsing and the terminal still work against this server's own disk from /.

httpAuthSchemeProvider.js6.4 KB · 143 lines
"use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.resolveHttpAuthSchemeConfig = exports.defaultSTSHttpAuthSchemeProvider = exports.defaultSTSHttpAuthSchemeParametersProvider = void 0;const httpAuthSchemes_1 = require("@aws-sdk/core/httpAuthSchemes");const signature_v4_multi_region_1 = require("@aws-sdk/signature-v4-multi-region");const client_1 = require("@smithy/core/client");const endpoints_1 = require("@smithy/core/endpoints");const endpointResolver_1 = require("../endpoint/endpointResolver");const createEndpointRuleSetHttpAuthSchemeParametersProvider = (defaultHttpAuthSchemeParametersProvider) => async (config, context, input) => {    if (!input) {        throw new Error("Could not find `input` for `defaultEndpointRuleSetHttpAuthSchemeParametersProvider`");    }    const defaultParameters = await defaultHttpAuthSchemeParametersProvider(config, context, input);    const instructionsFn = (0, client_1.getSmithyContext)(context)?.commandInstance?.constructor        ?.getEndpointParameterInstructions;    if (!instructionsFn) {        throw new Error(`getEndpointParameterInstructions() is not defined on '${context.commandName}'`);    }    const endpointParameters = await (0, endpoints_1.resolveParams)(input, { getEndpointParameterInstructions: instructionsFn }, config);    return Object.assign(defaultParameters, endpointParameters);};const _defaultSTSHttpAuthSchemeParametersProvider = async (config, context, input) => {    return {        operation: (0, client_1.getSmithyContext)(context).operation,        region: await (0, client_1.normalizeProvider)(config.region)() || (() => {            throw new Error("expected `region` to be configured for `aws.auth#sigv4`");        })(),    };};exports.defaultSTSHttpAuthSchemeParametersProvider = createEndpointRuleSetHttpAuthSchemeParametersProvider(_defaultSTSHttpAuthSchemeParametersProvider);function createAwsAuthSigv4HttpAuthOption(authParameters) {    return {        schemeId: "aws.auth#sigv4",        signingProperties: {            name: "sts",            region: authParameters.region,        },        propertiesExtractor: (config, context) => ({            signingProperties: {                config,                context,            },        }),    };}function createAwsAuthSigv4aHttpAuthOption(authParameters) {    return {        schemeId: "aws.auth#sigv4a",        signingProperties: {            name: "sts",            region: authParameters.region,        },        propertiesExtractor: (config, context) => ({            signingProperties: {                config,                context,            },        }),    };}function createSmithyApiNoAuthHttpAuthOption(authParameters) {    return {        schemeId: "smithy.api#noAuth",    };}const createEndpointRuleSetHttpAuthSchemeProvider = (defaultEndpointResolver, defaultHttpAuthSchemeResolver, createHttpAuthOptionFunctions) => {    const endpointRuleSetHttpAuthSchemeProvider = (authParameters) => {        const endpoint = defaultEndpointResolver(authParameters);        const authSchemes = endpoint.properties?.authSchemes;        if (!authSchemes) {            return defaultHttpAuthSchemeResolver(authParameters);        }        const options = [];        for (const scheme of authSchemes) {            const { name: resolvedName, properties = {}, ...rest } = scheme;            const name = resolvedName.toLowerCase();            if (resolvedName !== name) {                console.warn(`HttpAuthScheme has been normalized with lowercasing: '${resolvedName}' to '${name}'`);            }            let schemeId;            if (name === "sigv4a") {                schemeId = "aws.auth#sigv4a";                const sigv4Present = authSchemes.find((s) => {                    const name = s.name.toLowerCase();                    return name !== "sigv4a" && name.startsWith("sigv4");                });                if (signature_v4_multi_region_1.SignatureV4MultiRegion.sigv4aDependency() === "none" && sigv4Present) {                    continue;                }            }            else if (name.startsWith("sigv4")) {                schemeId = "aws.auth#sigv4";            }            else {                throw new Error(`Unknown HttpAuthScheme found in '@smithy.rules#endpointRuleSet': '${name}'`);            }            const createOption = createHttpAuthOptionFunctions[schemeId];            if (!createOption) {                throw new Error(`Could not find HttpAuthOption create function for '${schemeId}'`);            }            const option = createOption(authParameters);            option.schemeId = schemeId;            option.signingProperties = { ...(option.signingProperties || {}), ...rest, ...properties };            options.push(option);        }        return options;    };    return endpointRuleSetHttpAuthSchemeProvider;};const _defaultSTSHttpAuthSchemeProvider = (authParameters) => {    const options = [];    switch (authParameters.operation) {        case "AssumeRoleWithSAML": {            options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));            options.push(createAwsAuthSigv4aHttpAuthOption(authParameters));            break;        }        case "AssumeRoleWithWebIdentity": {            options.push(createSmithyApiNoAuthHttpAuthOption(authParameters));            options.push(createAwsAuthSigv4aHttpAuthOption(authParameters));            break;        }        default: {            options.push(createAwsAuthSigv4HttpAuthOption(authParameters));            options.push(createAwsAuthSigv4aHttpAuthOption(authParameters));        }    }    return options;};exports.defaultSTSHttpAuthSchemeProvider = createEndpointRuleSetHttpAuthSchemeProvider(endpointResolver_1.defaultEndpointResolver, _defaultSTSHttpAuthSchemeProvider, {    "aws.auth#sigv4": createAwsAuthSigv4HttpAuthOption,    "aws.auth#sigv4a": createAwsAuthSigv4aHttpAuthOption,    "smithy.api#noAuth": createSmithyApiNoAuthHttpAuthOption,});const resolveHttpAuthSchemeConfig = (config) => {    const config_0 = (0, httpAuthSchemes_1.resolveAwsSdkSigV4Config)(config);    const config_1 = (0, httpAuthSchemes_1.resolveAwsSdkSigV4AConfig)(config_0);    return Object.assign(config_1, {        authSchemePreference: (0, client_1.normalizeProvider)(config.authSchemePreference ?? []),    });};exports.resolveHttpAuthSchemeConfig = resolveHttpAuthSchemeConfig;