From fec59d6e216154f81e4238dc23d0acbb938b5e91 Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Wed, 29 Sep 2021 12:15:41 +0300 Subject: [PATCH] fixed load env config --- apps/red-ui/src/app/modules/auth/auth.module.ts | 14 +++++++++++++- apps/red-ui/src/app/services/config.service.ts | 11 +++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/apps/red-ui/src/app/modules/auth/auth.module.ts b/apps/red-ui/src/app/modules/auth/auth.module.ts index 82a7335cf..38a01373e 100644 --- a/apps/red-ui/src/app/modules/auth/auth.module.ts +++ b/apps/red-ui/src/app/modules/auth/auth.module.ts @@ -8,6 +8,18 @@ import { BASE_HREF } from '../../tokens'; import { environment } from '@environments/environment'; export function keycloakInitializer(keycloakService: KeycloakService, configService: ConfigService, baseUrl: string): () => Promise { + return () => + configService + .loadAppConfig() + .toPromise() + .then(() => + keycloakService + .init(getKeycloakOptions(configService, baseUrl)) + .then(() => configureAutomaticRedirectToLoginScreen(keycloakService)) + ); +} + +function getKeycloakOptions(configService: ConfigService, baseUrl: string) { let url = configService.values.OAUTH_URL; url = url.replace(/\/$/, ''); // remove trailing slash const realm = url.substring(url.lastIndexOf('/') + 1, url.length); @@ -28,7 +40,7 @@ export function keycloakInitializer(keycloakService: KeycloakService, configServ }, enableBearerInterceptor: true }; - return () => keycloakService.init(options).then(() => configureAutomaticRedirectToLoginScreen(keycloakService)); + return options; } function configureAutomaticRedirectToLoginScreen(keyCloakService: KeycloakService) { diff --git a/apps/red-ui/src/app/services/config.service.ts b/apps/red-ui/src/app/services/config.service.ts index 1e3f9c4c7..50a7a06ff 100644 --- a/apps/red-ui/src/app/services/config.service.ts +++ b/apps/red-ui/src/app/services/config.service.ts @@ -4,6 +4,8 @@ import { Title } from '@angular/platform-browser'; import packageInfo from '../../../../../package.json'; import config from '../../assets/config/config.json'; import { CacheApiService, wipeCaches } from '@redaction/red-cache'; +import { Observable } from 'rxjs'; +import { tap } from 'rxjs/operators'; const version = packageInfo.version; @@ -21,6 +23,15 @@ export class ConfigService { this._checkFrontendVersion(); } + loadAppConfig(): Observable { + return this._httpClient.get('/assets/config/config.json').pipe( + tap(envConfig => { + console.log('[REDACTION] Started with config: ', envConfig); + this._values = envConfig; + }) + ); + } + private _checkFrontendVersion(): void { this._cacheApiService.getCachedValue('FRONTEND_APP_VERSION').then(async lastVersion => { console.log('[REDACTION] Last app version: ', lastVersion, ' current version ', version);