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

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.
@@ -6,36 +6,30 @@ 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
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)));
9
+ const ACV_LOGIN_PATH = '/iamlogin';
10
+ const isIamExpiredHeader = (event) => {
11
+ return !!event.headers.get(IAM_SESSION_EXPIRED_HEADER);
18
12
  };
19
- const isRedirectionToCyberLogin = (event) => {
13
+ const isRedirectionToLogin = (event) => {
20
14
  const isRedirection = event.status === 302 /* Found */;
21
- const location = event.headers.get('Location');
22
- return isRedirection && location?.includes(CYBER_LOGIN_PATH);
15
+ const locationHeader = event.headers.get('Location');
16
+ const isLocationCyberLogin = locationHeader?.includes(CYBER_LOGIN_PATH);
17
+ const isLocationAcvLogin = locationHeader?.includes(ACV_LOGIN_PATH);
18
+ return isRedirection && (isLocationCyberLogin || isLocationAcvLogin);
23
19
  };
24
20
  export class IamExpiredInterceptorService {
25
21
  constructor() {
26
- this._iamExpirationHeaderPresence = new Subject();
22
+ this._isIamSessionExpired = new Subject();
27
23
  }
28
- get iamExpirationHeaderPresence() {
29
- return this._iamExpirationHeaderPresence.asObservable();
24
+ get isIamSessionExpired() {
25
+ return this._isIamSessionExpired.asObservable();
30
26
  }
31
27
  intercept(req, next) {
32
28
  return next.handle(req).pipe(map(event => {
33
- console.log('event', event);
34
29
  if (event instanceof HttpResponse) {
35
30
  if (isIamExpiredHeader(event) ||
36
- isRedirectionToIamACV(event) ||
37
- isRedirectionToCyberLogin(event)) {
38
- this._iamExpirationHeaderPresence.next(true);
31
+ isRedirectionToLogin(event)) {
32
+ this._isIamSessionExpired.next(true);
39
33
  }
40
34
  }
41
35
  return event;
@@ -43,11 +37,13 @@ export class IamExpiredInterceptorService {
43
37
  }
44
38
  handleError(err) {
45
39
  if (err instanceof HttpErrorResponse) {
46
- if (err.status === 200) {
47
- const isLogin = err.url.indexOf(CYBER_LOGIN_PATH) > 0;
48
- if (isLogin) {
49
- this._iamExpirationHeaderPresence.next(true);
50
- }
40
+ // status is 200, but still an error since
41
+ // login page is returned when xml/json is expected
42
+ const isStatusOk = err.status === 200 /* Ok */;
43
+ const isUrlCyberLogin = err.url.includes(CYBER_LOGIN_PATH);
44
+ const isUrlAcvLogin = err.url.includes(ACV_LOGIN_PATH);
45
+ if (isStatusOk && (isUrlCyberLogin || isUrlAcvLogin)) {
46
+ this._isIamSessionExpired.next(true);
51
47
  }
52
48
  }
53
49
  return throwError(err);
@@ -61,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImpor
61
57
  providedIn: 'root'
62
58
  }]
63
59
  }] });
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLWV4cGlyZWQtaW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstcmVkaXJlY3QvaWFtLWV4cGlyZWQtaW50ZXJjZXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFjLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsaUJBQWlCLEVBS2pCLFlBQVksRUFFZixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRWpELE1BQU0sMEJBQTBCLEdBQUcscUJBQXFCLENBQUM7QUFDekQsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7QUFDekMsTUFBTSwwQkFBMEIsR0FBRyw0QkFBNEIsQ0FBQztBQUNoRSxNQUFNLDBCQUEwQixHQUFHLHNDQUFzQyxDQUFDO0FBRTFFLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxLQUF3QixFQUFXLEVBQUUsQ0FDN0QsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFFcEQsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQXdCLEVBQVcsRUFBRTtJQUNoRSxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxvQkFBeUIsQ0FBQztJQUM1RCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQyxPQUFPLENBQ0gsYUFBYTtRQUNiLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQztZQUMzQyxRQUFRLEVBQUUsUUFBUSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FDdEQsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxLQUF3QixFQUFXLEVBQUU7SUFDcEUsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLE1BQU0sb0JBQXlCLENBQUM7SUFDNUQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDL0MsT0FBTyxhQUFhLElBQUksUUFBUSxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ2pFLENBQUMsQ0FBQztBQUtGLE1BQU0sT0FBTyw0QkFBNEI7SUFIekM7UUFJWSxpQ0FBNEIsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztLQTJDbkY7SUF6Q0csSUFBSSwyQkFBMkI7UUFDM0IsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUQsQ0FBQztJQUVELFNBQVMsQ0FDTCxHQUFxQixFQUNyQixJQUFpQjtRQUVqQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUN4QixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDUixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM1QixJQUFJLEtBQUssWUFBWSxZQUFZLEVBQUU7Z0JBQy9CLElBQ0ksa0JBQWtCLENBQUMsS0FBSyxDQUFDO29CQUN6QixxQkFBcUIsQ0FBQyxLQUFLLENBQUM7b0JBQzVCLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxFQUNsQztvQkFDRSxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNoRDthQUNKO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzFDLENBQUM7SUFDTixDQUFDO0lBRU8sV0FBVyxDQUNmLEdBQXVDO1FBRXZDLElBQUksR0FBRyxZQUFZLGlCQUFpQixFQUFFO1lBQ2xDLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUU7Z0JBQ3BCLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN0RCxJQUFJLE9BQU8sRUFBRTtvQkFDVCxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUNoRDthQUNKO1NBQ0o7UUFFRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDOzt5SEEzQ1EsNEJBQTRCOzZIQUE1Qiw0QkFBNEIsY0FGekIsTUFBTTsyRkFFVCw0QkFBNEI7a0JBSHhDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBIdHRwRXJyb3JSZXNwb25zZSxcbiAgICBIdHRwRXZlbnQsXG4gICAgSHR0cEhhbmRsZXIsXG4gICAgSHR0cEludGVyY2VwdG9yLFxuICAgIEh0dHBSZXF1ZXN0LFxuICAgIEh0dHBSZXNwb25zZSxcbiAgICBIdHRwU3RhdHVzQ29kZVxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmNvbnN0IElBTV9TRVNTSU9OX0VYUElSRURfSEVBREVSID0gJ2lhbS1zZXNzaW9uLWV4cGlyZWQnO1xuY29uc3QgQ1lCRVJfTE9HSU5fUEFUSCA9ICcvMTAwMDE4L2xvZ2luJztcbmNvbnN0IFBPUlRBSUxfSUFNX0FDVl9FWFRSQV9QQVRIID0gJ3BvcnRhaWwudmQuY2g6NDQzL2lhbWxvZ2luJztcbmNvbnN0IFBPUlRBSUxfSUFNX0FDVl9JTlRSQV9QQVRIID0gJ3BvcnRhaWwuZXRhdC1kZS12YXVkLmNoOjQ0My9pYW1sb2dpbic7XG5cbmNvbnN0IGlzSWFtRXhwaXJlZEhlYWRlciA9IChldmVudDogSHR0cFJlc3BvbnNlPGFueT4pOiBib29sZWFuID0+XG4gICAgISFldmVudC5oZWFkZXJzLmdldChJQU1fU0VTU0lPTl9FWFBJUkVEX0hFQURFUik7XG5cbmNvbnN0IGlzUmVkaXJlY3Rpb25Ub0lhbUFDViA9IChldmVudDogSHR0cFJlc3BvbnNlPGFueT4pOiBib29sZWFuID0+IHtcbiAgICBjb25zdCBpc1JlZGlyZWN0aW9uID0gZXZlbnQuc3RhdHVzID09PSBIdHRwU3RhdHVzQ29kZS5Gb3VuZDtcbiAgICBjb25zdCBsb2NhdGlvbiA9IGV2ZW50LmhlYWRlcnMuZ2V0KCdMb2NhdGlvbicpO1xuICAgIHJldHVybiAoXG4gICAgICAgIGlzUmVkaXJlY3Rpb24gJiZcbiAgICAgICAgKGxvY2F0aW9uPy5pbmNsdWRlcyhQT1JUQUlMX0lBTV9BQ1ZfRVhUUkFfUEFUSCkgfHxcbiAgICAgICAgICAgIGxvY2F0aW9uPy5pbmNsdWRlcyhQT1JUQUlMX0lBTV9BQ1ZfSU5UUkFfUEFUSCkpXG4gICAgKTtcbn07XG5cbmNvbnN0IGlzUmVkaXJlY3Rpb25Ub0N5YmVyTG9naW4gPSAoZXZlbnQ6IEh0dHBSZXNwb25zZTxhbnk+KTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgaXNSZWRpcmVjdGlvbiA9IGV2ZW50LnN0YXR1cyA9PT0gSHR0cFN0YXR1c0NvZGUuRm91bmQ7XG4gICAgY29uc3QgbG9jYXRpb24gPSBldmVudC5oZWFkZXJzLmdldCgnTG9jYXRpb24nKTtcbiAgICByZXR1cm4gaXNSZWRpcmVjdGlvbiAmJiBsb2NhdGlvbj8uaW5jbHVkZXMoQ1lCRVJfTE9HSU5fUEFUSCk7XG59O1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIElhbUV4cGlyZWRJbnRlcmNlcHRvclNlcnZpY2UgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuICAgIHByaXZhdGUgX2lhbUV4cGlyYXRpb25IZWFkZXJQcmVzZW5jZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBnZXQgaWFtRXhwaXJhdGlvbkhlYWRlclByZXNlbmNlKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faWFtRXhwaXJhdGlvbkhlYWRlclByZXNlbmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGludGVyY2VwdChcbiAgICAgICAgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxuICAgICAgICBuZXh0OiBIdHRwSGFuZGxlclxuICAgICk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4gfCBhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSkucGlwZShcbiAgICAgICAgICAgIG1hcChldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2V2ZW50JywgZXZlbnQpO1xuICAgICAgICAgICAgICAgIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0lhbUV4cGlyZWRIZWFkZXIoZXZlbnQpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1JlZGlyZWN0aW9uVG9JYW1BQ1YoZXZlbnQpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1JlZGlyZWN0aW9uVG9DeWJlckxvZ2luKGV2ZW50KVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2lhbUV4cGlyYXRpb25IZWFkZXJQcmVzZW5jZS5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50O1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IuYmluZCh0aGlzKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUVycm9yKFxuICAgICAgICBlcnI6IEh0dHBFcnJvclJlc3BvbnNlIHwgSHR0cEV2ZW50PGFueT5cbiAgICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XG4gICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgaWYgKGVyci5zdGF0dXMgPT09IDIwMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzTG9naW4gPSBlcnIudXJsLmluZGV4T2YoQ1lCRVJfTE9HSU5fUEFUSCkgPiAwO1xuICAgICAgICAgICAgICAgIGlmIChpc0xvZ2luKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2lhbUV4cGlyYXRpb25IZWFkZXJQcmVzZW5jZS5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycik7XG4gICAgfVxufVxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLWV4cGlyZWQtaW50ZXJjZXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9zZGstcmVkaXJlY3QvaWFtLWV4cGlyZWQtaW50ZXJjZXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFjLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQ0gsaUJBQWlCLEVBS2pCLFlBQVksRUFFZixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRWpELE1BQU0sMEJBQTBCLEdBQUcscUJBQXFCLENBQUM7QUFDekQsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7QUFDekMsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDO0FBRW5DLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxLQUF3QixFQUFXLEVBQUU7SUFDN0QsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHLENBQUMsS0FBd0IsRUFBVyxFQUFFO0lBQy9ELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxNQUFNLG9CQUF5QixDQUFDO0lBQzVELE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXJELE1BQU0sb0JBQW9CLEdBQUcsY0FBYyxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sa0JBQWtCLEdBQUcsY0FBYyxFQUFFLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUVwRSxPQUFPLGFBQWEsSUFBSSxDQUFDLG9CQUFvQixJQUFJLGtCQUFrQixDQUFDLENBQUM7QUFDekUsQ0FBQyxDQUFDO0FBS0YsTUFBTSxPQUFPLDRCQUE0QjtJQUh6QztRQUlZLHlCQUFvQixHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO0tBMkMzRTtJQXpDRyxJQUFJLG1CQUFtQjtRQUNuQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsU0FBUyxDQUNMLEdBQXFCLEVBQ3JCLElBQWlCO1FBRWpCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ3hCLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNSLElBQUksS0FBSyxZQUFZLFlBQVksRUFBRTtnQkFDL0IsSUFDSSxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7b0JBQ3pCLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxFQUM3QjtvQkFDRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUN4QzthQUNKO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQzFDLENBQUM7SUFDTixDQUFDO0lBRU8sV0FBVyxDQUNmLEdBQXVDO1FBRXZDLElBQUksR0FBRyxZQUFZLGlCQUFpQixFQUFFO1lBQ2xDLDBDQUEwQztZQUMxQyxtREFBbUQ7WUFDbkQsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLE1BQU0saUJBQXNCLENBQUM7WUFDcEQsTUFBTSxlQUFlLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUMzRCxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUV2RCxJQUFJLFVBQVUsSUFBSSxDQUFDLGVBQWUsSUFBSSxhQUFhLENBQUMsRUFBRTtnQkFDbEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN4QztTQUNKO1FBRUQsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7eUhBM0NRLDRCQUE0Qjs2SEFBNUIsNEJBQTRCLGNBRnpCLE1BQU07MkZBRVQsNEJBQTRCO2tCQUh4QyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgSHR0cEVycm9yUmVzcG9uc2UsXG4gICAgSHR0cEV2ZW50LFxuICAgIEh0dHBIYW5kbGVyLFxuICAgIEh0dHBJbnRlcmNlcHRvcixcbiAgICBIdHRwUmVxdWVzdCxcbiAgICBIdHRwUmVzcG9uc2UsXG4gICAgSHR0cFN0YXR1c0NvZGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5jb25zdCBJQU1fU0VTU0lPTl9FWFBJUkVEX0hFQURFUiA9ICdpYW0tc2Vzc2lvbi1leHBpcmVkJztcbmNvbnN0IENZQkVSX0xPR0lOX1BBVEggPSAnLzEwMDAxOC9sb2dpbic7XG5jb25zdCBBQ1ZfTE9HSU5fUEFUSCA9ICcvaWFtbG9naW4nO1xuXG5jb25zdCBpc0lhbUV4cGlyZWRIZWFkZXIgPSAoZXZlbnQ6IEh0dHBSZXNwb25zZTxhbnk+KTogYm9vbGVhbiA9PiB7XG4gICAgcmV0dXJuICEhZXZlbnQuaGVhZGVycy5nZXQoSUFNX1NFU1NJT05fRVhQSVJFRF9IRUFERVIpO1xufTtcblxuY29uc3QgaXNSZWRpcmVjdGlvblRvTG9naW4gPSAoZXZlbnQ6IEh0dHBSZXNwb25zZTxhbnk+KTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgaXNSZWRpcmVjdGlvbiA9IGV2ZW50LnN0YXR1cyA9PT0gSHR0cFN0YXR1c0NvZGUuRm91bmQ7XG4gICAgY29uc3QgbG9jYXRpb25IZWFkZXIgPSBldmVudC5oZWFkZXJzLmdldCgnTG9jYXRpb24nKTtcblxuICAgIGNvbnN0IGlzTG9jYXRpb25DeWJlckxvZ2luID0gbG9jYXRpb25IZWFkZXI/LmluY2x1ZGVzKENZQkVSX0xPR0lOX1BBVEgpO1xuICAgIGNvbnN0IGlzTG9jYXRpb25BY3ZMb2dpbiA9IGxvY2F0aW9uSGVhZGVyPy5pbmNsdWRlcyhBQ1ZfTE9HSU5fUEFUSCk7XG5cbiAgICByZXR1cm4gaXNSZWRpcmVjdGlvbiAmJiAoaXNMb2NhdGlvbkN5YmVyTG9naW4gfHwgaXNMb2NhdGlvbkFjdkxvZ2luKTtcbn07XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSWFtRXhwaXJlZEludGVyY2VwdG9yU2VydmljZSBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gICAgcHJpdmF0ZSBfaXNJYW1TZXNzaW9uRXhwaXJlZDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBnZXQgaXNJYW1TZXNzaW9uRXhwaXJlZCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzSWFtU2Vzc2lvbkV4cGlyZWQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgaW50ZXJjZXB0KFxuICAgICAgICByZXE6IEh0dHBSZXF1ZXN0PGFueT4sXG4gICAgICAgIG5leHQ6IEh0dHBIYW5kbGVyXG4gICAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55PiB8IGFueT4ge1xuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKS5waXBlKFxuICAgICAgICAgICAgbWFwKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNJYW1FeHBpcmVkSGVhZGVyKGV2ZW50KSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNSZWRpcmVjdGlvblRvTG9naW4oZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faXNJYW1TZXNzaW9uRXhwaXJlZC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBldmVudDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yLmJpbmQodGhpcykpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYW5kbGVFcnJvcihcbiAgICAgICAgZXJyOiBIdHRwRXJyb3JSZXNwb25zZSB8IEh0dHBFdmVudDxhbnk+XG4gICAgKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgIC8vIHN0YXR1cyBpcyAyMDAsIGJ1dCBzdGlsbCBhbiBlcnJvciBzaW5jZVxuICAgICAgICAgICAgLy8gbG9naW4gcGFnZSBpcyByZXR1cm5lZCB3aGVuIHhtbC9qc29uIGlzIGV4cGVjdGVkXG4gICAgICAgICAgICBjb25zdCBpc1N0YXR1c09rID0gZXJyLnN0YXR1cyA9PT0gSHR0cFN0YXR1c0NvZGUuT2s7XG4gICAgICAgICAgICBjb25zdCBpc1VybEN5YmVyTG9naW4gPSBlcnIudXJsLmluY2x1ZGVzKENZQkVSX0xPR0lOX1BBVEgpO1xuICAgICAgICAgICAgY29uc3QgaXNVcmxBY3ZMb2dpbiA9IGVyci51cmwuaW5jbHVkZXMoQUNWX0xPR0lOX1BBVEgpO1xuXG4gICAgICAgICAgICBpZiAoaXNTdGF0dXNPayAmJiAoaXNVcmxDeWJlckxvZ2luIHx8IGlzVXJsQWN2TG9naW4pKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faXNJYW1TZXNzaW9uRXhwaXJlZC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcbiAgICB9XG59XG4iXX0=
@@ -6,19 +6,19 @@ import * as i2 from "../foehn-modal/foehn-modal.component";
6
6
  export class RedirectComponent {
7
7
  constructor(iamInterceptor) {
8
8
  this.iamInterceptor = iamInterceptor;
9
- this.modalHeaderText = 'Information';
10
- this.modalBodyText = `<p>Votre session a expiré.</p>
11
- <p>Vous pouvez vous connecter à nouveau pour continuer à utiliser nos services.</p>`;
12
- this.iamInterceptor.iamExpirationHeaderPresence
9
+ this.iamInterceptor.isIamSessionExpired
13
10
  .pipe(first())
14
11
  .subscribe(() => this.showModal());
15
12
  }
13
+ reloadPage() {
14
+ window.location.reload();
15
+ }
16
16
  showModal() {
17
17
  this.counter = 10;
18
18
  this.isModalVisible = true;
19
19
  setInterval(() => {
20
20
  if (0 === this.counter) {
21
- window.location.reload();
21
+ this.reloadPage();
22
22
  return;
23
23
  }
24
24
  this.counter--;
@@ -26,9 +26,9 @@ export class RedirectComponent {
26
26
  }
27
27
  }
28
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"] }] });
29
+ RedirectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.5", type: RedirectComponent, selector: "redirector", ngImport: i0, template: "<foehn-modal\n [modalHeaderText]=\"'Information'\"\n [isModalVisible]=\"isModalVisible\"\n [closeable]=\"false\"\n>\n <p>Votre session a expir\u00E9.</p>\n <p>Vous pouvez <a href=\"#\" (click)=\"$event.preventDefault(); reloadPage();\">vous connecter</a> \u00E0 nouveau pour continuer \u00E0 utiliser nos services.</p>\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"] }] });
30
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RedirectComponent, decorators: [{
31
31
  type: Component,
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" }]
32
+ args: [{ selector: 'redirector', template: "<foehn-modal\n [modalHeaderText]=\"'Information'\"\n [isModalVisible]=\"isModalVisible\"\n [closeable]=\"false\"\n>\n <p>Votre session a expir\u00E9.</p>\n <p>Vous pouvez <a href=\"#\" (click)=\"$event.preventDefault(); reloadPage();\">vous connecter</a> \u00E0 nouveau pour continuer \u00E0 utiliser nos services.</p>\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" }]
33
33
  }], ctorParameters: function () { return [{ type: i1.IamExpiredInterceptorService }]; } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1yZWRpcmVjdC9yZWRpcmVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLXJlZGlyZWN0L3JlZGlyZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBT3ZDLE1BQU0sT0FBTyxpQkFBaUI7SUFRMUIsWUFBb0IsY0FBNEM7UUFBNUMsbUJBQWMsR0FBZCxjQUFjLENBQThCO1FBUHZELG9CQUFlLEdBQUcsYUFBYSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUc7Z0dBQ21FLENBQUM7UUFNekYsSUFBSSxDQUFDLGNBQWMsQ0FBQywyQkFBMkI7YUFDMUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ2IsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTyxTQUFTO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ3BCLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLE9BQU87YUFDVjtZQUNELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDYixDQUFDOzs4R0F4QlEsaUJBQWlCO2tHQUFqQixpQkFBaUIsa0RDVDlCLDJVQVVBOzJGRERhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFFSSxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJYW1FeHBpcmVkSW50ZXJjZXB0b3JTZXJ2aWNlIH0gZnJvbSAnLi9pYW0tZXhwaXJlZC1pbnRlcmNlcHRvci5zZXJ2aWNlJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ3JlZGlyZWN0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yZWRpcmVjdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUmVkaXJlY3RDb21wb25lbnQge1xuICAgIHJlYWRvbmx5IG1vZGFsSGVhZGVyVGV4dCA9ICdJbmZvcm1hdGlvbic7XG4gICAgcmVhZG9ubHkgbW9kYWxCb2R5VGV4dCA9IGA8cD5Wb3RyZSBzZXNzaW9uIGEgZXhwaXLDqS48L3A+XG4gICAgICAgICAgICA8cD5Wb3VzIHBvdXZleiB2b3VzIGNvbm5lY3RlciDDoCBub3V2ZWF1IHBvdXIgY29udGludWVyIMOgIHV0aWxpc2VyIG5vcyBzZXJ2aWNlcy48L3A+YDtcblxuICAgIGlzTW9kYWxWaXNpYmxlOiBib29sZWFuO1xuICAgIGNvdW50ZXI6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaWFtSW50ZXJjZXB0b3I6IElhbUV4cGlyZWRJbnRlcmNlcHRvclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5pYW1JbnRlcmNlcHRvci5pYW1FeHBpcmF0aW9uSGVhZGVyUHJlc2VuY2VcbiAgICAgICAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2hvd01vZGFsKCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd01vZGFsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvdW50ZXIgPSAxMDtcbiAgICAgICAgdGhpcy5pc01vZGFsVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIGlmICgwID09PSB0aGlzLmNvdW50ZXIpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jb3VudGVyLS07XG4gICAgICAgIH0sIDEwMDApO1xuICAgIH1cbn1cbiIsIjxmb2Vobi1tb2RhbFxuICAgIFttb2RhbEJvZHlUZXh0XT1cIm1vZGFsQm9keVRleHRcIlxuICAgIFtpc01vZGFsVmlzaWJsZV09XCJpc01vZGFsVmlzaWJsZVwiXG4gICAgW21vZGFsSGVhZGVyVGV4dF09XCJtb2RhbEhlYWRlclRleHRcIlxuICAgIFtjbG9zZWFibGVdPVwiZmFsc2VcIlxuPlxuICAgIDxkaXYgbW9kYWwtZm9vdGVyIGNsYXNzPVwidy0xMDAgdGV4dC1yaWdodCBmb250LXdlaWdodC1ib2xkXCI+XG4gICAgICAgIFZvdXMgYWxsZXogw6p0cmUgcmVkaXJpZ8OpIGRhbnMge3sgY291bnRlciB9fSBzLlxuICAgIDwvZGl2PlxuPC9mb2Vobi1tb2RhbD5cbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkaXJlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1yZWRpcmVjdC9yZWRpcmVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvc2RrLXJlZGlyZWN0L3JlZGlyZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBT3ZDLE1BQU0sT0FBTyxpQkFBaUI7SUFLMUIsWUFBb0IsY0FBNEM7UUFBNUMsbUJBQWMsR0FBZCxjQUFjLENBQThCO1FBQzVELElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CO2FBQ2xDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNiLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsVUFBVTtRQUNOLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLFNBQVM7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMzQixXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ2IsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDcEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQixPQUFPO2FBQ1Y7WUFDRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2IsQ0FBQzs7OEdBekJRLGlCQUFpQjtrR0FBakIsaUJBQWlCLGtEQ1Q5QixxZkFZQTsyRkRIYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBRUksWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWFtRXhwaXJlZEludGVyY2VwdG9yU2VydmljZSB9IGZyb20gJy4vaWFtLWV4cGlyZWQtaW50ZXJjZXB0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdyZWRpcmVjdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcmVkaXJlY3QuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0Q29tcG9uZW50IHtcblxuICAgIGlzTW9kYWxWaXNpYmxlOiBib29sZWFuO1xuICAgIGNvdW50ZXI6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaWFtSW50ZXJjZXB0b3I6IElhbUV4cGlyZWRJbnRlcmNlcHRvclNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5pYW1JbnRlcmNlcHRvci5pc0lhbVNlc3Npb25FeHBpcmVkXG4gICAgICAgICAgICAucGlwZShmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNob3dNb2RhbCgpKTtcbiAgICB9XG5cbiAgICByZWxvYWRQYWdlKCk6IHZvaWQge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93TW9kYWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY291bnRlciA9IDEwO1xuICAgICAgICB0aGlzLmlzTW9kYWxWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKDAgPT09IHRoaXMuY291bnRlcikge1xuICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkUGFnZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY291bnRlci0tO1xuICAgICAgICB9LCAxMDAwKTtcbiAgICB9XG59XG4iLCI8Zm9laG4tbW9kYWxcbiAgICBbbW9kYWxIZWFkZXJUZXh0XT1cIidJbmZvcm1hdGlvbidcIlxuICAgIFtpc01vZGFsVmlzaWJsZV09XCJpc01vZGFsVmlzaWJsZVwiXG4gICAgW2Nsb3NlYWJsZV09XCJmYWxzZVwiXG4+XG4gICAgPHA+Vm90cmUgc2Vzc2lvbiBhIGV4cGlyw6kuPC9wPlxuICAgIDxwPlZvdXMgcG91dmV6IDxhIGhyZWY9XCIjXCIgKGNsaWNrKT1cIiRldmVudC5wcmV2ZW50RGVmYXVsdCgpOyByZWxvYWRQYWdlKCk7XCI+dm91cyBjb25uZWN0ZXI8L2E+IMOgIG5vdXZlYXUgcG91ciBjb250aW51ZXIgw6AgdXRpbGlzZXIgbm9zIHNlcnZpY2VzLjwvcD5cblxuICAgIDxkaXYgbW9kYWwtZm9vdGVyIGNsYXNzPVwidy0xMDAgdGV4dC1yaWdodCBmb250LXdlaWdodC1ib2xkXCI+XG4gICAgICAgIFZvdXMgYWxsZXogw6p0cmUgcmVkaXJpZ8OpIGRhbnMge3sgY291bnRlciB9fSBzLlxuICAgIDwvZGl2PlxuPC9mb2Vobi1tb2RhbD5cbiJdfQ==
@@ -32,36 +32,30 @@ import weekOfYear from 'dayjs/plugin/weekOfYear';
32
32
  /* eslint-disable @typescript-eslint/no-explicit-any */
33
33
  const IAM_SESSION_EXPIRED_HEADER = 'iam-session-expired';
34
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))));
35
+ const ACV_LOGIN_PATH = '/iamlogin';
36
+ const isIamExpiredHeader = (event) => {
37
+ return !!event.headers.get(IAM_SESSION_EXPIRED_HEADER);
44
38
  };
45
- const isRedirectionToCyberLogin = (event) => {
39
+ const isRedirectionToLogin = (event) => {
46
40
  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));
41
+ const locationHeader = event.headers.get('Location');
42
+ const isLocationCyberLogin = locationHeader === null || locationHeader === void 0 ? void 0 : locationHeader.includes(CYBER_LOGIN_PATH);
43
+ const isLocationAcvLogin = locationHeader === null || locationHeader === void 0 ? void 0 : locationHeader.includes(ACV_LOGIN_PATH);
44
+ return isRedirection && (isLocationCyberLogin || isLocationAcvLogin);
49
45
  };
50
46
  class IamExpiredInterceptorService {
51
47
  constructor() {
52
- this._iamExpirationHeaderPresence = new Subject();
48
+ this._isIamSessionExpired = new Subject();
53
49
  }
54
- get iamExpirationHeaderPresence() {
55
- return this._iamExpirationHeaderPresence.asObservable();
50
+ get isIamSessionExpired() {
51
+ return this._isIamSessionExpired.asObservable();
56
52
  }
57
53
  intercept(req, next) {
58
54
  return next.handle(req).pipe(map(event => {
59
- console.log('event', event);
60
55
  if (event instanceof HttpResponse) {
61
56
  if (isIamExpiredHeader(event) ||
62
- isRedirectionToIamACV(event) ||
63
- isRedirectionToCyberLogin(event)) {
64
- this._iamExpirationHeaderPresence.next(true);
57
+ isRedirectionToLogin(event)) {
58
+ this._isIamSessionExpired.next(true);
65
59
  }
66
60
  }
67
61
  return event;
@@ -69,11 +63,13 @@ class IamExpiredInterceptorService {
69
63
  }
70
64
  handleError(err) {
71
65
  if (err instanceof HttpErrorResponse) {
72
- if (err.status === 200) {
73
- const isLogin = err.url.indexOf(CYBER_LOGIN_PATH) > 0;
74
- if (isLogin) {
75
- this._iamExpirationHeaderPresence.next(true);
76
- }
66
+ // status is 200, but still an error since
67
+ // login page is returned when xml/json is expected
68
+ const isStatusOk = err.status === 200 /* Ok */;
69
+ const isUrlCyberLogin = err.url.includes(CYBER_LOGIN_PATH);
70
+ const isUrlAcvLogin = err.url.includes(ACV_LOGIN_PATH);
71
+ if (isStatusOk && (isUrlCyberLogin || isUrlAcvLogin)) {
72
+ this._isIamSessionExpired.next(true);
77
73
  }
78
74
  }
79
75
  return throwError(err);
@@ -9948,19 +9944,19 @@ class TableSort {
9948
9944
  class RedirectComponent {
9949
9945
  constructor(iamInterceptor) {
9950
9946
  this.iamInterceptor = iamInterceptor;
9951
- this.modalHeaderText = 'Information';
9952
- this.modalBodyText = `<p>Votre session a expiré.</p>
9953
- <p>Vous pouvez vous connecter à nouveau pour continuer à utiliser nos services.</p>`;
9954
- this.iamInterceptor.iamExpirationHeaderPresence
9947
+ this.iamInterceptor.isIamSessionExpired
9955
9948
  .pipe(first())
9956
9949
  .subscribe(() => this.showModal());
9957
9950
  }
9951
+ reloadPage() {
9952
+ window.location.reload();
9953
+ }
9958
9954
  showModal() {
9959
9955
  this.counter = 10;
9960
9956
  this.isModalVisible = true;
9961
9957
  setInterval(() => {
9962
9958
  if (0 === this.counter) {
9963
- window.location.reload();
9959
+ this.reloadPage();
9964
9960
  return;
9965
9961
  }
9966
9962
  this.counter--;
@@ -9968,10 +9964,10 @@ class RedirectComponent {
9968
9964
  }
9969
9965
  }
9970
9966
  RedirectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RedirectComponent, deps: [{ token: IamExpiredInterceptorService }], target: i0.ɵɵFactoryTarget.Component });
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"] }] });
9967
+ RedirectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.5", type: RedirectComponent, selector: "redirector", ngImport: i0, template: "<foehn-modal\n [modalHeaderText]=\"'Information'\"\n [isModalVisible]=\"isModalVisible\"\n [closeable]=\"false\"\n>\n <p>Votre session a expir\u00E9.</p>\n <p>Vous pouvez <a href=\"#\" (click)=\"$event.preventDefault(); reloadPage();\">vous connecter</a> \u00E0 nouveau pour continuer \u00E0 utiliser nos services.</p>\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"] }] });
9972
9968
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.5", ngImport: i0, type: RedirectComponent, decorators: [{
9973
9969
  type: Component,
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" }]
9970
+ args: [{ selector: 'redirector', template: "<foehn-modal\n [modalHeaderText]=\"'Information'\"\n [isModalVisible]=\"isModalVisible\"\n [closeable]=\"false\"\n>\n <p>Votre session a expir\u00E9.</p>\n <p>Vous pouvez <a href=\"#\" (click)=\"$event.preventDefault(); reloadPage();\">vous connecter</a> \u00E0 nouveau pour continuer \u00E0 utiliser nos services.</p>\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" }]
9975
9971
  }], ctorParameters: function () { return [{ type: IamExpiredInterceptorService }]; } });
9976
9972
 
9977
9973
  class SdkRedirectModule {