You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dlab.apache.org by an...@apache.org on 2019/04/19 13:50:31 UTC
[incubator-dlab] 01/01: [DLAB-613][Azure][Data Lake]: fixed issue
with login
This is an automated email from the ASF dual-hosted git repository.
ankovalyshyn pushed a commit to branch DLAB-613
in repository https://gitbox.apache.org/repos/asf/incubator-dlab.git
commit 8ea57bec567008c58afac67444c6884e6ca0c0b7
Author: Andriana Kovalyshyn <An...@epam.com>
AuthorDate: Fri Apr 19 16:50:11 2019 +0300
[DLAB-613][Azure][Data Lake]: fixed issue with login
---
.../core/services/applicationSecurity.service.ts | 5 +----
.../src/app/core/services/authorization.guard.ts | 15 ++++++++++++---
.../src/app/core/services/checkParams.guard.ts | 21 +++++++++++----------
3 files changed, 24 insertions(+), 17 deletions(-)
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/applicationSecurity.service.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/applicationSecurity.service.ts
index 45afecc..00be650 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/applicationSecurity.service.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/applicationSecurity.service.ts
@@ -101,7 +101,6 @@ export class ApplicationSecurityService {
}
this.storage.destroyToken();
- this.appRoutingService.redirectToLoginPage();
return false;
}),
catchError(error => {
@@ -111,7 +110,6 @@ export class ApplicationSecurityService {
return observableOf(false);
}));
}
- this.appRoutingService.redirectToLoginPage();
this._loggedInStatus.next(false);
return observableOf(false);
}
@@ -142,8 +140,7 @@ export class ApplicationSecurityService {
if (DICTIONARY.cloud_provider === 'azure' && error && error.status === HTTP_STATUS_CODES.FORBIDDEN) {
window.location.href = error.headers.get('Location');
} else {
- const errObj = error.json();
- this.emmitMessage(errObj.message);
+ this.emmitMessage(error.message);
return observableOf(false);
}
}));
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/authorization.guard.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/authorization.guard.ts
index 64519e7..5d07d94 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/authorization.guard.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/authorization.guard.ts
@@ -18,14 +18,23 @@
*/
import { Injectable } from '@angular/core';
-import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
+import { map } from 'rxjs/operators';
+import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';
import { ApplicationSecurityService } from './applicationSecurity.service';
@Injectable()
export class AuthorizationGuard implements CanActivate {
- constructor(private applicationSecurityService: ApplicationSecurityService) { }
+ constructor(
+ private applicationSecurityService: ApplicationSecurityService,
+ private router: Router
+ ) { }
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
- return this.applicationSecurityService.isLoggedIn();
+ return this.applicationSecurityService.isLoggedIn().pipe(
+ map(authState => {
+ if (!authState) this.router.navigate(['/login']);
+ return !!authState;
+ })
+ );
}
}
diff --git a/services/self-service/src/main/resources/webapp/src/app/core/services/checkParams.guard.ts b/services/self-service/src/main/resources/webapp/src/app/core/services/checkParams.guard.ts
index f294e35..87c4bb2 100644
--- a/services/self-service/src/main/resources/webapp/src/app/core/services/checkParams.guard.ts
+++ b/services/self-service/src/main/resources/webapp/src/app/core/services/checkParams.guard.ts
@@ -18,7 +18,9 @@
*/
import { Injectable } from '@angular/core';
-import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
+import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';
+import { Observable } from 'rxjs';
+import { map } from 'rxjs/operators';
import { ApplicationSecurityService } from './applicationSecurity.service';
import { AuthorizationGuard } from './authorization.guard';
@@ -28,14 +30,13 @@ export class CheckParamsGuard implements CanActivate {
constructor(
private applicationSecurityService: ApplicationSecurityService,
- private _authGuard: AuthorizationGuard
+ private _authGuard: AuthorizationGuard,
+ private router: Router
) {}
- canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
- return this._authGuard
- .canActivate(next, state)
- .toPromise()
- .then((auth: boolean) => {
+ canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> | Promise<boolean> | boolean {
+ return this.applicationSecurityService.isLoggedIn().pipe(
+ map(authState => {
const search = document.URL.split('?')[1];
if (search && this.checkParamsCoincidence(search)) {
@@ -49,9 +50,9 @@ export class CheckParamsGuard implements CanActivate {
.redirectParams(this.result)
.toPromise();
}
-
- return Promise.resolve(!!auth);
- });
+ if (!authState) this.router.navigate(['/login']);
+ return !!authState;
+ }));
}
private checkParamsCoincidence(search): boolean {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@dlab.apache.org
For additional commands, e-mail: commits-help@dlab.apache.org