@dsivd/prestations-ng 15.2.3-beta3 → 15.2.3-beta6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -37,8 +37,7 @@ A change is considered **breaking** if you have to change your code or update yo
37
37
  ### Fixed
38
38
 
39
39
  - [redirect.component.ts](projects/prestations-ng/src/sdk-redirect/redirect.component.ts)
40
- - redirect to cyberlogin instead of `/iam/accueil` when session has expired
41
- - if used in a BO, you should set the property `application-info.portail.cyberLoginUrl=/iam/accueil`
40
+ - reload page instead of redirecting to `/iam/accueil` when session has expired
42
41
 
43
42
  ### Removed
44
43
 
@@ -1,11 +1,26 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Subject, throwError as observableThrowError } from 'rxjs';
2
+ import { Subject, throwError } from 'rxjs';
3
3
  import { Injectable } from '@angular/core';
4
4
  import { HttpErrorResponse, HttpResponse } from '@angular/common/http';
5
5
  import { catchError, map } from 'rxjs/operators';
6
6
  import * as i0 from "@angular/core";
7
7
  const IAM_SESSION_EXPIRED_HEADER = 'iam-session-expired';
8
- const LOGIN_PATH = '/100018/login';
8
+ const CYBER_LOGIN_PATH = '/100018/login';
9
+ const PORTAIL_IAM_ACV_EXTRA_PATH = 'portail.vd.ch:443/iamlogin';
10
+ const PORTAIL_IAM_ACV_INTRA_PATH = 'portail.etat-de-vaud.ch:443/iamlogin';
11
+ const isIamExpiredHeader = (event) => !!event.headers.get(IAM_SESSION_EXPIRED_HEADER);
12
+ const isRedirectionToIamACV = (event) => {
13
+ const isRedirection = event.status === 302 /* Found */;
14
+ const location = event.headers.get('Location');
15
+ return (isRedirection &&
16
+ (location?.includes(PORTAIL_IAM_ACV_EXTRA_PATH) ||
17
+ location?.includes(PORTAIL_IAM_ACV_INTRA_PATH)));
18
+ };
19
+ const isRedirectionToCyberLogin = (event) => {
20
+ const isRedirection = event.status === 302 /* Found */;
21
+ const location = event.headers.get('Location');
22
+ return isRedirection && location?.includes(CYBER_LOGIN_PATH);
23
+ };
9
24
  export class IamExpiredInterceptorService {
10
25
  constructor() {
11
26
  this._iamExpirationHeaderPresence = new Subject();
@@ -15,10 +30,11 @@ export class IamExpiredInterceptorService {
15
30
  }
16
31
  intercept(req, next) {
17
32
  return next.handle(req).pipe(map(event => {
33
+ console.log('event', event);
18
34
  if (event instanceof HttpResponse) {
19
- // either we have the header 'iam-session-expired'
20
- const iamExpiredHeader = event.headers.get(IAM_SESSION_EXPIRED_HEADER);
21
- if (null !== iamExpiredHeader) {
35
+ if (isIamExpiredHeader(event) ||
36
+ isRedirectionToIamACV(event) ||
37
+ isRedirectionToCyberLogin(event)) {
22
38
  this._iamExpirationHeaderPresence.next(true);
23
39
  }
24
40
  }
@@ -28,13 +44,13 @@ export class IamExpiredInterceptorService {
28
44
  handleError(err) {
29
45
  if (err instanceof HttpErrorResponse) {
30
46
  if (err.status === 200) {
31
- const isLogin = err.url.indexOf(LOGIN_PATH) > 0;
47
+ const isLogin = err.url.indexOf(CYBER_LOGIN_PATH) > 0;
32
48
  if (isLogin) {
33
49
  this._iamExpirationHeaderPresence.next(true);
34
50
  }
35
51
  }
36
52
  }
37
- return observableThrowError(err);
53
+ return throwError(err);
38
54
  }
39
55
  }
40
56
  IamExpiredInterceptorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: IamExpiredInterceptorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
@@ -45,4 +61,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImpor
45
61
  providedIn: 'root'
46
62
  }]
47
63
  }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLWV4cGlyZWQtaW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstcmVkaXJlY3QvaWFtLWV4cGlyZWQtaW50ZXJjZXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFjLE9BQU8sRUFBRSxVQUFVLElBQUksb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsaUJBQWlCLEVBS2pCLFlBQVksRUFDZixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRWpELE1BQU0sMEJBQTBCLEdBQUcscUJBQXFCLENBQUM7QUFDekQsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDO0FBS25DLE1BQU0sT0FBTyw0QkFBNEI7SUFIekM7UUFJWSxpQ0FBNEIsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztLQTBDbkY7SUF4Q0csSUFBSSwyQkFBMkI7UUFDM0IsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVELFNBQVMsQ0FDTCxHQUFxQixFQUNyQixJQUFpQjtRQUVqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUN4QixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDUixJQUFJLEtBQUssWUFBWSxZQUFZLEVBQUU7Z0JBQy9CLGtEQUFrRDtnQkFDbEQsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FDdEMsMEJBQTBCLENBQzdCLENBQUM7Z0JBQ0YsSUFBSSxJQUFJLEtBQUssZ0JBQWdCLEVBQUU7b0JBQzNCLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ2hEO2FBQ0o7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDMUMsQ0FBQztJQUNOLENBQUM7SUFFTyxXQUFXLENBQ2YsR0FBdUM7UUFFdkMsSUFBSSxHQUFHLFlBQVksaUJBQWlCLEVBQUU7WUFDbEMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRTtnQkFDcEIsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLE9BQU8sRUFBRTtvQkFDVCxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNoRDthQUNKO1NBQ0o7UUFFRCxPQUFPLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7O3lIQTFDUSw0QkFBNEI7NkhBQTVCLDRCQUE0QixjQUZ6QixNQUFNOzJGQUVULDRCQUE0QjtrQkFIeEMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0aHJvd0Vycm9yIGFzIG9ic2VydmFibGVUaHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEh0dHBFcnJvclJlc3BvbnNlLFxuICAgIEh0dHBFdmVudCxcbiAgICBIdHRwSGFuZGxlcixcbiAgICBIdHRwSW50ZXJjZXB0b3IsXG4gICAgSHR0cFJlcXVlc3QsXG4gICAgSHR0cFJlc3BvbnNlXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuY29uc3QgSUFNX1NFU1NJT05fRVhQSVJFRF9IRUFERVIgPSAnaWFtLXNlc3Npb24tZXhwaXJlZCc7XG5jb25zdCBMT0dJTl9QQVRIID0gJy8xMDAwMTgvbG9naW4nO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIElhbUV4cGlyZWRJbnRlcmNlcHRvclNlcnZpY2UgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuICAgIHByaXZhdGUgX2lhbUV4cGlyYXRpb25IZWFkZXJQcmVzZW5jZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBnZXQgaWFtRXhwaXJhdGlvbkhlYWRlclByZXNlbmNlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faWFtRXhwaXJhdGlvbkhlYWRlclByZXNlbmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGludGVyY2VwdChcbiAgICAgICAgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxuICAgICAgICBuZXh0OiBIdHRwSGFuZGxlclxuICAgICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4gfCBhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSkucGlwZShcbiAgICAgICAgICAgIG1hcChldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGVpdGhlciB3ZSBoYXZlIHRoZSBoZWFkZXIgJ2lhbS1zZXNzaW9uLWV4cGlyZWQnXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlhbUV4cGlyZWRIZWFkZXIgPSBldmVudC5oZWFkZXJzLmdldChcbiAgICAgICAgICAgICAgICAgICAgICAgIElBTV9TRVNTSU9OX0VYUElSRURfSEVBREVSXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChudWxsICE9PSBpYW1FeHBpcmVkSGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pYW1FeHBpcmF0aW9uSGVhZGVyUHJlc2VuY2UubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBldmVudDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yLmJpbmQodGhpcykpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihcbiAgICAgICAgZXJyOiBIdHRwRXJyb3JSZXNwb25zZSB8IEh0dHBFdmVudDxhbnk+XG4gICAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgIGlmIChlcnIuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0xvZ2luID0gZXJyLnVybC5pbmRleE9mKExPR0lOX1BBVEgpID4gMDtcbiAgICAgICAgICAgICAgICBpZiAoaXNMb2dpbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pYW1FeHBpcmF0aW9uSGVhZGVyUHJlc2VuY2UubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZVRocm93RXJyb3IoZXJyKTtcbiAgICB9XG59XG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLWV4cGlyZWQtaW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstcmVkaXJlY3QvaWFtLWV4cGlyZWQtaW50ZXJjZXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFjLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsaUJBQWlCLEVBS2pCLFlBQVksRUFFZixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRWpELE1BQU0sMEJBQTBCLEdBQUcscUJBQXFCLENBQUM7QUFDekQsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7QUFDekMsTUFBTSwwQkFBMEIsR0FBRyw0QkFBNEIsQ0FBQztBQUNoRSxNQUFNLDBCQUEwQixHQUFHLHNDQUFzQyxDQUFDO0FBRTFFLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxLQUF3QixFQUFXLEVBQUUsQ0FDN0QsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFFcEQsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQXdCLEVBQVcsRUFBRTtJQUNoRSxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxvQkFBeUIsQ0FBQztJQUM1RCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQyxPQUFPLENBQ0gsYUFBYTtRQUNiLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQztZQUMzQyxRQUFRLEVBQUUsUUFBUSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FDdEQsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxLQUF3QixFQUFXLEVBQUU7SUFDcEUsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE1BQU0sb0JBQXlCLENBQUM7SUFDNUQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0MsT0FBTyxhQUFhLElBQUksUUFBUSxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ2pFLENBQUMsQ0FBQztBQUtGLE1BQU0sT0FBTyw0QkFBNEI7SUFIekM7UUFJWSxpQ0FBNEIsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztLQTJDbkY7SUF6Q0csSUFBSSwyQkFBMkI7UUFDM0IsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVELFNBQVMsQ0FDTCxHQUFxQixFQUNyQixJQUFpQjtRQUVqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUN4QixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDUixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM1QixJQUFJLEtBQUssWUFBWSxZQUFZLEVBQUU7Z0JBQy9CLElBQ0ksa0JBQWtCLENBQUMsS0FBSyxDQUFDO29CQUN6QixxQkFBcUIsQ0FBQyxLQUFLLENBQUM7b0JBQzVCLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxFQUNsQztvQkFDRSxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNoRDthQUNKO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzFDLENBQUM7SUFDTixDQUFDO0lBRU8sV0FBVyxDQUNmLEdBQXVDO1FBRXZDLElBQUksR0FBRyxZQUFZLGlCQUFpQixFQUFFO1lBQ2xDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7Z0JBQ3BCLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLE9BQU8sRUFBRTtvQkFDVCxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNoRDthQUNKO1NBQ0o7UUFFRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDOzt5SEEzQ1EsNEJBQTRCOzZIQUE1Qiw0QkFBNEIsY0FGekIsTUFBTTsyRkFFVCw0QkFBNEI7a0JBSHhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBIdHRwRXJyb3JSZXNwb25zZSxcbiAgICBIdHRwRXZlbnQsXG4gICAgSHR0cEhhbmRsZXIsXG4gICAgSHR0cEludGVyY2VwdG9yLFxuICAgIEh0dHBSZXF1ZXN0LFxuICAgIEh0dHBSZXNwb25zZSxcbiAgICBIdHRwU3RhdHVzQ29kZVxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IElBTV9TRVNTSU9OX0VYUElSRURfSEVBREVSID0gJ2lhbS1zZXNzaW9uLWV4cGlyZWQnO1xuY29uc3QgQ1lCRVJfTE9HSU5fUEFUSCA9ICcvMTAwMDE4L2xvZ2luJztcbmNvbnN0IFBPUlRBSUxfSUFNX0FDVl9FWFRSQV9QQVRIID0gJ3BvcnRhaWwudmQuY2g6NDQzL2lhbWxvZ2luJztcbmNvbnN0IFBPUlRBSUxfSUFNX0FDVl9JTlRSQV9QQVRIID0gJ3BvcnRhaWwuZXRhdC1kZS12YXVkLmNoOjQ0My9pYW1sb2dpbic7XG5cbmNvbnN0IGlzSWFtRXhwaXJlZEhlYWRlciA9IChldmVudDogSHR0cFJlc3BvbnNlPGFueT4pOiBib29sZWFuID0+XG4gICAgISFldmVudC5oZWFkZXJzLmdldChJQU1fU0VTU0lPTl9FWFBJUkVEX0hFQURFUik7XG5cbmNvbnN0IGlzUmVkaXJlY3Rpb25Ub0lhbUFDViA9IChldmVudDogSHR0cFJlc3BvbnNlPGFueT4pOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBpc1JlZGlyZWN0aW9uID0gZXZlbnQuc3RhdHVzID09PSBIdHRwU3RhdHVzQ29kZS5Gb3VuZDtcbiAgICBjb25zdCBsb2NhdGlvbiA9IGV2ZW50LmhlYWRlcnMuZ2V0KCdMb2NhdGlvbicpO1xuICAgIHJldHVybiAoXG4gICAgICAgIGlzUmVkaXJlY3Rpb24gJiZcbiAgICAgICAgKGxvY2F0aW9uPy5pbmNsdWRlcyhQT1JUQUlMX0lBTV9BQ1ZfRVhUUkFfUEFUSCkgfHxcbiAgICAgICAgICAgIGxvY2F0aW9uPy5pbmNsdWRlcyhQT1JUQUlMX0lBTV9BQ1ZfSU5UUkFfUEFUSCkpXG4gICAgKTtcbn07XG5cbmNvbnN0IGlzUmVkaXJlY3Rpb25Ub0N5YmVyTG9naW4gPSAoZXZlbnQ6IEh0dHBSZXNwb25zZTxhbnk+KTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgaXNSZWRpcmVjdGlvbiA9IGV2ZW50LnN0YXR1cyA9PT0gSHR0cFN0YXR1c0NvZGUuRm91bmQ7XG4gICAgY29uc3QgbG9jYXRpb24gPSBldmVudC5oZWFkZXJzLmdldCgnTG9jYXRpb24nKTtcbiAgICByZXR1cm4gaXNSZWRpcmVjdGlvbiAmJiBsb2NhdGlvbj8uaW5jbHVkZXMoQ1lCRVJfTE9HSU5fUEFUSCk7XG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIElhbUV4cGlyZWRJbnRlcmNlcHRvclNlcnZpY2UgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuICAgIHByaXZhdGUgX2lhbUV4cGlyYXRpb25IZWFkZXJQcmVzZW5jZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBnZXQgaWFtRXhwaXJhdGlvbkhlYWRlclByZXNlbmNlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faWFtRXhwaXJhdGlvbkhlYWRlclByZXNlbmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGludGVyY2VwdChcbiAgICAgICAgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxuICAgICAgICBuZXh0OiBIdHRwSGFuZGxlclxuICAgICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4gfCBhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSkucGlwZShcbiAgICAgICAgICAgIG1hcChldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2V2ZW50JywgZXZlbnQpO1xuICAgICAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0lhbUV4cGlyZWRIZWFkZXIoZXZlbnQpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1JlZGlyZWN0aW9uVG9JYW1BQ1YoZXZlbnQpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1JlZGlyZWN0aW9uVG9DeWJlckxvZ2luKGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2lhbUV4cGlyYXRpb25IZWFkZXJQcmVzZW5jZS5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IuYmluZCh0aGlzKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUVycm9yKFxuICAgICAgICBlcnI6IEh0dHBFcnJvclJlc3BvbnNlIHwgSHR0cEV2ZW50PGFueT5cbiAgICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgaWYgKGVyci5zdGF0dXMgPT09IDIwMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzTG9naW4gPSBlcnIudXJsLmluZGV4T2YoQ1lCRVJfTE9HSU5fUEFUSCkgPiAwO1xuICAgICAgICAgICAgICAgIGlmIChpc0xvZ2luKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lhbUV4cGlyYXRpb25IZWFkZXJQcmVzZW5jZS5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycik7XG4gICAgfVxufVxuIl19
@@ -1,47 +1,34 @@
1
1
  import { Component } from '@angular/core';
2
- import { first, tap } from 'rxjs/operators';
2
+ import { first } from 'rxjs/operators';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "./iam-expired-interceptor.service";
5
- import * as i2 from "../foehn-page/foehn-page-modal.service";
6
- import * as i3 from "../foehn-modal/foehn-modal.component";
5
+ import * as i2 from "../foehn-modal/foehn-modal.component";
7
6
  export class RedirectComponent {
8
- constructor(iamInterceptor, foehnPageModalService) {
7
+ constructor(iamInterceptor) {
9
8
  this.iamInterceptor = iamInterceptor;
10
- this.foehnPageModalService = foehnPageModalService;
11
- this.subscription = this.iamInterceptor.iamExpirationHeaderPresence.subscribe(() => this.showModal());
12
- }
13
- ngOnInit() {
14
9
  this.modalHeaderText = 'Information';
15
10
  this.modalBodyText = `<p>Votre session a expiré.</p>
16
11
  <p>Vous pouvez vous connecter à nouveau pour continuer à utiliser nos services.</p>`;
17
- }
18
- ngOnDestroy() {
19
- this.subscription.unsubscribe();
20
- }
21
- redirect() {
22
- this.foehnPageModalService
23
- .buildSelfRedirectionThroughCyberLogin()
24
- .pipe(first(), tap(redirectUrl => {
25
- window.location.href = redirectUrl;
26
- }))
27
- .subscribe();
12
+ this.iamInterceptor.iamExpirationHeaderPresence
13
+ .pipe(first())
14
+ .subscribe(() => this.showModal());
28
15
  }
29
16
  showModal() {
30
17
  this.counter = 10;
31
18
  this.isModalVisible = true;
32
19
  setInterval(() => {
33
20
  if (0 === this.counter) {
34
- this.redirect();
21
+ window.location.reload();
35
22
  return;
36
23
  }
37
24
  this.counter--;
38
25
  }, 1000);
39
26
  }
40
27
  }
41
- RedirectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RedirectComponent, deps: [{ token: i1.IamExpiredInterceptorService }, { token: i2.FoehnPageModalService }], target: i0.ɵɵFactoryTarget.Component });
42
- RedirectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.5", type: RedirectComponent, selector: "redirector", ngImport: i0, template: "<foehn-modal\n [modalBodyText]=\"modalBodyText\"\n [isModalVisible]=\"isModalVisible\"\n [modalHeaderText]=\"modalHeaderText\"\n [closeable]=\"false\"\n>\n <div modal-footer class=\"w-100 text-right font-weight-bold\">\n Vous allez \u00EAtre redirig\u00E9 dans {{ counter }} s.\n </div>\n</foehn-modal>\n", components: [{ type: i3.FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }] });
28
+ RedirectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RedirectComponent, deps: [{ token: i1.IamExpiredInterceptorService }], target: i0.ɵɵFactoryTarget.Component });
29
+ RedirectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.5", type: RedirectComponent, selector: "redirector", ngImport: i0, template: "<foehn-modal\n [modalBodyText]=\"modalBodyText\"\n [isModalVisible]=\"isModalVisible\"\n [modalHeaderText]=\"modalHeaderText\"\n [closeable]=\"false\"\n>\n <div modal-footer class=\"w-100 text-right font-weight-bold\">\n Vous allez \u00EAtre redirig\u00E9 dans {{ counter }} s.\n </div>\n</foehn-modal>\n", components: [{ type: i2.FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }] });
43
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RedirectComponent, decorators: [{
44
31
  type: Component,
45
32
  args: [{ selector: 'redirector', template: "<foehn-modal\n [modalBodyText]=\"modalBodyText\"\n [isModalVisible]=\"isModalVisible\"\n [modalHeaderText]=\"modalHeaderText\"\n [closeable]=\"false\"\n>\n <div modal-footer class=\"w-100 text-right font-weight-bold\">\n Vous allez \u00EAtre redirig\u00E9 dans {{ counter }} s.\n </div>\n</foehn-modal>\n" }]
46
- }], ctorParameters: function () { return [{ type: i1.IamExpiredInterceptorService }, { type: i2.FoehnPageModalService }]; } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1yZWRpcmVjdC9yZWRpcmVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLXJlZGlyZWN0L3JlZGlyZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBSTdELE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBTzVDLE1BQU0sT0FBTyxpQkFBaUI7SUFRMUIsWUFDWSxjQUE0QyxFQUM1QyxxQkFBNEM7UUFENUMsbUJBQWMsR0FBZCxjQUFjLENBQThCO1FBQzVDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFFcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLFNBQVMsQ0FDekUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUN6QixDQUFDO0lBQ04sQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsZUFBZSxHQUFHLGFBQWEsQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHO2dHQUNtRSxDQUFDO0lBQzdGLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU8sUUFBUTtRQUNaLElBQUksQ0FBQyxxQkFBcUI7YUFDckIscUNBQXFDLEVBQUU7YUFDdkMsSUFBSSxDQUNELEtBQUssRUFBRSxFQUNQLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNkLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLFdBQVcsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FDTDthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxTQUFTO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEIsT0FBTzthQUNWO1lBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ25CLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNiLENBQUM7OzhHQWpEUSxpQkFBaUI7a0dBQWpCLGlCQUFpQixrRENYOUIsMlVBVUE7MkZEQ2EsaUJBQWlCO2tCQUw3QixTQUFTOytCQUVJLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJYW1FeHBpcmVkSW50ZXJjZXB0b3JTZXJ2aWNlIH0gZnJvbSAnLi9pYW0tZXhwaXJlZC1pbnRlcmNlcHRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9laG5QYWdlTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tcGFnZS9mb2Vobi1wYWdlLW1vZGFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgZmlyc3QsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdyZWRpcmVjdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmVkaXJlY3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICAgIGlzTW9kYWxWaXNpYmxlOiBib29sZWFuO1xuICAgIG1vZGFsSGVhZGVyVGV4dDogc3RyaW5nO1xuICAgIG1vZGFsQm9keVRleHQ6IHN0cmluZztcbiAgICBjb3VudGVyOiBudW1iZXI7XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaWFtSW50ZXJjZXB0b3I6IElhbUV4cGlyZWRJbnRlcmNlcHRvclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZm9laG5QYWdlTW9kYWxTZXJ2aWNlOiBGb2VoblBhZ2VNb2RhbFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmlhbUludGVyY2VwdG9yLmlhbUV4cGlyYXRpb25IZWFkZXJQcmVzZW5jZS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoKSA9PiB0aGlzLnNob3dNb2RhbCgpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9kYWxIZWFkZXJUZXh0ID0gJ0luZm9ybWF0aW9uJztcbiAgICAgICAgdGhpcy5tb2RhbEJvZHlUZXh0ID0gYDxwPlZvdHJlIHNlc3Npb24gYSBleHBpcsOpLjwvcD5cbiAgICAgICAgICAgIDxwPlZvdXMgcG91dmV6IHZvdXMgY29ubmVjdGVyIMOgIG5vdXZlYXUgcG91ciBjb250aW51ZXIgw6AgdXRpbGlzZXIgbm9zIHNlcnZpY2VzLjwvcD5gO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVkaXJlY3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9laG5QYWdlTW9kYWxTZXJ2aWNlXG4gICAgICAgICAgICAuYnVpbGRTZWxmUmVkaXJlY3Rpb25UaHJvdWdoQ3liZXJMb2dpbigpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgICAgIHRhcChyZWRpcmVjdFVybCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcmVkaXJlY3RVcmw7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3dNb2RhbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb3VudGVyID0gMTA7XG4gICAgICAgIHRoaXMuaXNNb2RhbFZpc2libGUgPSB0cnVlO1xuICAgICAgICBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoMCA9PT0gdGhpcy5jb3VudGVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWRpcmVjdCgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY291bnRlci0tO1xuICAgICAgICB9LCAxMDAwKTtcbiAgICB9XG59XG4iLCI8Zm9laG4tbW9kYWxcbiAgICBbbW9kYWxCb2R5VGV4dF09XCJtb2RhbEJvZHlUZXh0XCJcbiAgICBbaXNNb2RhbFZpc2libGVdPVwiaXNNb2RhbFZpc2libGVcIlxuICAgIFttb2RhbEhlYWRlclRleHRdPVwibW9kYWxIZWFkZXJUZXh0XCJcbiAgICBbY2xvc2VhYmxlXT1cImZhbHNlXCJcbj5cbiAgICA8ZGl2IG1vZGFsLWZvb3RlciBjbGFzcz1cInctMTAwIHRleHQtcmlnaHQgZm9udC13ZWlnaHQtYm9sZFwiPlxuICAgICAgICBWb3VzIGFsbGV6IMOqdHJlIHJlZGlyaWfDqSBkYW5zIHt7IGNvdW50ZXIgfX0gcy5cbiAgICA8L2Rpdj5cbjwvZm9laG4tbW9kYWw+XG4iXX0=
33
+ }], ctorParameters: function () { return [{ type: i1.IamExpiredInterceptorService }]; } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1yZWRpcmVjdC9yZWRpcmVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLXJlZGlyZWN0L3JlZGlyZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBT3ZDLE1BQU0sT0FBTyxpQkFBaUI7SUFRMUIsWUFBb0IsY0FBNEM7UUFBNUMsbUJBQWMsR0FBZCxjQUFjLENBQThCO1FBUHZELG9CQUFlLEdBQUcsYUFBYSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUc7Z0dBQ21FLENBQUM7UUFNekYsSUFBSSxDQUFDLGNBQWMsQ0FBQywyQkFBMkI7YUFDMUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2IsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyxTQUFTO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ3BCLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLE9BQU87YUFDVjtZQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDYixDQUFDOzs4R0F4QlEsaUJBQWlCO2tHQUFqQixpQkFBaUIsa0RDVDlCLDJVQVVBOzJGRERhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFFSSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJYW1FeHBpcmVkSW50ZXJjZXB0b3JTZXJ2aWNlIH0gZnJvbSAnLi9pYW0tZXhwaXJlZC1pbnRlcmNlcHRvci5zZXJ2aWNlJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ3JlZGlyZWN0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZWRpcmVjdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUmVkaXJlY3RDb21wb25lbnQge1xuICAgIHJlYWRvbmx5IG1vZGFsSGVhZGVyVGV4dCA9ICdJbmZvcm1hdGlvbic7XG4gICAgcmVhZG9ubHkgbW9kYWxCb2R5VGV4dCA9IGA8cD5Wb3RyZSBzZXNzaW9uIGEgZXhwaXLDqS48L3A+XG4gICAgICAgICAgICA8cD5Wb3VzIHBvdXZleiB2b3VzIGNvbm5lY3RlciDDoCBub3V2ZWF1IHBvdXIgY29udGludWVyIMOgIHV0aWxpc2VyIG5vcyBzZXJ2aWNlcy48L3A+YDtcblxuICAgIGlzTW9kYWxWaXNpYmxlOiBib29sZWFuO1xuICAgIGNvdW50ZXI6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaWFtSW50ZXJjZXB0b3I6IElhbUV4cGlyZWRJbnRlcmNlcHRvclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5pYW1JbnRlcmNlcHRvci5pYW1FeHBpcmF0aW9uSGVhZGVyUHJlc2VuY2VcbiAgICAgICAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2hvd01vZGFsKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd01vZGFsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvdW50ZXIgPSAxMDtcbiAgICAgICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIGlmICgwID09PSB0aGlzLmNvdW50ZXIpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jb3VudGVyLS07XG4gICAgICAgIH0sIDEwMDApO1xuICAgIH1cbn1cbiIsIjxmb2Vobi1tb2RhbFxuICAgIFttb2RhbEJvZHlUZXh0XT1cIm1vZGFsQm9keVRleHRcIlxuICAgIFtpc01vZGFsVmlzaWJsZV09XCJpc01vZGFsVmlzaWJsZVwiXG4gICAgW21vZGFsSGVhZGVyVGV4dF09XCJtb2RhbEhlYWRlclRleHRcIlxuICAgIFtjbG9zZWFibGVdPVwiZmFsc2VcIlxuPlxuICAgIDxkaXYgbW9kYWwtZm9vdGVyIGNsYXNzPVwidy0xMDAgdGV4dC1yaWdodCBmb250LXdlaWdodC1ib2xkXCI+XG4gICAgICAgIFZvdXMgYWxsZXogw6p0cmUgcmVkaXJpZ8OpIGRhbnMge3sgY291bnRlciB9fSBzLlxuICAgIDwvZGl2PlxuPC9mb2Vobi1tb2RhbD5cbiJdfQ==
@@ -31,7 +31,22 @@ import weekOfYear from 'dayjs/plugin/weekOfYear';
31
31
 
32
32
  /* eslint-disable @typescript-eslint/no-explicit-any */
33
33
  const IAM_SESSION_EXPIRED_HEADER = 'iam-session-expired';
34
- const LOGIN_PATH = '/100018/login';
34
+ const CYBER_LOGIN_PATH = '/100018/login';
35
+ const PORTAIL_IAM_ACV_EXTRA_PATH = 'portail.vd.ch:443/iamlogin';
36
+ const PORTAIL_IAM_ACV_INTRA_PATH = 'portail.etat-de-vaud.ch:443/iamlogin';
37
+ const isIamExpiredHeader = (event) => !!event.headers.get(IAM_SESSION_EXPIRED_HEADER);
38
+ const isRedirectionToIamACV = (event) => {
39
+ const isRedirection = event.status === 302 /* Found */;
40
+ const location = event.headers.get('Location');
41
+ return (isRedirection &&
42
+ ((location === null || location === void 0 ? void 0 : location.includes(PORTAIL_IAM_ACV_EXTRA_PATH)) ||
43
+ (location === null || location === void 0 ? void 0 : location.includes(PORTAIL_IAM_ACV_INTRA_PATH))));
44
+ };
45
+ const isRedirectionToCyberLogin = (event) => {
46
+ const isRedirection = event.status === 302 /* Found */;
47
+ const location = event.headers.get('Location');
48
+ return isRedirection && (location === null || location === void 0 ? void 0 : location.includes(CYBER_LOGIN_PATH));
49
+ };
35
50
  class IamExpiredInterceptorService {
36
51
  constructor() {
37
52
  this._iamExpirationHeaderPresence = new Subject();
@@ -41,10 +56,11 @@ class IamExpiredInterceptorService {
41
56
  }
42
57
  intercept(req, next) {
43
58
  return next.handle(req).pipe(map(event => {
59
+ console.log('event', event);
44
60
  if (event instanceof HttpResponse) {
45
- // either we have the header 'iam-session-expired'
46
- const iamExpiredHeader = event.headers.get(IAM_SESSION_EXPIRED_HEADER);
47
- if (null !== iamExpiredHeader) {
61
+ if (isIamExpiredHeader(event) ||
62
+ isRedirectionToIamACV(event) ||
63
+ isRedirectionToCyberLogin(event)) {
48
64
  this._iamExpirationHeaderPresence.next(true);
49
65
  }
50
66
  }
@@ -54,7 +70,7 @@ class IamExpiredInterceptorService {
54
70
  handleError(err) {
55
71
  if (err instanceof HttpErrorResponse) {
56
72
  if (err.status === 200) {
57
- const isLogin = err.url.indexOf(LOGIN_PATH) > 0;
73
+ const isLogin = err.url.indexOf(CYBER_LOGIN_PATH) > 0;
58
74
  if (isLogin) {
59
75
  this._iamExpirationHeaderPresence.next(true);
60
76
  }
@@ -9930,45 +9946,33 @@ class TableSort {
9930
9946
  }
9931
9947
 
9932
9948
  class RedirectComponent {
9933
- constructor(iamInterceptor, foehnPageModalService) {
9949
+ constructor(iamInterceptor) {
9934
9950
  this.iamInterceptor = iamInterceptor;
9935
- this.foehnPageModalService = foehnPageModalService;
9936
- this.subscription = this.iamInterceptor.iamExpirationHeaderPresence.subscribe(() => this.showModal());
9937
- }
9938
- ngOnInit() {
9939
9951
  this.modalHeaderText = 'Information';
9940
9952
  this.modalBodyText = `<p>Votre session a expiré.</p>
9941
9953
  <p>Vous pouvez vous connecter à nouveau pour continuer à utiliser nos services.</p>`;
9942
- }
9943
- ngOnDestroy() {
9944
- this.subscription.unsubscribe();
9945
- }
9946
- redirect() {
9947
- this.foehnPageModalService
9948
- .buildSelfRedirectionThroughCyberLogin()
9949
- .pipe(first(), tap(redirectUrl => {
9950
- window.location.href = redirectUrl;
9951
- }))
9952
- .subscribe();
9954
+ this.iamInterceptor.iamExpirationHeaderPresence
9955
+ .pipe(first())
9956
+ .subscribe(() => this.showModal());
9953
9957
  }
9954
9958
  showModal() {
9955
9959
  this.counter = 10;
9956
9960
  this.isModalVisible = true;
9957
9961
  setInterval(() => {
9958
9962
  if (0 === this.counter) {
9959
- this.redirect();
9963
+ window.location.reload();
9960
9964
  return;
9961
9965
  }
9962
9966
  this.counter--;
9963
9967
  }, 1000);
9964
9968
  }
9965
9969
  }
9966
- RedirectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RedirectComponent, deps: [{ token: IamExpiredInterceptorService }, { token: FoehnPageModalService }], target: i0.ɵɵFactoryTarget.Component });
9970
+ RedirectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RedirectComponent, deps: [{ token: IamExpiredInterceptorService }], target: i0.ɵɵFactoryTarget.Component });
9967
9971
  RedirectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.5", type: RedirectComponent, selector: "redirector", ngImport: i0, template: "<foehn-modal\n [modalBodyText]=\"modalBodyText\"\n [isModalVisible]=\"isModalVisible\"\n [modalHeaderText]=\"modalHeaderText\"\n [closeable]=\"false\"\n>\n <div modal-footer class=\"w-100 text-right font-weight-bold\">\n Vous allez \u00EAtre redirig\u00E9 dans {{ counter }} s.\n </div>\n</foehn-modal>\n", components: [{ type: FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }] });
9968
9972
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RedirectComponent, decorators: [{
9969
9973
  type: Component,
9970
9974
  args: [{ selector: 'redirector', template: "<foehn-modal\n [modalBodyText]=\"modalBodyText\"\n [isModalVisible]=\"isModalVisible\"\n [modalHeaderText]=\"modalHeaderText\"\n [closeable]=\"false\"\n>\n <div modal-footer class=\"w-100 text-right font-weight-bold\">\n Vous allez \u00EAtre redirig\u00E9 dans {{ counter }} s.\n </div>\n</foehn-modal>\n" }]
9971
- }], ctorParameters: function () { return [{ type: IamExpiredInterceptorService }, { type: FoehnPageModalService }]; } });
9975
+ }], ctorParameters: function () { return [{ type: IamExpiredInterceptorService }]; } });
9972
9976
 
9973
9977
  class SdkRedirectModule {
9974
9978
  }