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