This commit is contained in:
2024-09-11 16:51:42 +02:00
parent 8a7e26d2b6
commit 60866473f7
15 changed files with 135 additions and 117 deletions

View File

@@ -1,4 +1,4 @@
import { APP_INITIALIZER, ApplicationConfig } from '@angular/core';
import { APP_INITIALIZER, ApplicationConfig, ErrorHandler } from '@angular/core';
import { provideRouter, withEnabledBlockingInitialNavigation, withInMemoryScrolling } from '@angular/router';
import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
@@ -9,11 +9,10 @@ import { provideQuillConfig } from 'ngx-quill';
import { provideShareButtonsOptions, SharerMethods, withConfig } from 'ngx-sharebuttons';
import { shareIcons } from 'ngx-sharebuttons/icons';
import { provideNgxStripe } from 'ngx-stripe';
import { environment } from '../environments/environment';
import { customKeycloakAdapter } from '../keycloak';
import { routes } from './app.routes';
import { LoadingInterceptor } from './interceptors/loading.interceptor';
import { TimeoutInterceptor } from './interceptors/timeout.interceptor';
import { GlobalErrorHandler } from './services/globalErrorHandler';
import { KeycloakInitializerService } from './services/keycloak-initializer.service';
import { SelectOptionsService } from './services/select-options.service';
import { createLogger } from './utils/utils';
@@ -25,9 +24,9 @@ export const appConfig: ApplicationConfig = {
{ provide: KeycloakService },
{
provide: APP_INITIALIZER,
// useFactory: initializeKeycloak,
//useFactory: initializeKeycloak,
useFactory: initializeKeycloak3,
// useFactory: initializeKeycloak1,
//useFactory: initializeKeycloak2,
useFactory: initializeKeycloak,
multi: true,
//deps: [KeycloakService],
deps: [KeycloakInitializerService],
@@ -64,6 +63,7 @@ export const appConfig: ApplicationConfig = {
imageSize: 'cover',
} as GalleryConfig,
},
{ provide: ErrorHandler, useClass: GlobalErrorHandler }, // Registriere den globalen ErrorHandler
provideShareButtonsOptions(
shareIcons(),
withConfig({
@@ -100,47 +100,47 @@ function initServices(selectOptions: SelectOptionsService) {
await selectOptions.init();
};
}
export function initializeKeycloak3(keycloak: KeycloakInitializerService) {
export function initializeKeycloak(keycloak: KeycloakInitializerService) {
return () => keycloak.initialize();
}
export function initializeKeycloak2(keycloak: KeycloakService): () => Promise<void> {
return async () => {
const { url, realm, clientId } = environment.keycloak;
const adapter = customKeycloakAdapter(() => keycloak.getKeycloakInstance(), {});
if (window.location.search.length > 0) {
sessionStorage.setItem('SEARCH', window.location.search);
}
const { host, hostname, href, origin, pathname, port, protocol, search } = window.location;
await keycloak.init({
config: { url, realm, clientId },
initOptions: {
onLoad: 'check-sso',
silentCheckSsoRedirectUri: window.location.hostname === 'localhost' ? `${window.location.origin}/assets/silent-check-sso.html` : `${window.location.origin}/dealerweb/assets/silent-check-sso.html`,
adapter,
redirectUri: `${origin}${pathname}`,
},
});
};
}
function initializeKeycloak(keycloak: KeycloakService) {
return async () => {
logger.info(`###>calling keycloakService init ...`);
const authenticated = await keycloak.init({
config: {
url: environment.keycloak.url,
realm: environment.keycloak.realm,
clientId: environment.keycloak.clientId,
},
initOptions: {
onLoad: 'check-sso',
silentCheckSsoRedirectUri: (<any>window).location.origin + '/assets/silent-check-sso.html',
},
bearerExcludedUrls: ['/assets'],
shouldUpdateToken(request) {
return !request.headers.get('token-update') === false;
},
});
logger.info(`+++>${authenticated}`);
};
}
// export function initializeKeycloak1(keycloak: KeycloakService): () => Promise<void> {
// return async () => {
// const { url, realm, clientId } = environment.keycloak;
// const adapter = customKeycloakAdapter(() => keycloak.getKeycloakInstance(), {});
// if (window.location.search.length > 0) {
// sessionStorage.setItem('SEARCH', window.location.search);
// }
// const { host, hostname, href, origin, pathname, port, protocol, search } = window.location;
// await keycloak.init({
// config: { url, realm, clientId },
// initOptions: {
// onLoad: 'check-sso',
// silentCheckSsoRedirectUri: window.location.hostname === 'localhost' ? `${window.location.origin}/assets/silent-check-sso.html` : `${window.location.origin}/dealerweb/assets/silent-check-sso.html`,
// adapter,
// redirectUri: `${origin}${pathname}`,
// },
// });
// };
// }
// function initializeKeycloak2(keycloak: KeycloakService) {
// return async () => {
// logger.info(`###>calling keycloakService init ...`);
// const authenticated = await keycloak.init({
// config: {
// url: environment.keycloak.url,
// realm: environment.keycloak.realm,
// clientId: environment.keycloak.clientId,
// },
// initOptions: {
// onLoad: 'check-sso',
// silentCheckSsoRedirectUri: (<any>window).location.origin + '/assets/silent-check-sso.html',
// },
// bearerExcludedUrls: ['/assets'],
// shouldUpdateToken(request) {
// return !request.headers.get('token-update') === false;
// },
// });
// logger.info(`+++>${authenticated}`);
// };
// }