added IDP hint

This commit is contained in:
Timo 2021-04-08 14:25:16 +03:00
parent 1f7226b215
commit 860675bef7
4 changed files with 8 additions and 2 deletions

View File

@ -8,6 +8,7 @@ import { version } from '../../../../../../package.json';
export enum AppConfigKey {
OAUTH_URL = 'OAUTH_URL',
OAUTH_CLIENT_ID = 'OAUTH_CLIENT_ID',
OAUTH_IDP_HINT = 'OAUTH_IDP_HINT',
API_URL = 'API_URL',
ADMIN_CONTACT_NAME = 'ADMIN_CONTACT_NAME',
ADMIN_CONTACT_URL = 'ADMIN_CONTACT_URL',

View File

@ -3,6 +3,7 @@ import { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/ro
import { KeycloakAuthGuard, KeycloakService } from 'keycloak-angular';
import { UserService } from '../../services/user.service';
import { AppLoadStateService } from '../../services/app-load-state.service';
import { AppConfigKey, AppConfigService } from '../app-config/app-config.service';
@Injectable({
providedIn: 'root'
@ -11,6 +12,7 @@ export class AuthGuard extends KeycloakAuthGuard {
constructor(
protected readonly _router: Router,
protected readonly _keycloak: KeycloakService,
private readonly _appConfigService: AppConfigService,
private readonly _appLoadStateService: AppLoadStateService,
private readonly _userService: UserService
) {
@ -20,6 +22,7 @@ export class AuthGuard extends KeycloakAuthGuard {
public async isAccessAllowed(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
if (!this.authenticated) {
await this._keycloak.login({
idpHint: this._appConfigService.getConfig(AppConfigKey.OAUTH_IDP_HINT, null),
redirectUri: window.location.origin + state.url
});
}

View File

@ -3,7 +3,7 @@ import { CommonModule } from '@angular/common';
import { HttpClientModule } from '@angular/common/http';
import { AppConfigModule } from '../app-config/app-config.module';
import { KeycloakAngularModule, KeycloakService } from 'keycloak-angular';
import { KeycloakAngularModule, KeycloakService, KeycloakOptions } from 'keycloak-angular';
import { AppConfigKey, AppConfigService } from '../app-config/app-config.service';
export function keycloakInitializer(keycloak: KeycloakService, appConfigService: AppConfigService) {
@ -16,7 +16,7 @@ export function keycloakInitializer(keycloak: KeycloakService, appConfigService:
url = url.replace(/\/$/, ''); // remove trailing slash
const realm = url.substring(url.lastIndexOf('/') + 1, url.length);
url = url.substr(0, url.lastIndexOf('/realms'));
const options: any = {
const options: KeycloakOptions = {
config: {
url: url,
realm: realm,

View File

@ -4,6 +4,7 @@ OAUTH_CLIENT_ID="${OAUTH_CLIENT_ID:-gin-client}"
OAUTH_URL="${OAUTH_URL:-https://keycloak-dev.iqser.cloud/auth/realms/dev}"
APP_NAME="${APP_NAME:-DDA-R}"
API_URL="${API_URL:-}"
OAUTH_IDP_HINT="${OAUTH_IDP_HINT:-}"
ADMIN_CONTACT_NAME="${ADMIN_CONTACT_NAME:-}"
ADMIN_CONTACT_URL="${ADMIN_CONTACT_URL:-}"
AUTO_READ_TIME="${AUTO_READ_TIME:-1.5}"
@ -21,6 +22,7 @@ LICENSE_EMAIL="${LICENSE_EMAIL:-license@iqser.com}"
echo '{
"OAUTH_CLIENT_ID":"'"$OAUTH_CLIENT_ID"'",
"OAUTH_URL":"'"$OAUTH_URL"'",
"OAUTH_URL":"'"$OAUTH_IDP_HINT"'",
"BACKEND_APP_VERSION":"'"$BACKEND_APP_VERSION"'",
"ADMIN_CONTACT_NAME":"'"$ADMIN_CONTACT_NAME"'",
"ADMIN_CONTACT_URL":"'"$ADMIN_CONTACT_URL"'",