@sap-cloud-sdk/connectivity
Version:
SAP Cloud SDK for JavaScript connectivity
39 lines • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.clearXsuaaServices = clearXsuaaServices;
exports.getXsuaaInstanceFromServiceCredentials = getXsuaaInstanceFromServiceCredentials;
const xssec_1 = require("@sap/xssec");
const xsuaaServices = {};
/**
* @internal
* Clears the cache of XSUAA services.
* Should only be used for testing purposes.
*/
function clearXsuaaServices() {
Object.keys(xsuaaServices).forEach(key => delete xsuaaServices[key]);
}
/**
* @internal
* @param credentials - Xsuaa credentials extracted from a re-use service like destination service. Required to create the xssec XSUAA instance.
* @param disableCache - Value to enable or disable JWKS cache in xssec library. Defaults to false.
* @returns An instance of {@code @sap/xssec/XsuaaService} for the provided credentials.
*/
function getXsuaaInstanceFromServiceCredentials(credentials, disableCache = false) {
const serviceConfig = disableCache
? {
validation: {
jwks: {
expirationTime: 0,
refreshPeriod: 0
}
}
}
: undefined;
const cacheKey = `${credentials.clientid}:${disableCache}`;
if (!xsuaaServices[cacheKey]) {
// XsuaaService is a representation of XSUAA credentials extracted from a reuse service, e.g., destination
xsuaaServices[cacheKey] = new xssec_1.XsuaaService(credentials, serviceConfig);
}
return xsuaaServices[cacheKey];
}
//# sourceMappingURL=xsuaa.js.map