From 698180b5c31c61d266325a1237fa93867ffbc312 Mon Sep 17 00:00:00 2001 From: Dreamstar Enterprises <39380005+dreamstar-enterprises@users.noreply.github.com> Date: Sat, 28 Sep 2024 19:13:30 +0100 Subject: [PATCH] Delete Spring BFF/angular/7. security-module directory --- .../authentication.component.html | 9 -- .../authentication.component.scss | 0 .../authentication.component.spec.ts | 23 --- .../authentication.component.ts | 40 ----- .../home/home.component.html | 5 - .../home/home.component.scss | 0 .../home/home.component.spec.ts | 23 --- .../7. security-module/home/home.component.ts | 84 ----------- .../login/login.component.html | 37 ----- .../login/login.component.scss | 27 ---- .../login/login.component.spec.ts | 23 --- .../login/login.component.ts | 139 ------------------ .../logout/logout.component.html | 3 - .../logout/logout.component.scss | 0 .../logout/logout.component.spec.ts | 23 --- .../logout/logout.component.ts | 56 ------- .../navigation/navigation.component.html | 1 - .../navigation/navigation.component.scss | 0 .../navigation/navigation.component.spec.ts | 23 --- .../navigation/navigation.component.ts | 58 -------- 20 files changed, 574 deletions(-) delete mode 100644 Spring BFF/angular/7. security-module/authentication/authentication.component.html delete mode 100644 Spring BFF/angular/7. security-module/authentication/authentication.component.scss delete mode 100644 Spring BFF/angular/7. security-module/authentication/authentication.component.spec.ts delete mode 100644 Spring BFF/angular/7. security-module/authentication/authentication.component.ts delete mode 100644 Spring BFF/angular/7. security-module/home/home.component.html delete mode 100644 Spring BFF/angular/7. security-module/home/home.component.scss delete mode 100644 Spring BFF/angular/7. security-module/home/home.component.spec.ts delete mode 100644 Spring BFF/angular/7. security-module/home/home.component.ts delete mode 100644 Spring BFF/angular/7. security-module/login/login.component.html delete mode 100644 Spring BFF/angular/7. security-module/login/login.component.scss delete mode 100644 Spring BFF/angular/7. security-module/login/login.component.spec.ts delete mode 100644 Spring BFF/angular/7. security-module/login/login.component.ts delete mode 100644 Spring BFF/angular/7. security-module/logout/logout.component.html delete mode 100644 Spring BFF/angular/7. security-module/logout/logout.component.scss delete mode 100644 Spring BFF/angular/7. security-module/logout/logout.component.spec.ts delete mode 100644 Spring BFF/angular/7. security-module/logout/logout.component.ts delete mode 100644 Spring BFF/angular/7. security-module/navigation/navigation.component.html delete mode 100644 Spring BFF/angular/7. security-module/navigation/navigation.component.scss delete mode 100644 Spring BFF/angular/7. security-module/navigation/navigation.component.spec.ts delete mode 100644 Spring BFF/angular/7. security-module/navigation/navigation.component.ts diff --git a/Spring BFF/angular/7. security-module/authentication/authentication.component.html b/Spring BFF/angular/7. security-module/authentication/authentication.component.html deleted file mode 100644 index bbe81b9..0000000 --- a/Spring BFF/angular/7. security-module/authentication/authentication.component.html +++ /dev/null @@ -1,9 +0,0 @@ - -

Authenticated?: {{isAuthenticated}}

- @if(!isAuthenticated) { - - } - @if(isAuthenticated) { - - } -
diff --git a/Spring BFF/angular/7. security-module/authentication/authentication.component.scss b/Spring BFF/angular/7. security-module/authentication/authentication.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/Spring BFF/angular/7. security-module/authentication/authentication.component.spec.ts b/Spring BFF/angular/7. security-module/authentication/authentication.component.spec.ts deleted file mode 100644 index 2668ae8..0000000 --- a/Spring BFF/angular/7. security-module/authentication/authentication.component.spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { AuthenticationComponent } from './authentication.component'; - -describe('AuthenticationComponent', () => { - let component: AuthenticationComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [AuthenticationComponent] - }) - .compileComponents(); - - fixture = TestBed.createComponent(AuthenticationComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/Spring BFF/angular/7. security-module/authentication/authentication.component.ts b/Spring BFF/angular/7. security-module/authentication/authentication.component.ts deleted file mode 100644 index 4f9567b..0000000 --- a/Spring BFF/angular/7. security-module/authentication/authentication.component.ts +++ /dev/null @@ -1,40 +0,0 @@ -import {Component, inject} from '@angular/core'; -import {UserAuthService} from "../../services/authentication-service/authentication.service"; -import {LoginComponent} from "../login/login.component"; -import {LogoutComponent} from "../logout/logout.component"; - -/**********************************************************************************************************************/ -/***************************************************** COMPONENT ******************************************************/ -/**********************************************************************************************************************/ - -@Component({ - selector: 'app-authentication', - standalone: true, - imports: [ - LoginComponent, - LogoutComponent - ], - templateUrl: './authentication.component.html', - styleUrl: './authentication.component.scss' -}) -export class AuthenticationComponent { - -/**********************************************************************************************************************/ -/************************************************** STORES & SERVICES *************************************************/ -/**********************************************************************************************************************/ - - private user: UserAuthService = inject(UserAuthService) - -/**********************************************************************************************************************/ -/****************************************************** FUNCTIONS *****************************************************/ -/**********************************************************************************************************************/ - - get isAuthenticated(): boolean { - return this.user.current.isAuthenticated; - } - -} - -/**********************************************************************************************************************/ -/*************************************************** END OF ANGULAR ***************************************************/ -/**********************************************************************************************************************/ diff --git a/Spring BFF/angular/7. security-module/home/home.component.html b/Spring BFF/angular/7. security-module/home/home.component.html deleted file mode 100644 index d453441..0000000 --- a/Spring BFF/angular/7. security-module/home/home.component.html +++ /dev/null @@ -1,5 +0,0 @@ - -

{{ message }}

diff --git a/Spring BFF/angular/7. security-module/home/home.component.scss b/Spring BFF/angular/7. security-module/home/home.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/Spring BFF/angular/7. security-module/home/home.component.spec.ts b/Spring BFF/angular/7. security-module/home/home.component.spec.ts deleted file mode 100644 index 60c47c4..0000000 --- a/Spring BFF/angular/7. security-module/home/home.component.spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { HomeComponent } from './home.component'; - -describe('HomeComponent', () => { - let component: HomeComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [HomeComponent] - }) - .compileComponents(); - - fixture = TestBed.createComponent(HomeComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/Spring BFF/angular/7. security-module/home/home.component.ts b/Spring BFF/angular/7. security-module/home/home.component.ts deleted file mode 100644 index 1ce1d47..0000000 --- a/Spring BFF/angular/7. security-module/home/home.component.ts +++ /dev/null @@ -1,84 +0,0 @@ -/***** Angular Imports *****/ -import {Component, inject} from '@angular/core'; -import {HttpClient} from "@angular/common/http"; -/***** Services Imports *****/ -import { - User, - UserAuthService -} from "../../services/authentication-service/authentication.service"; -import {Subscription} from "rxjs"; -import {NavigationComponent} from "../navigation/navigation.component"; - -/**********************************************************************************************************************/ -/****************************************************** INTERFACE *****************************************************/ -/**********************************************************************************************************************/ - -// Define an interface for the greeting object -interface Greeting { - id: string; - content: string; -} - -/**********************************************************************************************************************/ -/***************************************************** COMPONENT ******************************************************/ -/**********************************************************************************************************************/ - -@Component({ - selector: 'app-home', - standalone: true, - imports: [ - NavigationComponent - ], - templateUrl: './home.component.html', - styleUrl: './home.component.scss' -}) -export class HomeComponent { - -/**********************************************************************************************************************/ -/************************************************** STORES & SERVICES *************************************************/ -/**********************************************************************************************************************/ - - private user: UserAuthService = inject(UserAuthService); - -/**********************************************************************************************************************/ -/***************************************************** PROPERTIES *****************************************************/ -/**********************************************************************************************************************/ - - /* data properties */ - protected message = ''; - - /* subscriptions */ - private userSubscription?: Subscription; - -/**********************************************************************************************************************/ -/************************************************** LIFE-CYCLE HOOKS **************************************************/ -/**********************************************************************************************************************/ - - protected ngOnInit(){ - this.userSubscription = this.user.valueChanges.subscribe((u) => { - this.message = u.isAuthenticated - ? `Hi ${u.name}, you are granted with ${HomeComponent.rolesStr(u)}.` - : 'You are not authenticated.'; - }); - } - - ngOnDestroy() { - this.userSubscription?.unsubscribe(); - } - -/**********************************************************************************************************************/ -/****************************************************** FUNCTIONS *****************************************************/ -/**********************************************************************************************************************/ - - static rolesStr(user: User) { - if(!user?.roles?.length) { - return '[]' - } - return `["${user.roles.join('", "')}"]` - } - -} - -/**********************************************************************************************************************/ -/*************************************************** END OF ANGULAR ***************************************************/ -/**********************************************************************************************************************/ diff --git a/Spring BFF/angular/7. security-module/login/login.component.html b/Spring BFF/angular/7. security-module/login/login.component.html deleted file mode 100644 index 992620e..0000000 --- a/Spring BFF/angular/7. security-module/login/login.component.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - diff --git a/Spring BFF/angular/7. security-module/login/login.component.scss b/Spring BFF/angular/7. security-module/login/login.component.scss deleted file mode 100644 index 6e9f3dd..0000000 --- a/Spring BFF/angular/7. security-module/login/login.component.scss +++ /dev/null @@ -1,27 +0,0 @@ -.modal-overlay { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.5); - display: flex; - justify-content: center; - align-items: center; - z-index: 9999; -} - -.modal { - background-color: #fff; - padding: 20px; - border-radius: 5px; - position: relative; - width: 100%; - max-width: 800px; -} - -.modal iframe { - width: 100%; - height: 600px; - border: none; -} diff --git a/Spring BFF/angular/7. security-module/login/login.component.spec.ts b/Spring BFF/angular/7. security-module/login/login.component.spec.ts deleted file mode 100644 index 1e19e5d..0000000 --- a/Spring BFF/angular/7. security-module/login/login.component.spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { LoginComponent } from './login.component'; - -describe('LoginComponent', () => { - let component: LoginComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [LoginComponent] - }) - .compileComponents(); - - fixture = TestBed.createComponent(LoginComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/Spring BFF/angular/7. security-module/login/login.component.ts b/Spring BFF/angular/7. security-module/login/login.component.ts deleted file mode 100644 index 21a89c8..0000000 --- a/Spring BFF/angular/7. security-module/login/login.component.ts +++ /dev/null @@ -1,139 +0,0 @@ -/***** Angular Imports *****/ -import {Component, inject} from '@angular/core'; -import {HttpClient} from "@angular/common/http"; -import {Router} from "@angular/router"; -import {FormControl, FormsModule, ReactiveFormsModule, Validators} from "@angular/forms"; -/***** Services Imports *****/ -import {UserAuthService} from "../../services/authentication-service/authentication.service"; -import {map, Observable} from "rxjs"; -import {DomSanitizer, SafeUrl} from "@angular/platform-browser"; -import {baseUri} from "../../../main"; - -/**********************************************************************************************************************/ -/****************************************************** INTERFACE *****************************************************/ -/**********************************************************************************************************************/ - -enum LoginExperience { - IFRAME, - DEFAULT, -} - -interface LoginOptionDto { - label: string; - loginUri: string; - isSameAuthority: boolean; -} - -function loginOptions(http: HttpClient): Observable> { - return http - .get('/bff/login-options') - .pipe(map((dto: any) => dto as LoginOptionDto[])); -} - -/**********************************************************************************************************************/ -/***************************************************** COMPONENT ******************************************************/ -/**********************************************************************************************************************/ - -@Component({ - selector: 'app-login', - standalone: true, - imports: [ - FormsModule, - ReactiveFormsModule - ], - templateUrl: './login.component.html', - styleUrl: './login.component.scss' -}) -export class LoginComponent { - -/**********************************************************************************************************************/ -/************************************************** STORES & SERVICES *************************************************/ -/**********************************************************************************************************************/ - - private http: HttpClient = inject(HttpClient); - private user: UserAuthService = inject(UserAuthService); - private router: Router = inject(Router) - private sanitizer: DomSanitizer = inject(DomSanitizer); - -/**********************************************************************************************************************/ -/***************************************************** PROPERTIES *****************************************************/ -/**********************************************************************************************************************/ - - protected isLoginModalDisplayed = false; - protected iframeSrc?: SafeUrl; - protected loginExperiences: LoginExperience[] = []; - protected selectedLoginExperience = new FormControl(null, [ - Validators.required, - ]); - private loginUri?: string; - -/**********************************************************************************************************************/ -/************************************************** LIFE-CYCLE HOOKS **************************************************/ -/**********************************************************************************************************************/ - - protected ngOnInit(){ - loginOptions(this.http).subscribe((opts) => { - if (opts.length) { - this.loginUri = opts[0].loginUri; - if (opts[0].isSameAuthority) { - this.loginExperiences.push(LoginExperience.IFRAME); - } - this.loginExperiences.push(LoginExperience.DEFAULT); - this.selectedLoginExperience.patchValue(this.loginExperiences[0]); - } - }); - } - -/**********************************************************************************************************************/ -/****************************************************** FUNCTIONS *****************************************************/ -/**********************************************************************************************************************/ - - protected get isLoginEnabled(): boolean { - return ( - this.selectedLoginExperience.valid && !this.user.current.isAuthenticated - ); - } - - protected get isAuthenticated(): boolean { - return this.user.current.isAuthenticated; - } - - protected login() { - if (!this.loginUri) { - return; - } - - const url = new URL(this.loginUri); - url.searchParams.append( - 'post_login_success_uri', - `${baseUri}${this.router.url}` - ); - url.searchParams.append( - 'post_login_failure_uri', - `${baseUri}login-error` - ); - const loginUrl = url.toString(); - - if (this.selectedLoginExperience.value === LoginExperience.IFRAME) { - this.iframeSrc = this.sanitizer.bypassSecurityTrustResourceUrl(loginUrl); - this.isLoginModalDisplayed = true; - } else { - window.location.href = loginUrl; - } - } - - protected onIframeLoad(event: any) { - if (!!event.currentTarget.src) { - this.user.refresh(); - this.isLoginModalDisplayed = !this.user.current.isAuthenticated; - } - } - - protected loginExperienceLabel(le: LoginExperience) { - return LoginExperience[le].toLowerCase() - } -} - -/**********************************************************************************************************************/ -/*************************************************** END OF ANGULAR ***************************************************/ -/**********************************************************************************************************************/ diff --git a/Spring BFF/angular/7. security-module/logout/logout.component.html b/Spring BFF/angular/7. security-module/logout/logout.component.html deleted file mode 100644 index c55dfbf..0000000 --- a/Spring BFF/angular/7. security-module/logout/logout.component.html +++ /dev/null @@ -1,3 +0,0 @@ -

logout component

- - diff --git a/Spring BFF/angular/7. security-module/logout/logout.component.scss b/Spring BFF/angular/7. security-module/logout/logout.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/Spring BFF/angular/7. security-module/logout/logout.component.spec.ts b/Spring BFF/angular/7. security-module/logout/logout.component.spec.ts deleted file mode 100644 index 3f5cd2f..0000000 --- a/Spring BFF/angular/7. security-module/logout/logout.component.spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { LogoutComponent } from './logout.component'; - -describe('LogoutComponent', () => { - let component: LogoutComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [LogoutComponent] - }) - .compileComponents(); - - fixture = TestBed.createComponent(LogoutComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/Spring BFF/angular/7. security-module/logout/logout.component.ts b/Spring BFF/angular/7. security-module/logout/logout.component.ts deleted file mode 100644 index a9037fe..0000000 --- a/Spring BFF/angular/7. security-module/logout/logout.component.ts +++ /dev/null @@ -1,56 +0,0 @@ -import {Component, inject} from '@angular/core'; -import {HttpClient} from "@angular/common/http"; -import {UserAuthService} from "../../services/authentication-service/authentication.service"; -import {lastValueFrom} from "rxjs"; -import {baseUri} from "../../../main"; - -/**********************************************************************************************************************/ -/***************************************************** COMPONENT ******************************************************/ -/**********************************************************************************************************************/ - -@Component({ - selector: 'app-logout', - standalone: true, - imports: [], - templateUrl: './logout.component.html', - styleUrl: './logout.component.scss' -}) -export class LogoutComponent { - -/**********************************************************************************************************************/ -/************************************************** STORES & SERVICES *************************************************/ -/**********************************************************************************************************************/ - - private http: HttpClient = inject(HttpClient); - private user: UserAuthService = inject(UserAuthService); - -/**********************************************************************************************************************/ -/****************************************************** FUNCTIONS *****************************************************/ -/**********************************************************************************************************************/ - - protected logout() { - lastValueFrom( - this.http.post('/bff/logout', null, { - headers: { - 'X-POST-LOGOUT-SUCCESS-URI': baseUri, - }, - observe: 'response', - }) - ) - .then((resp) => { - const logoutUri = resp.headers.get('Location'); - if (!!logoutUri) { - window.location.href = logoutUri; - } - }) - .finally(() => { - this.user.refresh(); - }); - } - -} - -/**********************************************************************************************************************/ -/*************************************************** END OF ANGULAR ***************************************************/ -/**********************************************************************************************************************/ - diff --git a/Spring BFF/angular/7. security-module/navigation/navigation.component.html b/Spring BFF/angular/7. security-module/navigation/navigation.component.html deleted file mode 100644 index b9c525e..0000000 --- a/Spring BFF/angular/7. security-module/navigation/navigation.component.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/Spring BFF/angular/7. security-module/navigation/navigation.component.scss b/Spring BFF/angular/7. security-module/navigation/navigation.component.scss deleted file mode 100644 index e69de29..0000000 diff --git a/Spring BFF/angular/7. security-module/navigation/navigation.component.spec.ts b/Spring BFF/angular/7. security-module/navigation/navigation.component.spec.ts deleted file mode 100644 index 03c173c..0000000 --- a/Spring BFF/angular/7. security-module/navigation/navigation.component.spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; - -import { NavigationComponent } from './navigation.component'; - -describe('NavigationComponent', () => { - let component: NavigationComponent; - let fixture: ComponentFixture; - - beforeEach(async () => { - await TestBed.configureTestingModule({ - imports: [NavigationComponent] - }) - .compileComponents(); - - fixture = TestBed.createComponent(NavigationComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/Spring BFF/angular/7. security-module/navigation/navigation.component.ts b/Spring BFF/angular/7. security-module/navigation/navigation.component.ts deleted file mode 100644 index 1baf234..0000000 --- a/Spring BFF/angular/7. security-module/navigation/navigation.component.ts +++ /dev/null @@ -1,58 +0,0 @@ -import {Component, inject, Input} from '@angular/core'; -import {Router} from "@angular/router"; -import {Subscription} from "rxjs"; - -/**********************************************************************************************************************/ -/***************************************************** COMPONENT ******************************************************/ -/**********************************************************************************************************************/ - -@Component({ - selector: 'app-navigation', - standalone: true, - imports: [], - templateUrl: './navigation.component.html', - styleUrl: './navigation.component.scss' -}) -export class NavigationComponent { - -/**********************************************************************************************************************/ -/************************************************** STORES & SERVICES *************************************************/ -/**********************************************************************************************************************/ - - private router: Router = inject(Router) - -/**********************************************************************************************************************/ -/***************************************************** PROPERTIES *****************************************************/ -/**********************************************************************************************************************/ - - @Input() - label!: string; - - @Input() - destination!: string[]; - - /* subscriptions */ - private userSubscription?: Subscription; - -/**********************************************************************************************************************/ -/************************************************** LIFE-CYCLE HOOKS **************************************************/ -/**********************************************************************************************************************/ - - ngOnDestroy() { - this.userSubscription?.unsubscribe(); - } - -/**********************************************************************************************************************/ -/****************************************************** FUNCTIONS *****************************************************/ -/**********************************************************************************************************************/ - - navigate() { - this.router.navigate(this.destination); - } - -} - -/**********************************************************************************************************************/ -/*************************************************** END OF ANGULAR ***************************************************/ -/**********************************************************************************************************************/ -