angular-auth-oidc-client
Version:
Angular Lib for OpenID Connect & OAuth2
53 lines • 9.98 kB
JavaScript
import { Injectable, inject } from '@angular/core';
import { LoggerService } from '../../logging/logger.service';
import { allMultipleConfigRules, allRules } from './rules';
import * as i0 from "@angular/core";
export class ConfigValidationService {
constructor() {
this.loggerService = inject(LoggerService);
}
validateConfigs(passedConfigs) {
return this.validateConfigsInternal(passedConfigs ?? [], allMultipleConfigRules);
}
validateConfig(passedConfig) {
return this.validateConfigInternal(passedConfig, allRules);
}
validateConfigsInternal(passedConfigs, allRulesToUse) {
if (passedConfigs.length === 0) {
return false;
}
const allValidationResults = allRulesToUse.map((rule) => rule(passedConfigs));
let overallErrorCount = 0;
passedConfigs.forEach((passedConfig) => {
const errorCount = this.processValidationResultsAndGetErrorCount(allValidationResults, passedConfig);
overallErrorCount += errorCount;
});
return overallErrorCount === 0;
}
validateConfigInternal(passedConfig, allRulesToUse) {
const allValidationResults = allRulesToUse.map((rule) => rule(passedConfig));
const errorCount = this.processValidationResultsAndGetErrorCount(allValidationResults, passedConfig);
return errorCount === 0;
}
processValidationResultsAndGetErrorCount(allValidationResults, config) {
const allMessages = allValidationResults.filter((x) => x.messages.length > 0);
const allErrorMessages = this.getAllMessagesOfType('error', allMessages);
const allWarnings = this.getAllMessagesOfType('warning', allMessages);
allErrorMessages.forEach((message) => this.loggerService.logError(config, message));
allWarnings.forEach((message) => this.loggerService.logWarning(config, message));
return allErrorMessages.length;
}
getAllMessagesOfType(type, results) {
const allMessages = results
.filter((x) => x.level === type)
.map((result) => result.messages);
return allMessages.reduce((acc, val) => acc.concat(val), []);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ConfigValidationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ConfigValidationService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: ConfigValidationService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLXZhbGlkYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItYXV0aC1vaWRjLWNsaWVudC9zcmMvbGliL2NvbmZpZy92YWxpZGF0aW9uL2NvbmZpZy12YWxpZGF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRzdELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBRzNELE1BQU0sT0FBTyx1QkFBdUI7SUFEcEM7UUFFbUIsa0JBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7S0F5RnhEO0lBdkZDLGVBQWUsQ0FBQyxhQUFvQztRQUNsRCxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FDakMsYUFBYSxJQUFJLEVBQUUsRUFDbkIsc0JBQXNCLENBQ3ZCLENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLFlBQWlDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sdUJBQXVCLENBQzdCLGFBQW9DLEVBQ3BDLGFBRTRCO1FBRTVCLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxNQUFNLG9CQUFvQixHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUN0RCxJQUFJLENBQUMsYUFBYSxDQUFDLENBQ3BCLENBQUM7UUFFRixJQUFJLGlCQUFpQixHQUFHLENBQUMsQ0FBQztRQUUxQixhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDckMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHdDQUF3QyxDQUM5RCxvQkFBb0IsRUFDcEIsWUFBWSxDQUNiLENBQUM7WUFFRixpQkFBaUIsSUFBSSxVQUFVLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGlCQUFpQixLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8sc0JBQXNCLENBQzVCLFlBQWlDLEVBQ2pDLGFBRTRCO1FBRTVCLE1BQU0sb0JBQW9CLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsQ0FDbkIsQ0FBQztRQUVGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyx3Q0FBd0MsQ0FDOUQsb0JBQW9CLEVBQ3BCLFlBQVksQ0FDYixDQUFDO1FBRUYsT0FBTyxVQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTyx3Q0FBd0MsQ0FDOUMsb0JBQTRDLEVBQzVDLE1BQTJCO1FBRTNCLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDLE1BQU0sQ0FDN0MsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FDN0IsQ0FBQztRQUNGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN6RSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRXRFLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FDN0MsQ0FBQztRQUNGLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQy9DLENBQUM7UUFFRixPQUFPLGdCQUFnQixDQUFDLE1BQU0sQ0FBQztJQUNqQyxDQUFDO0lBRU8sb0JBQW9CLENBQzFCLElBQVcsRUFDWCxPQUErQjtRQUUvQixNQUFNLFdBQVcsR0FBRyxPQUFPO2FBQ3hCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUM7YUFDL0IsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFcEMsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDOzhHQXpGVSx1QkFBdUI7a0hBQXZCLHVCQUF1QixjQURWLE1BQU07OzJGQUNuQix1QkFBdUI7a0JBRG5DLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9sb2dnaW5nL2xvZ2dlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3BlbklkQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL29wZW5pZC1jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgTGV2ZWwsIFJ1bGVWYWxpZGF0aW9uUmVzdWx0IH0gZnJvbSAnLi9ydWxlJztcclxuaW1wb3J0IHsgYWxsTXVsdGlwbGVDb25maWdSdWxlcywgYWxsUnVsZXMgfSBmcm9tICcuL3J1bGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBDb25maWdWYWxpZGF0aW9uU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXJTZXJ2aWNlID0gaW5qZWN0KExvZ2dlclNlcnZpY2UpO1xyXG5cclxuICB2YWxpZGF0ZUNvbmZpZ3MocGFzc2VkQ29uZmlnczogT3BlbklkQ29uZmlndXJhdGlvbltdKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUNvbmZpZ3NJbnRlcm5hbChcclxuICAgICAgcGFzc2VkQ29uZmlncyA/PyBbXSxcclxuICAgICAgYWxsTXVsdGlwbGVDb25maWdSdWxlc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlQ29uZmlnKHBhc3NlZENvbmZpZzogT3BlbklkQ29uZmlndXJhdGlvbik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGVDb25maWdJbnRlcm5hbChwYXNzZWRDb25maWcsIGFsbFJ1bGVzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmFsaWRhdGVDb25maWdzSW50ZXJuYWwoXHJcbiAgICBwYXNzZWRDb25maWdzOiBPcGVuSWRDb25maWd1cmF0aW9uW10sXHJcbiAgICBhbGxSdWxlc1RvVXNlOiAoKFxyXG4gICAgICBwYXNzZWRDb25maWc6IE9wZW5JZENvbmZpZ3VyYXRpb25bXVxyXG4gICAgKSA9PiBSdWxlVmFsaWRhdGlvblJlc3VsdClbXVxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHBhc3NlZENvbmZpZ3MubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBhbGxWYWxpZGF0aW9uUmVzdWx0cyA9IGFsbFJ1bGVzVG9Vc2UubWFwKChydWxlKSA9PlxyXG4gICAgICBydWxlKHBhc3NlZENvbmZpZ3MpXHJcbiAgICApO1xyXG5cclxuICAgIGxldCBvdmVyYWxsRXJyb3JDb3VudCA9IDA7XHJcblxyXG4gICAgcGFzc2VkQ29uZmlncy5mb3JFYWNoKChwYXNzZWRDb25maWcpID0+IHtcclxuICAgICAgY29uc3QgZXJyb3JDb3VudCA9IHRoaXMucHJvY2Vzc1ZhbGlkYXRpb25SZXN1bHRzQW5kR2V0RXJyb3JDb3VudChcclxuICAgICAgICBhbGxWYWxpZGF0aW9uUmVzdWx0cyxcclxuICAgICAgICBwYXNzZWRDb25maWdcclxuICAgICAgKTtcclxuXHJcbiAgICAgIG92ZXJhbGxFcnJvckNvdW50ICs9IGVycm9yQ291bnQ7XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gb3ZlcmFsbEVycm9yQ291bnQgPT09IDA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHZhbGlkYXRlQ29uZmlnSW50ZXJuYWwoXHJcbiAgICBwYXNzZWRDb25maWc6IE9wZW5JZENvbmZpZ3VyYXRpb24sXHJcbiAgICBhbGxSdWxlc1RvVXNlOiAoKFxyXG4gICAgICBwYXNzZWRDb25maWc6IE9wZW5JZENvbmZpZ3VyYXRpb25cclxuICAgICkgPT4gUnVsZVZhbGlkYXRpb25SZXN1bHQpW11cclxuICApOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGFsbFZhbGlkYXRpb25SZXN1bHRzID0gYWxsUnVsZXNUb1VzZS5tYXAoKHJ1bGUpID0+XHJcbiAgICAgIHJ1bGUocGFzc2VkQ29uZmlnKVxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBlcnJvckNvdW50ID0gdGhpcy5wcm9jZXNzVmFsaWRhdGlvblJlc3VsdHNBbmRHZXRFcnJvckNvdW50KFxyXG4gICAgICBhbGxWYWxpZGF0aW9uUmVzdWx0cyxcclxuICAgICAgcGFzc2VkQ29uZmlnXHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiBlcnJvckNvdW50ID09PSAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcm9jZXNzVmFsaWRhdGlvblJlc3VsdHNBbmRHZXRFcnJvckNvdW50KFxyXG4gICAgYWxsVmFsaWRhdGlvblJlc3VsdHM6IFJ1bGVWYWxpZGF0aW9uUmVzdWx0W10sXHJcbiAgICBjb25maWc6IE9wZW5JZENvbmZpZ3VyYXRpb25cclxuICApOiBudW1iZXIge1xyXG4gICAgY29uc3QgYWxsTWVzc2FnZXMgPSBhbGxWYWxpZGF0aW9uUmVzdWx0cy5maWx0ZXIoXHJcbiAgICAgICh4KSA9PiB4Lm1lc3NhZ2VzLmxlbmd0aCA+IDBcclxuICAgICk7XHJcbiAgICBjb25zdCBhbGxFcnJvck1lc3NhZ2VzID0gdGhpcy5nZXRBbGxNZXNzYWdlc09mVHlwZSgnZXJyb3InLCBhbGxNZXNzYWdlcyk7XHJcbiAgICBjb25zdCBhbGxXYXJuaW5ncyA9IHRoaXMuZ2V0QWxsTWVzc2FnZXNPZlR5cGUoJ3dhcm5pbmcnLCBhbGxNZXNzYWdlcyk7XHJcblxyXG4gICAgYWxsRXJyb3JNZXNzYWdlcy5mb3JFYWNoKChtZXNzYWdlKSA9PlxyXG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UubG9nRXJyb3IoY29uZmlnLCBtZXNzYWdlKVxyXG4gICAgKTtcclxuICAgIGFsbFdhcm5pbmdzLmZvckVhY2goKG1lc3NhZ2UpID0+XHJcbiAgICAgIHRoaXMubG9nZ2VyU2VydmljZS5sb2dXYXJuaW5nKGNvbmZpZywgbWVzc2FnZSlcclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIGFsbEVycm9yTWVzc2FnZXMubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRBbGxNZXNzYWdlc09mVHlwZShcclxuICAgIHR5cGU6IExldmVsLFxyXG4gICAgcmVzdWx0czogUnVsZVZhbGlkYXRpb25SZXN1bHRbXVxyXG4gICk6IHN0cmluZ1tdIHtcclxuICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gcmVzdWx0c1xyXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4LmxldmVsID09PSB0eXBlKVxyXG4gICAgICAubWFwKChyZXN1bHQpID0+IHJlc3VsdC5tZXNzYWdlcyk7XHJcblxyXG4gICAgcmV0dXJuIGFsbE1lc3NhZ2VzLnJlZHVjZSgoYWNjLCB2YWwpID0+IGFjYy5jb25jYXQodmFsKSwgW10pO1xyXG4gIH1cclxufVxyXG4iXX0=