From fe8b1a1399f0ade2ad27e52720a1c69c0614dbbd Mon Sep 17 00:00:00 2001 From: Jan Klattenhoff Date: Wed, 18 Dec 2024 14:06:19 +0100 Subject: [PATCH 1/2] feat: add Keycloak authentication integration and guard --- bun.lockb | Bin 404415 -> 405333 bytes package.json | 1 + public/silent-check-sso.html | 3 ++ src/app/app.config.ts | 43 +++++++++++++++++- src/app/app.routes.ts | 7 +++ .../login-view/login-view.component.ts | 2 +- src/app/service/auth.service.ts | 42 +++++++++++++++++ 7 files changed, 95 insertions(+), 3 deletions(-) create mode 100644 public/silent-check-sso.html create mode 100644 src/app/service/auth.service.ts diff --git a/bun.lockb b/bun.lockb index a4ad67b2b8169170d52f29398ba50d60df8aabae..6fd82b0fc061f925fc26bd880001cc97d81384cd 100755 GIT binary patch delta 81039 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 diff --git a/package.json b/package.json index 232ef91..f1859dd 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "@angular/platform-browser-dynamic": "^18.2.0", "@angular/router": "^18.2.0", "bootstrap": "^5.3.3", + "keycloak-angular": "^16.1.0", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.14.10" diff --git a/public/silent-check-sso.html b/public/silent-check-sso.html new file mode 100644 index 0000000..75b40d3 --- /dev/null +++ b/public/silent-check-sso.html @@ -0,0 +1,3 @@ + +

balls

+ diff --git a/src/app/app.config.ts b/src/app/app.config.ts index a1e7d6f..b047b4b 100644 --- a/src/app/app.config.ts +++ b/src/app/app.config.ts @@ -1,8 +1,47 @@ -import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; +import { APP_INITIALIZER, ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; import { provideRouter } from '@angular/router'; import { routes } from './app.routes'; +import {KeycloakAngularModule, KeycloakBearerInterceptor, KeycloakService} from "keycloak-angular"; +import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http'; + +export const initializeKeycloak = (keycloak: KeycloakService) => async () => + keycloak.init({ + config: { + url: 'https://keycloak.szut.dev/auth', + realm: 'szut', + clientId: 'employee-management-service-frontend', + }, + loadUserProfileAtStartUp: true, + initOptions: { + onLoad: 'check-sso', + silentCheckSsoRedirectUri: + window.location.origin + '/silent-check-sso.html', + checkLoginIframe: false, + redirectUri: 'http://localhost:4200', + }, + }); + +function initializeApp(keycloak: KeycloakService): () => Promise { + return () => initializeKeycloak(keycloak)(); +} export const appConfig: ApplicationConfig = { - providers: [provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes)] + providers: [ + provideRouter(routes), + KeycloakAngularModule, + { + provide: APP_INITIALIZER, + useFactory: initializeApp, + multi: true, + deps: [KeycloakService] + }, + KeycloakService, + provideHttpClient(withInterceptorsFromDi()), + { + provide: HTTP_INTERCEPTORS, + useClass: KeycloakBearerInterceptor, + multi: true + } + ] }; diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index ae2c715..7f0657d 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -3,6 +3,8 @@ import { LoginViewComponent } from './components/login-view/login-view.component import { MitarbeiterverwaltungViewComponent } from './components/mitarbeiterverwaltung-view/mitarbeiterverwaltung-view.component'; import { EmployeeDetailComponent } from './components/employee-detail/employee-detail.component'; import { QualifikatonBearbeitenViewComponent } from './components/qualifikaton-bearbeiten-view/qualifikaton-bearbeiten-view.component'; +import { KeycloakAuthGuard } from 'keycloak-angular'; +import { AuthGuard } from './service/auth.service'; export const routes: Routes = [ { @@ -12,6 +14,7 @@ export const routes: Routes = [ { path: "mitarbeiter", component: MitarbeiterverwaltungViewComponent, + canActivate: [AuthGuard], }, { path: "mitarbeiterdetails", @@ -20,5 +23,9 @@ export const routes: Routes = [ { path: "qualifikationbearbeiten", component: QualifikatonBearbeitenViewComponent, + }, + { + path: "**", + redirectTo: '', } ]; diff --git a/src/app/components/login-view/login-view.component.ts b/src/app/components/login-view/login-view.component.ts index ffc3ab9..9e9655e 100644 --- a/src/app/components/login-view/login-view.component.ts +++ b/src/app/components/login-view/login-view.component.ts @@ -1,4 +1,5 @@ import { Component } from '@angular/core'; +import { KeycloakService } from 'keycloak-angular'; @Component({ selector: 'app-login-view', @@ -8,5 +9,4 @@ import { Component } from '@angular/core'; styleUrl: './login-view.component.css' }) export class LoginViewComponent { - } diff --git a/src/app/service/auth.service.ts b/src/app/service/auth.service.ts new file mode 100644 index 0000000..0179ce9 --- /dev/null +++ b/src/app/service/auth.service.ts @@ -0,0 +1,42 @@ +import { Injectable } from '@angular/core'; +import { + ActivatedRouteSnapshot, + Router, + RouterStateSnapshot +} from '@angular/router'; +import { KeycloakAuthGuard, KeycloakService } from 'keycloak-angular'; + +@Injectable({ + providedIn: 'root' +}) +export class AuthGuard extends KeycloakAuthGuard { + constructor( + protected override readonly router: Router, + protected readonly keycloak: KeycloakService + ) { + super(router, keycloak); + } + + public async isAccessAllowed( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot + ) { + // Force the user to log in if currently unauthenticated. + if (!this.authenticated) { + await this.keycloak.login({ + redirectUri: window.location.origin + state.url + }); + } + + // Get the roles required from the route. + const requiredRoles = route.data['roles']; + + // Allow the user to proceed if no additional roles are required to access the route. + if (!Array.isArray(requiredRoles) || requiredRoles.length === 0) { + return true; + } + + // Allow the user to proceed if all the required roles are present. + return requiredRoles.every((role) => this.roles.includes(role)); + } +} From 5f5cc6a2550d7b808488fd1de176bc25ec8b417f Mon Sep 17 00:00:00 2001 From: Renovate Date: Wed, 8 Jan 2025 09:02:17 +0000 Subject: [PATCH 2/2] chore(deps): update devdependencies (non-major) --- bun.lockb | Bin 405333 -> 406025 bytes package.json | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bun.lockb b/bun.lockb index 6fd82b0fc061f925fc26bd880001cc97d81384cd..a0d115f3f947b96e5b9cb3e7b5950f4e42253e92 100755 GIT binary patch delta 40142 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

=NSm7OSIc>!cs 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 PUa2=I<|k*pX diff --git a/package.json b/package.json index f1859dd..c62d2a6 100644 --- a/package.json +++ b/package.json @@ -29,12 +29,12 @@ "@angular/cli": "^18.2.0", "@angular/compiler-cli": "^18.2.0", "@types/jasmine": "~5.1.0", - "jasmine-core": "~5.2.0", + "jasmine-core": "~5.5.0", "karma": "~6.4.0", "karma-chrome-launcher": "~3.2.0", "karma-coverage": "~2.2.0", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "~2.1.0", - "typescript": "~5.5.2" + "typescript": "~5.7.0" } }