/* * Copyright (c) 2022. Deutsche Telekom AG * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * SPDX-License-Identifier: Apache-2.0 */ import { Injectable } from '@angular/core'; import { AuthConfig, NullValidationHandler, OAuthService } from 'angular-oauth2-oidc'; @Injectable() export class AuthConfigService { constructor(private readonly oauthService: OAuthService, private readonly authConfig: AuthConfig) {} async initAuth(): Promise { return new Promise((resolveFn, rejectFn) => { // setup oauthService this.oauthService.configure(this.authConfig); this.oauthService.tokenValidationHandler = new NullValidationHandler(); this.oauthService.loadDiscoveryDocumentAndLogin().then(isLoggedIn => { if (isLoggedIn) { this.oauthService.setupAutomaticSilentRefresh(); resolveFn(); } else { this.oauthService.initImplicitFlow(); rejectFn(); } }).catch(() => { //@ts-ignore window.location.href = './keycloak-error.html' }); }); } }