UNPKG

angular-auth-oidc-client

Version:

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

138 lines 12 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; import { Subject } from 'rxjs'; import { PlatformProvider } from './platform.provider'; import * as i0 from "@angular/core"; import * as i1 from "./platform.provider"; export class ConfigurationProvider { /** * @param {?} platformProvider */ constructor(platformProvider) { this.platformProvider = platformProvider; this.DEFAULT_CONFIG = { stsServer: 'https://please_set', redirect_url: 'https://please_set', client_id: 'please_set', response_type: 'code', scope: 'openid email profile', hd_param: '', post_logout_redirect_uri: 'https://please_set', start_checksession: false, silent_renew: false, silent_renew_url: 'https://please_set', silent_renew_offset_in_seconds: 0, post_login_route: '/', forbidden_route: '/forbidden', unauthorized_route: '/unauthorized', auto_userinfo: true, auto_clean_state_after_authentication: true, trigger_authorization_result_event: false, log_console_warning_active: true, log_console_debug_active: false, iss_validation_off: false, history_cleanup_off: false, max_id_token_iat_offset_allowed_in_seconds: 3, disable_iat_offset_validation: false, storage: typeof Storage !== 'undefined' ? sessionStorage : null, }; this.INITIAL_AUTHWELLKNOWN = { issuer: '', jwks_uri: '', authorization_endpoint: '', token_endpoint: '', userinfo_endpoint: '', end_session_endpoint: '', check_session_iframe: '', revocation_endpoint: '', introspection_endpoint: '', }; this.mergedOpenIdConfiguration = this.DEFAULT_CONFIG; this.authWellKnownEndpoints = this.INITIAL_AUTHWELLKNOWN; this.onConfigurationChangeInternal = new Subject(); } /** * @return {?} */ get openIDConfiguration() { return this.mergedOpenIdConfiguration; } /** * @return {?} */ get wellKnownEndpoints() { return this.authWellKnownEndpoints; } /** * @return {?} */ get onConfigurationChange() { return this.onConfigurationChangeInternal.asObservable(); } /** * @param {?} passedOpenIfConfiguration * @param {?} passedAuthWellKnownEndpoints * @return {?} */ setup(passedOpenIfConfiguration, passedAuthWellKnownEndpoints) { this.mergedOpenIdConfiguration = Object.assign({}, this.mergedOpenIdConfiguration, passedOpenIfConfiguration); this.setSpecialCases(this.mergedOpenIdConfiguration); this.authWellKnownEndpoints = Object.assign({}, passedAuthWellKnownEndpoints); this.onConfigurationChangeInternal.next(Object.assign({}, this.mergedOpenIdConfiguration)); } /** * @private * @param {?} currentConfig * @return {?} */ setSpecialCases(currentConfig) { if (!this.platformProvider.isBrowser) { currentConfig.start_checksession = false; currentConfig.silent_renew = false; } } } ConfigurationProvider.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ ConfigurationProvider.ctorParameters = () => [ { type: PlatformProvider } ]; /** @nocollapse */ ConfigurationProvider.ngInjectableDef = i0.defineInjectable({ factory: function ConfigurationProvider_Factory() { return new ConfigurationProvider(i0.inject(i1.PlatformProvider)); }, token: ConfigurationProvider, providedIn: "root" }); if (false) { /** * @type {?} * @private */ ConfigurationProvider.prototype.DEFAULT_CONFIG; /** * @type {?} * @private */ ConfigurationProvider.prototype.INITIAL_AUTHWELLKNOWN; /** * @type {?} * @private */ ConfigurationProvider.prototype.mergedOpenIdConfiguration; /** * @type {?} * @private */ ConfigurationProvider.prototype.authWellKnownEndpoints; /** * @type {?} * @private */ ConfigurationProvider.prototype.onConfigurationChangeInternal; /** * @type {?} * @private */ ConfigurationProvider.prototype.platformProvider; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1jb25maWd1cmF0aW9uLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYW5ndWxhci1hdXRoLW9pZGMtY2xpZW50LyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL2F1dGgtY29uZmlndXJhdGlvbi5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRy9CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFHdkQsTUFBTSxPQUFPLHFCQUFxQjs7OztJQXlEOUIsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF4RDlDLG1CQUFjLEdBQWdDO1lBQ2xELFNBQVMsRUFBRSxvQkFBb0I7WUFDL0IsWUFBWSxFQUFFLG9CQUFvQjtZQUNsQyxTQUFTLEVBQUUsWUFBWTtZQUN2QixhQUFhLEVBQUUsTUFBTTtZQUNyQixLQUFLLEVBQUUsc0JBQXNCO1lBQzdCLFFBQVEsRUFBRSxFQUFFO1lBQ1osd0JBQXdCLEVBQUUsb0JBQW9CO1lBQzlDLGtCQUFrQixFQUFFLEtBQUs7WUFDekIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsZ0JBQWdCLEVBQUUsb0JBQW9CO1lBQ3RDLDhCQUE4QixFQUFFLENBQUM7WUFDakMsZ0JBQWdCLEVBQUUsR0FBRztZQUNyQixlQUFlLEVBQUUsWUFBWTtZQUM3QixrQkFBa0IsRUFBRSxlQUFlO1lBQ25DLGFBQWEsRUFBRSxJQUFJO1lBQ25CLHFDQUFxQyxFQUFFLElBQUk7WUFDM0Msa0NBQWtDLEVBQUUsS0FBSztZQUN6QywwQkFBMEIsRUFBRSxJQUFJO1lBQ2hDLHdCQUF3QixFQUFFLEtBQUs7WUFDL0Isa0JBQWtCLEVBQUUsS0FBSztZQUN6QixtQkFBbUIsRUFBRSxLQUFLO1lBQzFCLDBDQUEwQyxFQUFFLENBQUM7WUFDN0MsNkJBQTZCLEVBQUUsS0FBSztZQUNwQyxPQUFPLEVBQUUsT0FBTyxPQUFPLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUk7U0FDbEUsQ0FBQztRQUVNLDBCQUFxQixHQUEyQjtZQUNwRCxNQUFNLEVBQUUsRUFBRTtZQUNWLFFBQVEsRUFBRSxFQUFFO1lBQ1osc0JBQXNCLEVBQUUsRUFBRTtZQUMxQixjQUFjLEVBQUUsRUFBRTtZQUNsQixpQkFBaUIsRUFBRSxFQUFFO1lBQ3JCLG9CQUFvQixFQUFFLEVBQUU7WUFDeEIsb0JBQW9CLEVBQUUsRUFBRTtZQUN4QixtQkFBbUIsRUFBRSxFQUFFO1lBQ3ZCLHNCQUFzQixFQUFFLEVBQUU7U0FDN0IsQ0FBQztRQUVNLDhCQUF5QixHQUFnQyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzdFLDJCQUFzQixHQUEyQixJQUFJLENBQUMscUJBQXFCLENBQUM7UUFFNUUsa0NBQTZCLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7SUFjbEIsQ0FBQzs7OztJQVoxRCxJQUFJLG1CQUFtQjtRQUNuQixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztJQUMxQyxDQUFDOzs7O0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDdkMsQ0FBQzs7OztJQUVELElBQUkscUJBQXFCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdELENBQUM7Ozs7OztJQUlELEtBQUssQ0FBQyx5QkFBOEMsRUFBRSw0QkFBb0Q7UUFDdEcsSUFBSSxDQUFDLHlCQUF5QixxQkFBUSxJQUFJLENBQUMseUJBQXlCLEVBQUsseUJBQXlCLENBQUUsQ0FBQztRQUNyRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxzQkFBc0IscUJBQVEsNEJBQTRCLENBQUUsQ0FBQztRQUNsRSxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxtQkFBTSxJQUFJLENBQUMseUJBQXlCLEVBQUcsQ0FBQztJQUNuRixDQUFDOzs7Ozs7SUFFTyxlQUFlLENBQUMsYUFBa0M7UUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUU7WUFDbEMsYUFBYSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztZQUN6QyxhQUFhLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUN0QztJQUNMLENBQUM7OztZQXhFSixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzs7O1lBRnpCLGdCQUFnQjs7Ozs7Ozs7SUFJckIsK0NBeUJFOzs7OztJQUVGLHNEQVVFOzs7OztJQUVGLDBEQUFxRjs7Ozs7SUFDckYsdURBQW9GOzs7OztJQUVwRiw4REFBMkU7Ozs7O0lBYy9ELGlEQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE9wZW5JZENvbmZpZ3VyYXRpb24sIE9wZW5JZEludGVybmFsQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL21vZGVscy9hdXRoLmNvbmZpZ3VyYXRpb24nO1xuaW1wb3J0IHsgQXV0aFdlbGxLbm93bkVuZHBvaW50cyB9IGZyb20gJy4uL21vZGVscy9hdXRoLndlbGwta25vd24tZW5kcG9pbnRzJztcbmltcG9ydCB7IFBsYXRmb3JtUHJvdmlkZXIgfSBmcm9tICcuL3BsYXRmb3JtLnByb3ZpZGVyJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDb25maWd1cmF0aW9uUHJvdmlkZXIge1xuICAgIHByaXZhdGUgREVGQVVMVF9DT05GSUc6IE9wZW5JZEludGVybmFsQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgICAgc3RzU2VydmVyOiAnaHR0cHM6Ly9wbGVhc2Vfc2V0JyxcbiAgICAgICAgcmVkaXJlY3RfdXJsOiAnaHR0cHM6Ly9wbGVhc2Vfc2V0JyxcbiAgICAgICAgY2xpZW50X2lkOiAncGxlYXNlX3NldCcsXG4gICAgICAgIHJlc3BvbnNlX3R5cGU6ICdjb2RlJyxcbiAgICAgICAgc2NvcGU6ICdvcGVuaWQgZW1haWwgcHJvZmlsZScsXG4gICAgICAgIGhkX3BhcmFtOiAnJyxcbiAgICAgICAgcG9zdF9sb2dvdXRfcmVkaXJlY3RfdXJpOiAnaHR0cHM6Ly9wbGVhc2Vfc2V0JyxcbiAgICAgICAgc3RhcnRfY2hlY2tzZXNzaW9uOiBmYWxzZSxcbiAgICAgICAgc2lsZW50X3JlbmV3OiBmYWxzZSxcbiAgICAgICAgc2lsZW50X3JlbmV3X3VybDogJ2h0dHBzOi8vcGxlYXNlX3NldCcsXG4gICAgICAgIHNpbGVudF9yZW5ld19vZmZzZXRfaW5fc2Vjb25kczogMCxcbiAgICAgICAgcG9zdF9sb2dpbl9yb3V0ZTogJy8nLFxuICAgICAgICBmb3JiaWRkZW5fcm91dGU6ICcvZm9yYmlkZGVuJyxcbiAgICAgICAgdW5hdXRob3JpemVkX3JvdXRlOiAnL3VuYXV0aG9yaXplZCcsXG4gICAgICAgIGF1dG9fdXNlcmluZm86IHRydWUsXG4gICAgICAgIGF1dG9fY2xlYW5fc3RhdGVfYWZ0ZXJfYXV0aGVudGljYXRpb246IHRydWUsXG4gICAgICAgIHRyaWdnZXJfYXV0aG9yaXphdGlvbl9yZXN1bHRfZXZlbnQ6IGZhbHNlLFxuICAgICAgICBsb2dfY29uc29sZV93YXJuaW5nX2FjdGl2ZTogdHJ1ZSxcbiAgICAgICAgbG9nX2NvbnNvbGVfZGVidWdfYWN0aXZlOiBmYWxzZSxcbiAgICAgICAgaXNzX3ZhbGlkYXRpb25fb2ZmOiBmYWxzZSxcbiAgICAgICAgaGlzdG9yeV9jbGVhbnVwX29mZjogZmFsc2UsXG4gICAgICAgIG1heF9pZF90b2tlbl9pYXRfb2Zmc2V0X2FsbG93ZWRfaW5fc2Vjb25kczogMyxcbiAgICAgICAgZGlzYWJsZV9pYXRfb2Zmc2V0X3ZhbGlkYXRpb246IGZhbHNlLFxuICAgICAgICBzdG9yYWdlOiB0eXBlb2YgU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcgPyBzZXNzaW9uU3RvcmFnZSA6IG51bGwsXG4gICAgfTtcblxuICAgIHByaXZhdGUgSU5JVElBTF9BVVRIV0VMTEtOT1dOOiBBdXRoV2VsbEtub3duRW5kcG9pbnRzID0ge1xuICAgICAgICBpc3N1ZXI6ICcnLFxuICAgICAgICBqd2tzX3VyaTogJycsXG4gICAgICAgIGF1dGhvcml6YXRpb25fZW5kcG9pbnQ6ICcnLFxuICAgICAgICB0b2tlbl9lbmRwb2ludDogJycsXG4gICAgICAgIHVzZXJpbmZvX2VuZHBvaW50OiAnJyxcbiAgICAgICAgZW5kX3Nlc3Npb25fZW5kcG9pbnQ6ICcnLFxuICAgICAgICBjaGVja19zZXNzaW9uX2lmcmFtZTogJycsXG4gICAgICAgIHJldm9jYXRpb25fZW5kcG9pbnQ6ICcnLFxuICAgICAgICBpbnRyb3NwZWN0aW9uX2VuZHBvaW50OiAnJyxcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBtZXJnZWRPcGVuSWRDb25maWd1cmF0aW9uOiBPcGVuSWRJbnRlcm5hbENvbmZpZ3VyYXRpb24gPSB0aGlzLkRFRkFVTFRfQ09ORklHO1xuICAgIHByaXZhdGUgYXV0aFdlbGxLbm93bkVuZHBvaW50czogQXV0aFdlbGxLbm93bkVuZHBvaW50cyA9IHRoaXMuSU5JVElBTF9BVVRIV0VMTEtOT1dOO1xuXG4gICAgcHJpdmF0ZSBvbkNvbmZpZ3VyYXRpb25DaGFuZ2VJbnRlcm5hbCA9IG5ldyBTdWJqZWN0PE9wZW5JZENvbmZpZ3VyYXRpb24+KCk7XG5cbiAgICBnZXQgb3BlbklEQ29uZmlndXJhdGlvbigpOiBPcGVuSWRJbnRlcm5hbENvbmZpZ3VyYXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5tZXJnZWRPcGVuSWRDb25maWd1cmF0aW9uO1xuICAgIH1cblxuICAgIGdldCB3ZWxsS25vd25FbmRwb2ludHMoKTogQXV0aFdlbGxLbm93bkVuZHBvaW50cyB7XG4gICAgICAgIHJldHVybiB0aGlzLmF1dGhXZWxsS25vd25FbmRwb2ludHM7XG4gICAgfVxuXG4gICAgZ2V0IG9uQ29uZmlndXJhdGlvbkNoYW5nZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub25Db25maWd1cmF0aW9uQ2hhbmdlSW50ZXJuYWwuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBwbGF0Zm9ybVByb3ZpZGVyOiBQbGF0Zm9ybVByb3ZpZGVyKSB7fVxuXG4gICAgc2V0dXAocGFzc2VkT3BlbklmQ29uZmlndXJhdGlvbjogT3BlbklkQ29uZmlndXJhdGlvbiwgcGFzc2VkQXV0aFdlbGxLbm93bkVuZHBvaW50czogQXV0aFdlbGxLbm93bkVuZHBvaW50cykge1xuICAgICAgICB0aGlzLm1lcmdlZE9wZW5JZENvbmZpZ3VyYXRpb24gPSB7IC4uLnRoaXMubWVyZ2VkT3BlbklkQ29uZmlndXJhdGlvbiwgLi4ucGFzc2VkT3BlbklmQ29uZmlndXJhdGlvbiB9O1xuICAgICAgICB0aGlzLnNldFNwZWNpYWxDYXNlcyh0aGlzLm1lcmdlZE9wZW5JZENvbmZpZ3VyYXRpb24pO1xuICAgICAgICB0aGlzLmF1dGhXZWxsS25vd25FbmRwb2ludHMgPSB7IC4uLnBhc3NlZEF1dGhXZWxsS25vd25FbmRwb2ludHMgfTtcbiAgICAgICAgdGhpcy5vbkNvbmZpZ3VyYXRpb25DaGFuZ2VJbnRlcm5hbC5uZXh0KHsgLi4udGhpcy5tZXJnZWRPcGVuSWRDb25maWd1cmF0aW9uIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U3BlY2lhbENhc2VzKGN1cnJlbnRDb25maWc6IE9wZW5JZENvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgaWYgKCF0aGlzLnBsYXRmb3JtUHJvdmlkZXIuaXNCcm93c2VyKSB7XG4gICAgICAgICAgICBjdXJyZW50Q29uZmlnLnN0YXJ0X2NoZWNrc2Vzc2lvbiA9IGZhbHNlO1xuICAgICAgICAgICAgY3VycmVudENvbmZpZy5zaWxlbnRfcmVuZXcgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==