UNPKG

angular-auth-oidc-client

Version:

An OpenID Connect Code Flow with PKCE,Implicit Flow client for Angular

167 lines 13.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { of, ReplaySubject } from 'rxjs'; import { catchError, switchMap } from 'rxjs/operators'; /** * @record */ export function ConfigResult() { } if (false) { /** @type {?} */ ConfigResult.prototype.authWellknownEndpoints; /** @type {?} */ ConfigResult.prototype.customConfig; } var OidcConfigService = /** @class */ (function () { function OidcConfigService(httpClient) { this.httpClient = httpClient; this.configurationLoadedInternal = new ReplaySubject(1); } Object.defineProperty(OidcConfigService.prototype, "onConfigurationLoaded", { get: /** * @return {?} */ function () { return this.configurationLoadedInternal.asObservable(); }, enumerable: true, configurable: true }); /** * @param {?} configUrl * @return {?} */ OidcConfigService.prototype.load = /** * @param {?} configUrl * @return {?} */ function (configUrl) { var _this = this; return this.httpClient .get(configUrl) .pipe(switchMap((/** * @param {?} clientConfiguration * @return {?} */ function (clientConfiguration) { return _this.loadUsingConfiguration(clientConfiguration); })), catchError((/** * @param {?} error * @return {?} */ function (error) { console.error("OidcConfigService 'load' threw an error on calling " + configUrl, error); _this.configurationLoadedInternal.next(undefined); return of(false); }))) .toPromise(); }; /** * @param {?} stsServer * @return {?} */ OidcConfigService.prototype.load_using_stsServer = /** * @param {?} stsServer * @return {?} */ function (stsServer) { return this.loadUsingConfiguration({ stsServer: stsServer }).toPromise(); }; /** * @param {?} url * @return {?} */ OidcConfigService.prototype.load_using_custom_stsServer = /** * @param {?} url * @return {?} */ function (url) { var _this = this; return this.httpClient .get(url) .pipe(switchMap((/** * @param {?} wellKnownEndpoints * @return {?} */ function (wellKnownEndpoints) { _this.configurationLoadedInternal.next({ authWellknownEndpoints: wellKnownEndpoints, customConfig: { stsServer: url }, }); return of(true); })), catchError((/** * @param {?} error * @return {?} */ function (error) { console.error("OidcConfigService 'load_using_custom_stsServer' threw an error on calling " + url, error); _this.configurationLoadedInternal.next(undefined); return of(false); }))) .toPromise(); }; /** * @private * @param {?} clientConfig * @return {?} */ OidcConfigService.prototype.loadUsingConfiguration = /** * @private * @param {?} clientConfig * @return {?} */ function (clientConfig) { var _this = this; if (!clientConfig.stsServer) { console.error("Property 'stsServer' is not present of passed config " + JSON.stringify(clientConfig), clientConfig); throw new Error("Property 'stsServer' is not present of passed config " + JSON.stringify(clientConfig)); } /** @type {?} */ var url = clientConfig.stsServer + "/.well-known/openid-configuration"; return this.httpClient.get(url).pipe(switchMap((/** * @param {?} wellKnownEndpoints * @return {?} */ function (wellKnownEndpoints) { _this.configurationLoadedInternal.next({ authWellknownEndpoints: wellKnownEndpoints, customConfig: clientConfig, }); return of(true); })), catchError((/** * @param {?} error * @return {?} */ function (error) { console.error("OidcConfigService 'load_using_stsServer' threw an error on calling " + url, error); _this.configurationLoadedInternal.next(undefined); return of(false); }))); }; OidcConfigService.decorators = [ { type: Injectable } ]; /** @nocollapse */ OidcConfigService.ctorParameters = function () { return [ { type: HttpClient } ]; }; return OidcConfigService; }()); export { OidcConfigService }; if (false) { /** * @type {?} * @private */ OidcConfigService.prototype.configurationLoadedInternal; /** * @type {?} * @private */ OidcConfigService.prototype.httpClient; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy5zZWN1cml0eS5jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItYXV0aC1vaWRjLWNsaWVudC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9vaWRjLnNlY3VyaXR5LmNvbmZpZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRXZELGtDQUdDOzs7SUFGRyw4Q0FBNEI7O0lBQzVCLG9DQUFrQjs7QUFHdEI7SUFRSSwyQkFBNkIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQU4zQyxnQ0FBMkIsR0FBRyxJQUFJLGFBQWEsQ0FBZSxDQUFDLENBQUMsQ0FBQztJQU1sQixDQUFDO0lBSnhELHNCQUFXLG9EQUFxQjs7OztRQUFoQztZQUNJLE9BQU8sSUFBSSxDQUFDLDJCQUEyQixDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNELENBQUM7OztPQUFBOzs7OztJQUlELGdDQUFJOzs7O0lBQUosVUFBSyxTQUFpQjtRQUF0QixpQkFjQztRQWJHLE9BQU8sSUFBSSxDQUFDLFVBQVU7YUFDakIsR0FBRyxDQUFDLFNBQVMsQ0FBQzthQUNkLElBQUksQ0FDRCxTQUFTOzs7O1FBQUMsVUFBQSxtQkFBbUI7WUFDekIsT0FBTyxLQUFJLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM1RCxDQUFDLEVBQUMsRUFDRixVQUFVOzs7O1FBQUMsVUFBQSxLQUFLO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyx3REFBc0QsU0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3hGLEtBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakQsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQyxFQUFDLENBQ0w7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDOzs7OztJQUVELGdEQUFvQjs7OztJQUFwQixVQUFxQixTQUFpQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFNBQVMsV0FBQSxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNsRSxDQUFDOzs7OztJQUVELHVEQUEyQjs7OztJQUEzQixVQUE0QixHQUFXO1FBQXZDLGlCQWtCQztRQWpCRyxPQUFPLElBQUksQ0FBQyxVQUFVO2FBQ2pCLEdBQUcsQ0FBQyxHQUFHLENBQUM7YUFDUixJQUFJLENBQ0QsU0FBUzs7OztRQUFDLFVBQUEsa0JBQWtCO1lBQ3hCLEtBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xDLHNCQUFzQixFQUFFLGtCQUFrQjtnQkFDMUMsWUFBWSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRTthQUNuQyxDQUFDLENBQUM7WUFDSCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixDQUFDLEVBQUMsRUFDRixVQUFVOzs7O1FBQUMsVUFBQSxLQUFLO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQywrRUFBNkUsR0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3pHLEtBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakQsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQyxFQUFDLENBQ0w7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDOzs7Ozs7SUFFTyxrREFBc0I7Ozs7O0lBQTlCLFVBQStCLFlBQWlCO1FBQWhELGlCQXNCQztRQXJCRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRTtZQUN6QixPQUFPLENBQUMsS0FBSyxDQUFDLDBEQUF3RCxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ3BILE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQXdELElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFHLENBQUMsQ0FBQztTQUMzRzs7WUFFSyxHQUFHLEdBQU0sWUFBWSxDQUFDLFNBQVMsc0NBQW1DO1FBRXhFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUNoQyxTQUFTOzs7O1FBQUMsVUFBQSxrQkFBa0I7WUFDeEIsS0FBSSxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQztnQkFDbEMsc0JBQXNCLEVBQUUsa0JBQWtCO2dCQUMxQyxZQUFZLEVBQUUsWUFBWTthQUM3QixDQUFDLENBQUM7WUFDSCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixDQUFDLEVBQUMsRUFDRixVQUFVOzs7O1FBQUMsVUFBQSxLQUFLO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyx3RUFBc0UsR0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xHLEtBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDakQsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsQ0FBQyxFQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7O2dCQXhFSixVQUFVOzs7O2dCQVZGLFVBQVU7O0lBbUZuQix3QkFBQztDQUFBLEFBekVELElBeUVDO1NBeEVZLGlCQUFpQjs7Ozs7O0lBQzFCLHdEQUF5RTs7Ozs7SUFNN0QsdUNBQXVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnUmVzdWx0IHtcbiAgICBhdXRoV2VsbGtub3duRW5kcG9pbnRzOiBhbnk7XG4gICAgY3VzdG9tQ29uZmlnOiBhbnk7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPaWRjQ29uZmlnU2VydmljZSB7XG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uTG9hZGVkSW50ZXJuYWwgPSBuZXcgUmVwbGF5U3ViamVjdDxDb25maWdSZXN1bHQ+KDEpO1xuXG4gICAgcHVibGljIGdldCBvbkNvbmZpZ3VyYXRpb25Mb2FkZWQoKTogT2JzZXJ2YWJsZTxDb25maWdSZXN1bHQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbkxvYWRlZEludGVybmFsLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCkgeyB9XG5cbiAgICBsb2FkKGNvbmZpZ1VybDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5nZXQoY29uZmlnVXJsKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKGNsaWVudENvbmZpZ3VyYXRpb24gPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2FkVXNpbmdDb25maWd1cmF0aW9uKGNsaWVudENvbmZpZ3VyYXRpb24pO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBPaWRjQ29uZmlnU2VydmljZSAnbG9hZCcgdGhyZXcgYW4gZXJyb3Igb24gY2FsbGluZyAke2NvbmZpZ1VybH1gLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbkxvYWRlZEludGVybmFsLm5leHQodW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xuICAgIH1cblxuICAgIGxvYWRfdXNpbmdfc3RzU2VydmVyKHN0c1NlcnZlcjogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRVc2luZ0NvbmZpZ3VyYXRpb24oeyBzdHNTZXJ2ZXIgfSkudG9Qcm9taXNlKCk7XG4gICAgfVxuXG4gICAgbG9hZF91c2luZ19jdXN0b21fc3RzU2VydmVyKHVybDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnRcbiAgICAgICAgICAgIC5nZXQodXJsKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKHdlbGxLbm93bkVuZHBvaW50cyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbkxvYWRlZEludGVybmFsLm5leHQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFdlbGxrbm93bkVuZHBvaW50czogd2VsbEtub3duRW5kcG9pbnRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VzdG9tQ29uZmlnOiB7IHN0c1NlcnZlcjogdXJsIH0sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYE9pZGNDb25maWdTZXJ2aWNlICdsb2FkX3VzaW5nX2N1c3RvbV9zdHNTZXJ2ZXInIHRocmV3IGFuIGVycm9yIG9uIGNhbGxpbmcgJHt1cmx9YCwgZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25Mb2FkZWRJbnRlcm5hbC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC50b1Byb21pc2UoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRVc2luZ0NvbmZpZ3VyYXRpb24oY2xpZW50Q29uZmlnOiBhbnkpIHtcbiAgICAgICAgaWYgKCFjbGllbnRDb25maWcuc3RzU2VydmVyKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBQcm9wZXJ0eSAnc3RzU2VydmVyJyBpcyBub3QgcHJlc2VudCBvZiBwYXNzZWQgY29uZmlnICR7SlNPTi5zdHJpbmdpZnkoY2xpZW50Q29uZmlnKX1gLCBjbGllbnRDb25maWcpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm9wZXJ0eSAnc3RzU2VydmVyJyBpcyBub3QgcHJlc2VudCBvZiBwYXNzZWQgY29uZmlnICR7SlNPTi5zdHJpbmdpZnkoY2xpZW50Q29uZmlnKX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHVybCA9IGAke2NsaWVudENvbmZpZy5zdHNTZXJ2ZXJ9Ly53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uYDtcblxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldCh1cmwpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAod2VsbEtub3duRW5kcG9pbnRzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb25Mb2FkZWRJbnRlcm5hbC5uZXh0KHtcbiAgICAgICAgICAgICAgICAgICAgYXV0aFdlbGxrbm93bkVuZHBvaW50czogd2VsbEtub3duRW5kcG9pbnRzLFxuICAgICAgICAgICAgICAgICAgICBjdXN0b21Db25maWc6IGNsaWVudENvbmZpZyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYE9pZGNDb25maWdTZXJ2aWNlICdsb2FkX3VzaW5nX3N0c1NlcnZlcicgdGhyZXcgYW4gZXJyb3Igb24gY2FsbGluZyAke3VybH1gLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uTG9hZGVkSW50ZXJuYWwubmV4dCh1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==