angular-auth-oidc-client
Version:
An OpenID Connect Code Flow with PKCE,Implicit Flow client for Angular
167 lines • 13.1 kB
JavaScript
/**
* @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==