UNPKG

@sap-cloud-sdk/core

Version:
52 lines 2.15 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.fetchVerificationKeys = void 0; var util_1 = require("@sap-cloud-sdk/util"); var axios_1 = __importDefault(require("axios")); var logger = (0, util_1.createLogger)({ package: 'core', messageContext: 'xsuaa-service' }); function fetchVerificationKeys(xsuaaUriOrCredentials, clientIdOrJku, // eslint-disable-next-line @typescript-eslint/no-unused-vars clientSecret) { // The case where the XsuaaServiceCredentials are given as object if (typeof xsuaaUriOrCredentials !== 'string') { if (!clientIdOrJku) { logger.warn('JKU field from the JWT not provided. Use xsuaaClient.url/token_keys as fallback. ' + 'This will not work for subscriber accounts created after 14th of April 2020.' + 'Please provide the right URL given by the field `jku` in the JWT header.'); return executeFetchVerificationKeys("".concat(xsuaaUriOrCredentials.url, "/token_keys")); } return executeFetchVerificationKeys(clientIdOrJku); } // The three strings case return executeFetchVerificationKeys(xsuaaUriOrCredentials); } exports.fetchVerificationKeys = fetchVerificationKeys; // TODO: in v2 move this implementation to `fetchVerificationKeys` function executeFetchVerificationKeys(url) { var config = { url: url, method: 'GET' }; return axios_1.default .request(config) .then(function (resp) { return resp.data.keys.map(function (k) { return (0, util_1.renameKeys)(tokenKeyKeyMapping, k); }); }) .catch(function (error) { throw new util_1.ErrorWithCause("Failed to fetch verification keys from XSUAA service instance \"".concat(url, "\"."), error); }); } var tokenKeyKeyMapping = { kty: 'keyType', e: 'publicKeyExponent', use: 'use', kid: 'keyId', alg: 'algorithm', value: 'value', n: 'publicKeyModulus' }; //# sourceMappingURL=verification-keys.js.map