@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
55 lines • 8.09 kB
JavaScript
import { Injectable } from '@angular/core';
import { headerConstants } from '@microsoft/windows-admin-center-sdk/core/data/http-constants';
import { Logging } from '@microsoft/windows-admin-center-sdk/core/diagnostics/logging';
import { RpcObservableExtensionDataClient } from '@microsoft/windows-admin-center-sdk/core/rpc/extension-data/rpc-observable-extension-data-client';
import { throwError } from 'rxjs';
import { map } from 'rxjs/operators';
import { RpcService } from './rpc.service';
import * as i0 from "@angular/core";
import * as i1 from "./rpc.service";
export class SecureExtensionDataService extends RpcObservableExtensionDataClient {
/**
* Initializes a new instance of the SecureExtensionDataService class.
*
* @param rpc the rpc object.
*/
constructor(rpc) {
super(rpc);
}
/**
* Creates and stores a secure extension data token for the session
* @param key the key you want to store token in
* @param data the data to be encrypted and securely stored for the session
*/
createSecureExtensionToken(key, data) {
const extension = MsftSme.self().Environment.name;
if (!extension) {
Logging.logError('SecureExtensionDataService.SecureExtensionDataService', 'Could not find extension name.');
return throwError(() => {
return { error: 'Could not find extension name' };
});
}
else {
return this.storeData({ extension, key, data });
}
}
/**
* Adds a secure extension data token to a request
* @param key the key the secure data is stored in
* @param request the plugin request (optional)
*/
addSecureExtensionDataHeader(key, request) {
const extension = MsftSme.self().Environment.name;
request = request || { headers: {} };
return this.retrieveData({ extension, key }).pipe(map(data => {
request.headers[headerConstants.SECURE_EXTENSION] = data.data;
return request;
}));
}
}
/** @nocollapse */ SecureExtensionDataService.ɵfac = function SecureExtensionDataService_Factory(t) { return new (t || SecureExtensionDataService)(i0.ɵɵinject(i1.RpcService)); };
/** @nocollapse */ SecureExtensionDataService.ɵprov = /** @pureOrBreakMyCode */ i0.ɵɵdefineInjectable({ token: SecureExtensionDataService, factory: SecureExtensionDataService.ɵfac });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SecureExtensionDataService, [{
type: Injectable
}], function () { return [{ type: i1.RpcService }]; }, null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJlLWV4dGVuc2lvbi1kYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9zZXJ2aWNlL3NlY3VyZS1leHRlbnNpb24tZGF0YS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN2RixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxrR0FBa0csQ0FBQztBQUVwSixPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHM0MsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGdDQUFnQztJQUM1RTs7OztPQUlHO0lBQ0gsWUFBWSxHQUFlO1FBQ3ZCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksMEJBQTBCLENBQUMsR0FBVyxFQUFFLElBQVk7UUFDdkQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDbEQsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNaLE9BQU8sQ0FBQyxRQUFRLENBQUMsdURBQXVELEVBQ3BFLGdDQUFnQyxDQUFDLENBQUM7WUFDdEMsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNuQixPQUFPLEVBQUMsS0FBSyxFQUFFLCtCQUErQixFQUFDLENBQUM7WUFDcEQsQ0FBQyxDQUFDLENBQUM7U0FFTjthQUFNO1lBQ0gsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSw0QkFBNEIsQ0FBQyxHQUFXLEVBQUUsT0FBcUI7UUFDbEUsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDbEQsT0FBTyxHQUFHLE9BQU8sSUFBaUIsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7UUFDbEQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUMsU0FBUyxFQUFFLEdBQUcsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUMzQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDRCxPQUFRLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDckUsT0FBTyxPQUFPLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNaLENBQUM7O3VIQTFDUSwwQkFBMEI7K0dBQTFCLDBCQUEwQixXQUExQiwwQkFBMEI7dUZBQTFCLDBCQUEwQjtjQUR0QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBoZWFkZXJDb25zdGFudHMgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2RhdGEvaHR0cC1jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBMb2dnaW5nIH0gZnJvbSAnQG1pY3Jvc29mdC93aW5kb3dzLWFkbWluLWNlbnRlci1zZGsvY29yZS9kaWFnbm9zdGljcy9sb2dnaW5nJztcclxuaW1wb3J0IHsgUnBjT2JzZXJ2YWJsZUV4dGVuc2lvbkRhdGFDbGllbnQgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL3JwYy9leHRlbnNpb24tZGF0YS9ycGMtb2JzZXJ2YWJsZS1leHRlbnNpb24tZGF0YS1jbGllbnQnO1xyXG5pbXBvcnQgeyBScGNPYnNlcnZhYmxlRXh0ZW5zaW9uRGF0YVJlc3VsdCB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvcnBjL2V4dGVuc2lvbi1kYXRhL3JwYy1vYnNlcnZhYmxlLWV4dGVuc2lvbi1kYXRhLW1vZGVsJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBamF4UmVxdWVzdCB9IGZyb20gJ3J4anMvYWpheCc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgUnBjU2VydmljZSB9IGZyb20gJy4vcnBjLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU2VjdXJlRXh0ZW5zaW9uRGF0YVNlcnZpY2UgZXh0ZW5kcyBScGNPYnNlcnZhYmxlRXh0ZW5zaW9uRGF0YUNsaWVudCB7XHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBTZWN1cmVFeHRlbnNpb25EYXRhU2VydmljZSBjbGFzcy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcnBjIHRoZSBycGMgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihycGM6IFJwY1NlcnZpY2UpIHtcclxuICAgICAgICBzdXBlcihycGMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbmQgc3RvcmVzIGEgc2VjdXJlIGV4dGVuc2lvbiBkYXRhIHRva2VuIGZvciB0aGUgc2Vzc2lvblxyXG4gICAgICogQHBhcmFtIGtleSB0aGUga2V5IHlvdSB3YW50IHRvIHN0b3JlIHRva2VuIGluXHJcbiAgICAgKiBAcGFyYW0gZGF0YSB0aGUgZGF0YSB0byBiZSBlbmNyeXB0ZWQgYW5kIHNlY3VyZWx5IHN0b3JlZCBmb3IgdGhlIHNlc3Npb25cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNyZWF0ZVNlY3VyZUV4dGVuc2lvblRva2VuKGtleTogc3RyaW5nLCBkYXRhOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFJwY09ic2VydmFibGVFeHRlbnNpb25EYXRhUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3QgZXh0ZW5zaW9uID0gTXNmdFNtZS5zZWxmKCkuRW52aXJvbm1lbnQubmFtZTtcclxuICAgICAgICBpZiAoIWV4dGVuc2lvbikge1xyXG4gICAgICAgICAgICBMb2dnaW5nLmxvZ0Vycm9yKCdTZWN1cmVFeHRlbnNpb25EYXRhU2VydmljZS5TZWN1cmVFeHRlbnNpb25EYXRhU2VydmljZScsXHJcbiAgICAgICAgICAgICAgICAnQ291bGQgbm90IGZpbmQgZXh0ZW5zaW9uIG5hbWUuJyk7XHJcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7ZXJyb3I6ICdDb3VsZCBub3QgZmluZCBleHRlbnNpb24gbmFtZSd9O1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RvcmVEYXRhKHtleHRlbnNpb24sIGtleSwgZGF0YX0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgYSBzZWN1cmUgZXh0ZW5zaW9uIGRhdGEgdG9rZW4gdG8gYSByZXF1ZXN0XHJcbiAgICAgKiBAcGFyYW0ga2V5IHRoZSBrZXkgdGhlIHNlY3VyZSBkYXRhIGlzIHN0b3JlZCBpblxyXG4gICAgICogQHBhcmFtIHJlcXVlc3QgdGhlIHBsdWdpbiByZXF1ZXN0IChvcHRpb25hbClcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFkZFNlY3VyZUV4dGVuc2lvbkRhdGFIZWFkZXIoa2V5OiBzdHJpbmcsIHJlcXVlc3Q/OiBBamF4UmVxdWVzdCk6IE9ic2VydmFibGU8QWpheFJlcXVlc3Q+IHtcclxuICAgICAgICBjb25zdCBleHRlbnNpb24gPSBNc2Z0U21lLnNlbGYoKS5FbnZpcm9ubWVudC5uYW1lO1xyXG4gICAgICAgIHJlcXVlc3QgPSByZXF1ZXN0IHx8IDxBamF4UmVxdWVzdD57IGhlYWRlcnM6IHt9IH07XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmV0cmlldmVEYXRhKHtleHRlbnNpb24sIGtleX0pLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChkYXRhID0+IHtcclxuICAgICAgICAgICAgICAgICg8YW55PnJlcXVlc3QpLmhlYWRlcnNbaGVhZGVyQ29uc3RhbnRzLlNFQ1VSRV9FWFRFTlNJT05dID0gZGF0YS5kYXRhO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgICAgICAgICAgIH0pKTtcclxuICAgIH1cclxufVxyXG4iXX0=