@valtimo/keycloak 12.14.0 → 13.0.0
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/fesm2022/valtimo-keycloak.mjs +41 -42
- package/fesm2022/valtimo-keycloak.mjs.map +1 -1
- package/lib/callback.component.d.ts.map +1 -1
- package/lib/services/keycloak-options.service.d.ts +1 -1
- package/lib/services/keycloak-user.service.d.ts +1 -1
- package/lib/services/keycloak-user.service.d.ts.map +1 -1
- package/package.json +6 -8
- package/esm2022/lib/callback.component.mjs +0 -63
- package/esm2022/lib/constants/index.mjs +0 -17
- package/esm2022/lib/constants/storage-keys.mjs +0 -23
- package/esm2022/lib/keycloak-routing.module.mjs +0 -41
- package/esm2022/lib/keycloak.init.mjs +0 -48
- package/esm2022/lib/keycloak.module.mjs +0 -37
- package/esm2022/lib/models/index.mjs +0 -17
- package/esm2022/lib/models/keycloak.config.mjs +0 -17
- package/esm2022/lib/services/index.mjs +0 -20
- package/esm2022/lib/services/keycloak-auth-guard.service.mjs +0 -59
- package/esm2022/lib/services/keycloak-options.service.mjs +0 -24
- package/esm2022/lib/services/keycloak-storage.service.mjs +0 -43
- package/esm2022/lib/services/keycloak-user.service.mjs +0 -178
- package/esm2022/public_api.mjs +0 -27
- package/esm2022/valtimo-keycloak.mjs +0 -5
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
const STORAGE_KEYS = {
|
|
17
|
-
urlBeforeExpiration: 'urlBeforeExpiration',
|
|
18
|
-
urlBeforeExpirationParams: 'urlBeforeExpirationParams',
|
|
19
|
-
redirectTo: 'redirectTo',
|
|
20
|
-
redirectToParams: 'redirectToParams',
|
|
21
|
-
};
|
|
22
|
-
export { STORAGE_KEYS };
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1rZXlzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9rZXljbG9hay9zcmMvbGliL2NvbnN0YW50cy9zdG9yYWdlLWtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxNQUFNLFlBQVksR0FBRztJQUNuQixtQkFBbUIsRUFBRSxxQkFBcUI7SUFDMUMseUJBQXlCLEVBQUUsMkJBQTJCO0lBQ3RELFVBQVUsRUFBRSxZQUFZO0lBQ3hCLGdCQUFnQixFQUFFLGtCQUFrQjtDQUNyQyxDQUFDO0FBRUYsT0FBTyxFQUFDLFlBQVksRUFBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuY29uc3QgU1RPUkFHRV9LRVlTID0ge1xuICB1cmxCZWZvcmVFeHBpcmF0aW9uOiAndXJsQmVmb3JlRXhwaXJhdGlvbicsXG4gIHVybEJlZm9yZUV4cGlyYXRpb25QYXJhbXM6ICd1cmxCZWZvcmVFeHBpcmF0aW9uUGFyYW1zJyxcbiAgcmVkaXJlY3RUbzogJ3JlZGlyZWN0VG8nLFxuICByZWRpcmVjdFRvUGFyYW1zOiAncmVkaXJlY3RUb1BhcmFtcycsXG59O1xuXG5leHBvcnQge1NUT1JBR0VfS0VZU307XG4iXX0=
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { NgModule } from '@angular/core';
|
|
17
|
-
import { RouterModule } from '@angular/router';
|
|
18
|
-
import { CallbackComponent } from './callback.component';
|
|
19
|
-
import { CommonModule } from '@angular/common';
|
|
20
|
-
import * as i0 from "@angular/core";
|
|
21
|
-
import * as i1 from "@angular/router";
|
|
22
|
-
const routes = [
|
|
23
|
-
{
|
|
24
|
-
path: 'keycloak/callback',
|
|
25
|
-
component: CallbackComponent,
|
|
26
|
-
data: { title: 'Loading...' },
|
|
27
|
-
},
|
|
28
|
-
];
|
|
29
|
-
export class KeycloakRoutingModule {
|
|
30
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
31
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: KeycloakRoutingModule, imports: [CommonModule, i1.RouterModule], exports: [RouterModule] }); }
|
|
32
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] }); }
|
|
33
|
-
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakRoutingModule, decorators: [{
|
|
35
|
-
type: NgModule,
|
|
36
|
-
args: [{
|
|
37
|
-
imports: [CommonModule, RouterModule.forChild(routes)],
|
|
38
|
-
exports: [RouterModule],
|
|
39
|
-
}]
|
|
40
|
-
}] });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWstcm91dGluZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2tleWNsb2FrL3NyYy9saWIva2V5Y2xvYWstcm91dGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7OztBQUU3QyxNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxtQkFBbUI7UUFDekIsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixJQUFJLEVBQUUsRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFDO0tBQzVCO0NBQ0YsQ0FBQztBQU1GLE1BQU0sT0FBTyxxQkFBcUI7K0dBQXJCLHFCQUFxQjtnSEFBckIscUJBQXFCLFlBSHRCLFlBQVksOEJBQ1osWUFBWTtnSEFFWCxxQkFBcUIsWUFIdEIsWUFBWSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzNDLFlBQVk7OzRGQUVYLHFCQUFxQjtrQkFKakMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDdEQsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGUsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Q2FsbGJhY2tDb21wb25lbnR9IGZyb20gJy4vY2FsbGJhY2suY29tcG9uZW50JztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICdrZXljbG9hay9jYWxsYmFjaycsXG4gICAgY29tcG9uZW50OiBDYWxsYmFja0NvbXBvbmVudCxcbiAgICBkYXRhOiB7dGl0bGU6ICdMb2FkaW5nLi4uJ30sXG4gIH0sXG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBLZXljbG9ha1JvdXRpbmdNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { KeycloakService } from 'keycloak-angular';
|
|
17
|
-
import { KeycloakOptionsService, KeycloakStorageService, KeycloakUserService } from './services';
|
|
18
|
-
import { NGXLogger } from 'ngx-logger';
|
|
19
|
-
import { STORAGE_KEYS } from './constants';
|
|
20
|
-
export function keycloakInitializer(injector) {
|
|
21
|
-
const keycloakService = injector.get(KeycloakService);
|
|
22
|
-
const keycloakUserService = injector.get(KeycloakUserService);
|
|
23
|
-
const optionsService = injector.get(KeycloakOptionsService); // TODO possible removal of abstraction
|
|
24
|
-
const storageService = injector.get(KeycloakStorageService);
|
|
25
|
-
const logger = injector.get(NGXLogger);
|
|
26
|
-
return async () => {
|
|
27
|
-
try {
|
|
28
|
-
logger.debug('Keycloak initializer before init');
|
|
29
|
-
const keycloakOptions = optionsService.keycloakOptions;
|
|
30
|
-
const currentUrl = window.location.href.split('#')[0];
|
|
31
|
-
if (keycloakOptions.initOptions.redirectUri !== currentUrl) {
|
|
32
|
-
const redirectTo = storageService.getCurrentUrl();
|
|
33
|
-
logger.debug('Setting redirectTo =', redirectTo);
|
|
34
|
-
window.sessionStorage.setItem(STORAGE_KEYS.redirectTo, redirectTo);
|
|
35
|
-
window.sessionStorage.setItem(STORAGE_KEYS.redirectToParams, storageService.getCurrentUrlParams());
|
|
36
|
-
}
|
|
37
|
-
const initResult = await keycloakService.init(keycloakOptions);
|
|
38
|
-
logger.debug('Keycloak initializer after init');
|
|
39
|
-
keycloakUserService.init();
|
|
40
|
-
return initResult;
|
|
41
|
-
}
|
|
42
|
-
catch (error) {
|
|
43
|
-
logger.debug('Keycloak initializer error', error);
|
|
44
|
-
throw error;
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWsuaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8va2V5Y2xvYWsvc3JjL2xpYi9rZXljbG9hay5pbml0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUUvRixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFekMsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFFBQWtCO0lBQ3BELE1BQU0sZUFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQWtCLGVBQWUsQ0FBQyxDQUFDO0lBQ3ZFLE1BQU0sbUJBQW1CLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBc0IsbUJBQW1CLENBQUMsQ0FBQztJQUNuRixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUF5QixzQkFBc0IsQ0FBQyxDQUFDLENBQUMsdUNBQXVDO0lBQzVILE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQXlCLHNCQUFzQixDQUFDLENBQUM7SUFDcEYsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBWSxTQUFTLENBQUMsQ0FBQztJQUVsRCxPQUFPLEtBQUssSUFBa0IsRUFBRTtRQUM5QixJQUFJLENBQUM7WUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7WUFFakQsTUFBTSxlQUFlLEdBQUcsY0FBYyxDQUFDLGVBQWUsQ0FBQztZQUN2RCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFdEQsSUFBSSxlQUFlLENBQUMsV0FBVyxDQUFDLFdBQVcsS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDM0QsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNsRCxNQUFNLENBQUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUNqRCxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUNuRSxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FDM0IsWUFBWSxDQUFDLGdCQUFnQixFQUM3QixjQUFjLENBQUMsbUJBQW1CLEVBQUUsQ0FDckMsQ0FBQztZQUNKLENBQUM7WUFFRCxNQUFNLFVBQVUsR0FBRyxNQUFNLGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDL0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1lBRWhELG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO1lBRTNCLE9BQU8sVUFBVSxDQUFDO1FBQ3BCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsTUFBTSxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNsRCxNQUFNLEtBQUssQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtLZXljbG9ha1NlcnZpY2V9IGZyb20gJ2tleWNsb2FrLWFuZ3VsYXInO1xuaW1wb3J0IHtLZXljbG9ha09wdGlvbnNTZXJ2aWNlLCBLZXljbG9ha1N0b3JhZ2VTZXJ2aWNlLCBLZXljbG9ha1VzZXJTZXJ2aWNlfSBmcm9tICcuL3NlcnZpY2VzJztcbmltcG9ydCB7SW5qZWN0b3J9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOR1hMb2dnZXJ9IGZyb20gJ25neC1sb2dnZXInO1xuaW1wb3J0IHtTVE9SQUdFX0tFWVN9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGtleWNsb2FrSW5pdGlhbGl6ZXIoaW5qZWN0b3I6IEluamVjdG9yKTogKCkgPT4gUHJvbWlzZTxhbnk+IHtcbiAgY29uc3Qga2V5Y2xvYWtTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0PEtleWNsb2FrU2VydmljZT4oS2V5Y2xvYWtTZXJ2aWNlKTtcbiAgY29uc3Qga2V5Y2xvYWtVc2VyU2VydmljZSA9IGluamVjdG9yLmdldDxLZXljbG9ha1VzZXJTZXJ2aWNlPihLZXljbG9ha1VzZXJTZXJ2aWNlKTtcbiAgY29uc3Qgb3B0aW9uc1NlcnZpY2UgPSBpbmplY3Rvci5nZXQ8S2V5Y2xvYWtPcHRpb25zU2VydmljZT4oS2V5Y2xvYWtPcHRpb25zU2VydmljZSk7IC8vIFRPRE8gcG9zc2libGUgcmVtb3ZhbCBvZiBhYnN0cmFjdGlvblxuICBjb25zdCBzdG9yYWdlU2VydmljZSA9IGluamVjdG9yLmdldDxLZXljbG9ha1N0b3JhZ2VTZXJ2aWNlPihLZXljbG9ha1N0b3JhZ2VTZXJ2aWNlKTtcbiAgY29uc3QgbG9nZ2VyID0gaW5qZWN0b3IuZ2V0PE5HWExvZ2dlcj4oTkdYTG9nZ2VyKTtcblxuICByZXR1cm4gYXN5bmMgKCk6IFByb21pc2U8YW55PiA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGxvZ2dlci5kZWJ1ZygnS2V5Y2xvYWsgaW5pdGlhbGl6ZXIgYmVmb3JlIGluaXQnKTtcblxuICAgICAgY29uc3Qga2V5Y2xvYWtPcHRpb25zID0gb3B0aW9uc1NlcnZpY2Uua2V5Y2xvYWtPcHRpb25zO1xuICAgICAgY29uc3QgY3VycmVudFVybCA9IHdpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCcjJylbMF07XG5cbiAgICAgIGlmIChrZXljbG9ha09wdGlvbnMuaW5pdE9wdGlvbnMucmVkaXJlY3RVcmkgIT09IGN1cnJlbnRVcmwpIHtcbiAgICAgICAgY29uc3QgcmVkaXJlY3RUbyA9IHN0b3JhZ2VTZXJ2aWNlLmdldEN1cnJlbnRVcmwoKTtcbiAgICAgICAgbG9nZ2VyLmRlYnVnKCdTZXR0aW5nIHJlZGlyZWN0VG8gPScsIHJlZGlyZWN0VG8pO1xuICAgICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShTVE9SQUdFX0tFWVMucmVkaXJlY3RUbywgcmVkaXJlY3RUbyk7XG4gICAgICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICAgIFNUT1JBR0VfS0VZUy5yZWRpcmVjdFRvUGFyYW1zLFxuICAgICAgICAgIHN0b3JhZ2VTZXJ2aWNlLmdldEN1cnJlbnRVcmxQYXJhbXMoKVxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpbml0UmVzdWx0ID0gYXdhaXQga2V5Y2xvYWtTZXJ2aWNlLmluaXQoa2V5Y2xvYWtPcHRpb25zKTtcbiAgICAgIGxvZ2dlci5kZWJ1ZygnS2V5Y2xvYWsgaW5pdGlhbGl6ZXIgYWZ0ZXIgaW5pdCcpO1xuXG4gICAgICBrZXljbG9ha1VzZXJTZXJ2aWNlLmluaXQoKTtcblxuICAgICAgcmV0dXJuIGluaXRSZXN1bHQ7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZygnS2V5Y2xvYWsgaW5pdGlhbGl6ZXIgZXJyb3InLCBlcnJvcik7XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG4gIH07XG59XG4iXX0=
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { NgModule } from '@angular/core';
|
|
17
|
-
import { KeycloakAngularModule } from 'keycloak-angular';
|
|
18
|
-
import { CallbackComponent } from './callback.component';
|
|
19
|
-
import { KeycloakRoutingModule } from './keycloak-routing.module';
|
|
20
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
21
|
-
import { DatePipe } from '@angular/common';
|
|
22
|
-
import * as i0 from "@angular/core";
|
|
23
|
-
export class KeycloakModule {
|
|
24
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
25
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: KeycloakModule, declarations: [CallbackComponent], imports: [KeycloakRoutingModule, KeycloakAngularModule, TranslateModule], exports: [CallbackComponent] }); }
|
|
26
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakModule, providers: [DatePipe], imports: [KeycloakRoutingModule, KeycloakAngularModule, TranslateModule] }); }
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakModule, decorators: [{
|
|
29
|
-
type: NgModule,
|
|
30
|
-
args: [{
|
|
31
|
-
declarations: [CallbackComponent],
|
|
32
|
-
imports: [KeycloakRoutingModule, KeycloakAngularModule, TranslateModule],
|
|
33
|
-
exports: [CallbackComponent],
|
|
34
|
-
providers: [DatePipe],
|
|
35
|
-
}]
|
|
36
|
-
}] });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWsubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9rZXljbG9hay9zcmMvbGliL2tleWNsb2FrLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFRekMsTUFBTSxPQUFPLGNBQWM7K0dBQWQsY0FBYztnSEFBZCxjQUFjLGlCQUxWLGlCQUFpQixhQUN0QixxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxlQUFlLGFBQzdELGlCQUFpQjtnSEFHaEIsY0FBYyxhQUZkLENBQUMsUUFBUSxDQUFDLFlBRlgscUJBQXFCLEVBQUUscUJBQXFCLEVBQUUsZUFBZTs7NEZBSTVELGNBQWM7a0JBTjFCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsaUJBQWlCLENBQUM7b0JBQ2pDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixFQUFFLHFCQUFxQixFQUFFLGVBQWUsQ0FBQztvQkFDeEUsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7b0JBQzVCLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztpQkFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7S2V5Y2xvYWtBbmd1bGFyTW9kdWxlfSBmcm9tICdrZXljbG9hay1hbmd1bGFyJztcbmltcG9ydCB7Q2FsbGJhY2tDb21wb25lbnR9IGZyb20gJy4vY2FsbGJhY2suY29tcG9uZW50JztcbmltcG9ydCB7S2V5Y2xvYWtSb3V0aW5nTW9kdWxlfSBmcm9tICcuL2tleWNsb2FrLXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0NhbGxiYWNrQ29tcG9uZW50XSxcbiAgaW1wb3J0czogW0tleWNsb2FrUm91dGluZ01vZHVsZSwgS2V5Y2xvYWtBbmd1bGFyTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICBleHBvcnRzOiBbQ2FsbGJhY2tDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtEYXRlUGlwZV0sXG59KVxuZXhwb3J0IGNsYXNzIEtleWNsb2FrTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
export * from './keycloak.config';
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2tleWNsb2FrL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4va2V5Y2xvYWsuY29uZmlnJztcbiJdfQ==
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWsuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9rZXljbG9hay9zcmMvbGliL21vZGVscy9rZXljbG9hay5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0tleWNsb2FrT3B0aW9uc30gZnJvbSAna2V5Y2xvYWstYW5ndWxhcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdGltb0tleWNsb2FrT3B0aW9ucyB7XG4gIGtleWNsb2FrT3B0aW9uczogS2V5Y2xvYWtPcHRpb25zO1xuICBsb2dvdXRSZWRpcmVjdFVyaTogc3RyaW5nO1xufVxuIl19
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
export * from './keycloak-auth-guard.service';
|
|
17
|
-
export * from './keycloak-options.service';
|
|
18
|
-
export * from './keycloak-user.service';
|
|
19
|
-
export * from './keycloak-storage.service';
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2tleWNsb2FrL3NyYy9saWIvc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9rZXljbG9hay1hdXRoLWd1YXJkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9rZXljbG9hay1vcHRpb25zLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9rZXljbG9hay11c2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9rZXljbG9hay1zdG9yYWdlLnNlcnZpY2UnO1xuIl19
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { Injectable } from '@angular/core';
|
|
17
|
-
import { KeycloakAuthGuard } from 'keycloak-angular';
|
|
18
|
-
import * as i0 from "@angular/core";
|
|
19
|
-
import * as i1 from "@angular/router";
|
|
20
|
-
import * as i2 from "keycloak-angular";
|
|
21
|
-
import * as i3 from "ngx-logger";
|
|
22
|
-
export class KeycloakAuthGuardService extends KeycloakAuthGuard {
|
|
23
|
-
constructor(router, keycloakAngular, logger) {
|
|
24
|
-
super(router, keycloakAngular);
|
|
25
|
-
this.router = router;
|
|
26
|
-
this.keycloakAngular = keycloakAngular;
|
|
27
|
-
this.logger = logger;
|
|
28
|
-
this.logger.debug('KeycloakAuthGuardService: ctor');
|
|
29
|
-
}
|
|
30
|
-
isAccessAllowed(route, state) {
|
|
31
|
-
this.logger.debug('KeycloakAuthGuardService: isAccessAllowed');
|
|
32
|
-
return new Promise((resolve, reject) => {
|
|
33
|
-
this.logger.debug('KeycloakAuthGuardService: isAccessAllowed checking access');
|
|
34
|
-
if (!this.authenticated) {
|
|
35
|
-
this.keycloakAngular
|
|
36
|
-
.login()
|
|
37
|
-
.catch(e => `KeycloakAuthGuardService error: ${this.logger.error(e)}`);
|
|
38
|
-
return reject(false);
|
|
39
|
-
}
|
|
40
|
-
const requiredRoles = route.data.roles;
|
|
41
|
-
if (!requiredRoles || requiredRoles.length === 0) {
|
|
42
|
-
return resolve(true);
|
|
43
|
-
}
|
|
44
|
-
if (!this.roles || this.roles.length === 0) {
|
|
45
|
-
resolve(false);
|
|
46
|
-
}
|
|
47
|
-
resolve(requiredRoles.some(role => this.roles.includes(role)));
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakAuthGuardService, deps: [{ token: i1.Router }, { token: i2.KeycloakService }, { token: i3.NGXLogger }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
51
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakAuthGuardService, providedIn: 'root' }); }
|
|
52
|
-
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakAuthGuardService, decorators: [{
|
|
54
|
-
type: Injectable,
|
|
55
|
-
args: [{
|
|
56
|
-
providedIn: 'root',
|
|
57
|
-
}]
|
|
58
|
-
}], ctorParameters: () => [{ type: i1.Router }, { type: i2.KeycloakService }, { type: i3.NGXLogger }] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWstYXV0aC1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9rZXljbG9hay9zcmMvbGliL3NlcnZpY2VzL2tleWNsb2FrLWF1dGgtZ3VhcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLGlCQUFpQixFQUFrQixNQUFNLGtCQUFrQixDQUFDOzs7OztBQU9wRSxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsaUJBQWlCO0lBQzdELFlBQ1ksTUFBYyxFQUNkLGVBQWdDLEVBQ2xDLE1BQWlCO1FBRXpCLEtBQUssQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFKckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBR3pCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUE2QixFQUFFLEtBQTBCO1FBQ3ZFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDL0QsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1lBQy9FLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxlQUFlO3FCQUNqQixLQUFLLEVBQUU7cUJBQ1AsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsbUNBQW1DLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDekUsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsQ0FBQztZQUVELE1BQU0sYUFBYSxHQUFhLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBRWpELElBQUksQ0FBQyxhQUFhLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakQsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkIsQ0FBQztZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakIsQ0FBQztZQUNELE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FoQ1Usd0JBQXdCO21IQUF4Qix3QkFBd0IsY0FGdkIsTUFBTTs7NEZBRVAsd0JBQXdCO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0tleWNsb2FrQXV0aEd1YXJkLCBLZXljbG9ha1NlcnZpY2V9IGZyb20gJ2tleWNsb2FrLWFuZ3VsYXInO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgUm91dGVyLCBSb3V0ZXJTdGF0ZVNuYXBzaG90fSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtOR1hMb2dnZXJ9IGZyb20gJ25neC1sb2dnZXInO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgS2V5Y2xvYWtBdXRoR3VhcmRTZXJ2aWNlIGV4dGVuZHMgS2V5Y2xvYWtBdXRoR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlcixcbiAgICBwcm90ZWN0ZWQga2V5Y2xvYWtBbmd1bGFyOiBLZXljbG9ha1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsb2dnZXI6IE5HWExvZ2dlclxuICApIHtcbiAgICBzdXBlcihyb3V0ZXIsIGtleWNsb2FrQW5ndWxhcik7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0tleWNsb2FrQXV0aEd1YXJkU2VydmljZTogY3RvcicpO1xuICB9XG5cbiAgaXNBY2Nlc3NBbGxvd2VkKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdLZXljbG9ha0F1dGhHdWFyZFNlcnZpY2U6IGlzQWNjZXNzQWxsb3dlZCcpO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnS2V5Y2xvYWtBdXRoR3VhcmRTZXJ2aWNlOiBpc0FjY2Vzc0FsbG93ZWQgY2hlY2tpbmcgYWNjZXNzJyk7XG4gICAgICBpZiAoIXRoaXMuYXV0aGVudGljYXRlZCkge1xuICAgICAgICB0aGlzLmtleWNsb2FrQW5ndWxhclxuICAgICAgICAgIC5sb2dpbigpXG4gICAgICAgICAgLmNhdGNoKGUgPT4gYEtleWNsb2FrQXV0aEd1YXJkU2VydmljZSBlcnJvcjogJHt0aGlzLmxvZ2dlci5lcnJvcihlKX1gKTtcbiAgICAgICAgcmV0dXJuIHJlamVjdChmYWxzZSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlcXVpcmVkUm9sZXM6IHN0cmluZ1tdID0gcm91dGUuZGF0YS5yb2xlcztcblxuICAgICAgaWYgKCFyZXF1aXJlZFJvbGVzIHx8IHJlcXVpcmVkUm9sZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiByZXNvbHZlKHRydWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMucm9sZXMgfHwgdGhpcy5yb2xlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICB9XG4gICAgICByZXNvbHZlKHJlcXVpcmVkUm9sZXMuc29tZShyb2xlID0+IHRoaXMucm9sZXMuaW5jbHVkZXMocm9sZSkpKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@valtimo/config";
|
|
4
|
-
export class KeycloakOptionsService {
|
|
5
|
-
constructor(configService) {
|
|
6
|
-
this.configService = configService;
|
|
7
|
-
this.valtimoKeycloakOptions = configService.config.authentication.options;
|
|
8
|
-
}
|
|
9
|
-
get keycloakOptions() {
|
|
10
|
-
return this.valtimoKeycloakOptions.keycloakOptions;
|
|
11
|
-
}
|
|
12
|
-
get logoutRedirectUri() {
|
|
13
|
-
return this.valtimoKeycloakOptions.logoutRedirectUri;
|
|
14
|
-
}
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakOptionsService, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
16
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakOptionsService, providedIn: 'root' }); }
|
|
17
|
-
}
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakOptionsService, decorators: [{
|
|
19
|
-
type: Injectable,
|
|
20
|
-
args: [{
|
|
21
|
-
providedIn: 'root',
|
|
22
|
-
}]
|
|
23
|
-
}], ctorParameters: () => [{ type: i1.ConfigService }] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWstb3B0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9rZXljbG9hay9zcmMvbGliL3NlcnZpY2VzL2tleWNsb2FrLW9wdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBTXpDLE1BQU0sT0FBTyxzQkFBc0I7SUFHakMsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDOUMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQztJQUM1RSxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLENBQUM7SUFDdkQsQ0FBQzsrR0FiVSxzQkFBc0I7bUhBQXRCLHNCQUFzQixjQUZyQixNQUFNOzs0RkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtWYWx0aW1vS2V5Y2xvYWtPcHRpb25zfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29uZmlnU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEtleWNsb2FrT3B0aW9uc1NlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHZhbHRpbW9LZXljbG9ha09wdGlvbnM6IFZhbHRpbW9LZXljbG9ha09wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlKSB7XG4gICAgdGhpcy52YWx0aW1vS2V5Y2xvYWtPcHRpb25zID0gY29uZmlnU2VydmljZS5jb25maWcuYXV0aGVudGljYXRpb24ub3B0aW9ucztcbiAgfVxuXG4gIGdldCBrZXljbG9ha09wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdGltb0tleWNsb2FrT3B0aW9ucy5rZXljbG9ha09wdGlvbnM7XG4gIH1cblxuICBnZXQgbG9nb3V0UmVkaXJlY3RVcmkoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdGltb0tleWNsb2FrT3B0aW9ucy5sb2dvdXRSZWRpcmVjdFVyaTtcbiAgfVxufVxuIl19
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { Injectable } from '@angular/core';
|
|
17
|
-
import * as i0 from "@angular/core";
|
|
18
|
-
export class KeycloakStorageService {
|
|
19
|
-
getCurrentUrlParams() {
|
|
20
|
-
const urlSearchParams = new URLSearchParams(window.location.search);
|
|
21
|
-
const params = Object.fromEntries(urlSearchParams.entries());
|
|
22
|
-
return JSON.stringify(params);
|
|
23
|
-
}
|
|
24
|
-
getCurrentUrl() {
|
|
25
|
-
return window.location.pathname;
|
|
26
|
-
}
|
|
27
|
-
parseSavedParams(savedParams) {
|
|
28
|
-
return ((savedParams &&
|
|
29
|
-
typeof savedParams === 'string' &&
|
|
30
|
-
savedParams.length > 2 &&
|
|
31
|
-
JSON.parse(savedParams)) ||
|
|
32
|
-
{});
|
|
33
|
-
}
|
|
34
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
35
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakStorageService, providedIn: 'root' }); }
|
|
36
|
-
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakStorageService, decorators: [{
|
|
38
|
-
type: Injectable,
|
|
39
|
-
args: [{
|
|
40
|
-
providedIn: 'root',
|
|
41
|
-
}]
|
|
42
|
-
}] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWstc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9rZXljbG9hay9zcmMvbGliL3NlcnZpY2VzL2tleWNsb2FrLXN0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBS3pDLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsbUJBQW1CO1FBQ2pCLE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM3RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxXQUFnQjtRQUMvQixPQUFPLENBQ0wsQ0FBQyxXQUFXO1lBQ1YsT0FBTyxXQUFXLEtBQUssUUFBUTtZQUMvQixXQUFXLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMxQixFQUFFLENBQ0gsQ0FBQztJQUNKLENBQUM7K0dBbkJVLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07OzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgS2V5Y2xvYWtTdG9yYWdlU2VydmljZSB7XG4gIGdldEN1cnJlbnRVcmxQYXJhbXMoKTogc3RyaW5nIHtcbiAgICBjb25zdCB1cmxTZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpO1xuICAgIGNvbnN0IHBhcmFtcyA9IE9iamVjdC5mcm9tRW50cmllcyh1cmxTZWFyY2hQYXJhbXMuZW50cmllcygpKTtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocGFyYW1zKTtcbiAgfVxuXG4gIGdldEN1cnJlbnRVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO1xuICB9XG5cbiAgcGFyc2VTYXZlZFBhcmFtcyhzYXZlZFBhcmFtczogYW55KToge1trZXk6IHN0cmluZ106IHN0cmluZ30ge1xuICAgIHJldHVybiAoXG4gICAgICAoc2F2ZWRQYXJhbXMgJiZcbiAgICAgICAgdHlwZW9mIHNhdmVkUGFyYW1zID09PSAnc3RyaW5nJyAmJlxuICAgICAgICBzYXZlZFBhcmFtcy5sZW5ndGggPiAyICYmXG4gICAgICAgIEpTT04ucGFyc2Uoc2F2ZWRQYXJhbXMpKSB8fFxuICAgICAge31cbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { Injectable } from '@angular/core';
|
|
17
|
-
import { combineLatest, ReplaySubject, Subject, switchMap, timer } from 'rxjs';
|
|
18
|
-
import { KeycloakEventType } from 'keycloak-angular';
|
|
19
|
-
import { ValtimoUserIdentity } from '@valtimo/config';
|
|
20
|
-
import { jwtDecode } from 'jwt-decode';
|
|
21
|
-
import { take } from 'rxjs/operators';
|
|
22
|
-
import { STORAGE_KEYS } from '../constants';
|
|
23
|
-
import * as i0 from "@angular/core";
|
|
24
|
-
import * as i1 from "keycloak-angular";
|
|
25
|
-
import * as i2 from "./keycloak-options.service";
|
|
26
|
-
import * as i3 from "ngx-logger";
|
|
27
|
-
import * as i4 from "@valtimo/components";
|
|
28
|
-
import * as i5 from "@ngx-translate/core";
|
|
29
|
-
import * as i6 from "@angular/common";
|
|
30
|
-
import * as i7 from "@valtimo/config";
|
|
31
|
-
import * as i8 from "@angular/router";
|
|
32
|
-
import * as i9 from "./keycloak-storage.service";
|
|
33
|
-
export class KeycloakUserService {
|
|
34
|
-
constructor(keycloakService, keycloakOptionsService, logger, promptService, translateService, datePipe, configService, router, keycloakStorageService) {
|
|
35
|
-
this.keycloakService = keycloakService;
|
|
36
|
-
this.keycloakOptionsService = keycloakOptionsService;
|
|
37
|
-
this.logger = logger;
|
|
38
|
-
this.promptService = promptService;
|
|
39
|
-
this.translateService = translateService;
|
|
40
|
-
this.datePipe = datePipe;
|
|
41
|
-
this.configService = configService;
|
|
42
|
-
this.router = router;
|
|
43
|
-
this.keycloakStorageService = keycloakStorageService;
|
|
44
|
-
this._refreshToken$ = new Subject();
|
|
45
|
-
this.FIVE_MINUTES_MS = 300000;
|
|
46
|
-
this.EXPIRE_TOKEN_CONFIRMATION = 'EXPIRE_TOKEN_CONFIRMATION';
|
|
47
|
-
this.openTokenRefreshSubscription();
|
|
48
|
-
this.openRefreshTokenSubscription();
|
|
49
|
-
}
|
|
50
|
-
ngOnDestroy() {
|
|
51
|
-
this.tokenRefreshSubscription?.unsubscribe();
|
|
52
|
-
this.refreshTokenSubscription?.unsubscribe();
|
|
53
|
-
this.closeExpiryTimerSubscription();
|
|
54
|
-
}
|
|
55
|
-
init() {
|
|
56
|
-
this.userIdentity = new ReplaySubject();
|
|
57
|
-
this.keycloakService.loadUserProfile().then(user => {
|
|
58
|
-
this.logger.debug('KeycloakUserService: loadUserProfile = ', user);
|
|
59
|
-
const roles = [];
|
|
60
|
-
this.keycloakService.getUserRoles(true).forEach(role => roles.push(role));
|
|
61
|
-
const valtimoUserIdentity = new ValtimoUserIdentity(user.email, user.firstName, user.lastName, roles, user.username, user.id);
|
|
62
|
-
this.logger.debug('KeycloakUserService: loaded user identity', valtimoUserIdentity);
|
|
63
|
-
this.userIdentity.next(valtimoUserIdentity);
|
|
64
|
-
});
|
|
65
|
-
this.setRefreshToken();
|
|
66
|
-
}
|
|
67
|
-
getUserSubject() {
|
|
68
|
-
this.logger.debug('KeycloakUserService: getUserIdentity');
|
|
69
|
-
return this.userIdentity;
|
|
70
|
-
}
|
|
71
|
-
logout() {
|
|
72
|
-
this.logger.debug('KeycloakUserService: logout');
|
|
73
|
-
this.keycloakService.logout(this.keycloakOptionsService.logoutRedirectUri);
|
|
74
|
-
}
|
|
75
|
-
async getToken() {
|
|
76
|
-
this.logger.debug('KeycloakUserService: getToken');
|
|
77
|
-
return this.keycloakService.getToken();
|
|
78
|
-
}
|
|
79
|
-
async updateToken(minValidity) {
|
|
80
|
-
this.logger.debug('KeycloakUserService: updateToken');
|
|
81
|
-
return this.keycloakService.updateToken(minValidity);
|
|
82
|
-
}
|
|
83
|
-
openTokenRefreshSubscription() {
|
|
84
|
-
this.tokenRefreshSubscription = this.keycloakService.keycloakEvents$.subscribe(keycloakEvent => {
|
|
85
|
-
if (keycloakEvent.type === KeycloakEventType.OnAuthRefreshSuccess) {
|
|
86
|
-
this.setRefreshToken();
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
get _expiryTimeMs() {
|
|
91
|
-
return this._tokenExp - Date.now() - 1000;
|
|
92
|
-
}
|
|
93
|
-
openRefreshTokenSubscription() {
|
|
94
|
-
this.refreshTokenSubscription = this._refreshToken$.subscribe(refreshToken => {
|
|
95
|
-
const decodedRefreshToken = jwtDecode(refreshToken);
|
|
96
|
-
this._tokenExp = decodedRefreshToken.exp * 1000;
|
|
97
|
-
this.closeExpiryTimerSubscription();
|
|
98
|
-
this.openExpiryTimerSubscription();
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
setRefreshToken() {
|
|
102
|
-
const refreshToken = this.keycloakService.getKeycloakInstance()?.refreshToken;
|
|
103
|
-
if (refreshToken)
|
|
104
|
-
this._refreshToken$.next(refreshToken);
|
|
105
|
-
}
|
|
106
|
-
openExpiryTimerSubscription() {
|
|
107
|
-
this.expiryTimerSubscription = timer(0, 1000)
|
|
108
|
-
.pipe(switchMap(() => {
|
|
109
|
-
if (this._expiryTimeMs <= this.FIVE_MINUTES_MS) {
|
|
110
|
-
this._counter = new Date(0, 0, 0, 0, 0, 0);
|
|
111
|
-
this._counter.setSeconds(this._expiryTimeMs / 1000);
|
|
112
|
-
}
|
|
113
|
-
return combineLatest([
|
|
114
|
-
this.promptService.promptVisible$,
|
|
115
|
-
this.translateService.stream('keycloak.expiryPromptTitle'),
|
|
116
|
-
this.translateService.stream('keycloak.expiryPromptDescription', {
|
|
117
|
-
expiryTime: this.datePipe.transform(this._counter, 'mm:ss'),
|
|
118
|
-
}),
|
|
119
|
-
this.translateService.stream('keycloak.expiryPromptCancel'),
|
|
120
|
-
this.translateService.stream('keycloak.expiryPromptConfirm'),
|
|
121
|
-
]);
|
|
122
|
-
}))
|
|
123
|
-
.subscribe(([promptVisible, headerText, bodyText, cancelButtonText, confirmButtonText]) => {
|
|
124
|
-
this.promptService.identifier$.pipe(take(1)).subscribe(identifier => {
|
|
125
|
-
if ((!promptVisible || identifier !== this.EXPIRE_TOKEN_CONFIRMATION) &&
|
|
126
|
-
this._expiryTimeMs <= this.FIVE_MINUTES_MS) {
|
|
127
|
-
this.openConfirmationPrompt(headerText, bodyText, cancelButtonText, confirmButtonText);
|
|
128
|
-
}
|
|
129
|
-
if (promptVisible && identifier === this.EXPIRE_TOKEN_CONFIRMATION) {
|
|
130
|
-
this.promptService.setBodyText(bodyText);
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
if (this._expiryTimeMs < 2000) {
|
|
134
|
-
this.saveUrl();
|
|
135
|
-
this.logout();
|
|
136
|
-
}
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
closeExpiryTimerSubscription() {
|
|
140
|
-
this.expiryTimerSubscription?.unsubscribe();
|
|
141
|
-
}
|
|
142
|
-
openConfirmationPrompt(headerText, bodyText, cancelButtonText, confirmButtonText) {
|
|
143
|
-
this.promptService.openPrompt({
|
|
144
|
-
identifier: this.EXPIRE_TOKEN_CONFIRMATION,
|
|
145
|
-
headerText,
|
|
146
|
-
bodyText,
|
|
147
|
-
cancelButtonText,
|
|
148
|
-
confirmButtonText,
|
|
149
|
-
cancelMdiIcon: 'logout',
|
|
150
|
-
confirmMdiIcon: 'check',
|
|
151
|
-
closeOnConfirm: true,
|
|
152
|
-
closeOnCancel: false,
|
|
153
|
-
cancelCallbackFunction: () => {
|
|
154
|
-
this.keycloakService.logout();
|
|
155
|
-
},
|
|
156
|
-
confirmCallBackFunction: () => {
|
|
157
|
-
this.closeExpiryTimerSubscription();
|
|
158
|
-
this.updateToken(20);
|
|
159
|
-
},
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
saveUrl() {
|
|
163
|
-
const returnToLastUrlAfterTokenExpiration = this.configService?.config?.featureToggles?.returnToLastUrlAfterTokenExpiration;
|
|
164
|
-
if (returnToLastUrlAfterTokenExpiration) {
|
|
165
|
-
sessionStorage.setItem(STORAGE_KEYS.urlBeforeExpiration, this.keycloakStorageService.getCurrentUrl());
|
|
166
|
-
sessionStorage.setItem(STORAGE_KEYS.urlBeforeExpirationParams, this.keycloakStorageService.getCurrentUrlParams());
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakUserService, deps: [{ token: i1.KeycloakService }, { token: i2.KeycloakOptionsService }, { token: i3.NGXLogger }, { token: i4.PromptService }, { token: i5.TranslateService }, { token: i6.DatePipe }, { token: i7.ConfigService }, { token: i8.Router }, { token: i9.KeycloakStorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
170
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakUserService, providedIn: 'root' }); }
|
|
171
|
-
}
|
|
172
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: KeycloakUserService, decorators: [{
|
|
173
|
-
type: Injectable,
|
|
174
|
-
args: [{
|
|
175
|
-
providedIn: 'root',
|
|
176
|
-
}]
|
|
177
|
-
}], ctorParameters: () => [{ type: i1.KeycloakService }, { type: i2.KeycloakOptionsService }, { type: i3.NGXLogger }, { type: i4.PromptService }, { type: i5.TranslateService }, { type: i6.DatePipe }, { type: i7.ConfigService }, { type: i8.Router }, { type: i9.KeycloakStorageService }] });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWstdXNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9rZXljbG9hay9zcmMvbGliL3NlcnZpY2VzL2tleWNsb2FrLXVzZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLGFBQWEsRUFBTyxhQUFhLEVBQUUsT0FBTyxFQUFnQixTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRWhHLE9BQU8sRUFBQyxpQkFBaUIsRUFBa0IsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRSxPQUFPLEVBQTJDLG1CQUFtQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFOUYsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUdyQyxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7Ozs7QUFPMUMsTUFBTSxPQUFPLG1CQUFtQjtJQWdCOUIsWUFDbUIsZUFBZ0MsRUFDaEMsc0JBQThDLEVBQzlDLE1BQWlCLEVBQ2pCLGFBQTRCLEVBQzVCLGdCQUFrQyxFQUNsQyxRQUFrQixFQUNsQixhQUE0QixFQUM1QixNQUFjLEVBQ2Qsc0JBQThDO1FBUjlDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVC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O1lBQ0YsY0FBYyxDQUFDLE9BQU8sQ0FDcEIsWUFBWSxDQUFDLHlCQUF5QixFQUN0QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLEVBQUUsQ0FDbEQsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOytHQS9MVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBtYXAsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgc3dpdGNoTWFwLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge05HWExvZ2dlcn0gZnJvbSAnbmd4LWxvZ2dlcic7XG5pbXBvcnQge0tleWNsb2FrRXZlbnRUeXBlLCBLZXljbG9ha1NlcnZpY2V9IGZyb20gJ2tleWNsb2FrLWFuZ3VsYXInO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlLCBVc2VySWRlbnRpdHksIFVzZXJTZXJ2aWNlLCBWYWx0aW1vVXNlcklkZW50aXR5fSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtLZXljbG9ha09wdGlvbnNTZXJ2aWNlfSBmcm9tICcuL2tleWNsb2FrLW9wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQge2p3dERlY29kZX0gZnJvbSAnand0LWRlY29kZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtEYXRlUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1NUT1JBR0VfS0VZU30gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7S2V5Y2xvYWtTdG9yYWdlU2VydmljZX0gZnJvbSAnLi9rZXljbG9hay1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHtQcm9tcHRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEtleWNsb2FrVXNlclNlcnZpY2UgaW1wbGVtZW50cyBVc2VyU2VydmljZSwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSB1c2VySWRlbnRpdHk6IFJlcGxheVN1YmplY3Q8VXNlcklkZW50aXR5PjtcblxuICBwcml2YXRlIHRva2VuUmVmcmVzaFN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSByZWZyZXNoVG9rZW5TdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgZXhwaXJ5VGltZXJTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVmcmVzaFRva2VuJCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICBwcml2YXRlIF90b2tlbkV4cCE6IG51bWJlcjtcblxuICBwcml2YXRlIHJlYWRvbmx5IEZJVkVfTUlOVVRFU19NUyA9IDMwMDAwMDtcbiAgcHJpdmF0ZSByZWFkb25seSBFWFBJUkVfVE9LRU5fQ09ORklSTUFUSU9OID0gJ0VYUElSRV9UT0tFTl9DT05GSVJNQVRJT04nO1xuXG4gIHByaXZhdGUgX2NvdW50ZXIhOiBEYXRlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkga2V5Y2xvYWtTZXJ2aWNlOiBLZXljbG9ha1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBrZXljbG9ha09wdGlvbnNTZXJ2aWNlOiBLZXljbG9ha09wdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBOR1hMb2dnZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9tcHRTZXJ2aWNlOiBQcm9tcHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGVQaXBlOiBEYXRlUGlwZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGtleWNsb2FrU3RvcmFnZVNlcnZpY2U6IEtleWNsb2FrU3RvcmFnZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5vcGVuVG9rZW5SZWZyZXNoU3Vic2NyaXB0aW9uKCk7XG4gICAgdGhpcy5vcGVuUmVmcmVzaFRva2VuU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnRva2VuUmVmcmVzaFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnJlZnJlc2hUb2tlblN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNsb3NlRXhwaXJ5VGltZXJTdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIGluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51c2VySWRlbnRpdHkgPSBuZXcgUmVwbGF5U3ViamVjdCgpO1xuICAgIHRoaXMua2V5Y2xvYWtTZXJ2aWNlLmxvYWRVc2VyUHJvZmlsZSgpLnRoZW4odXNlciA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnS2V5Y2xvYWtVc2VyU2VydmljZTogbG9hZFVzZXJQcm9maWxlID0gJywgdXNlcik7XG4gICAgICBjb25zdCByb2xlczogQXJyYXk8c3RyaW5nPiA9IFtdO1xuICAgICAgdGhpcy5rZXljbG9ha1NlcnZpY2UuZ2V0VXNlclJvbGVzKHRydWUpLmZvckVhY2gocm9sZSA9PiByb2xlcy5wdXNoKHJvbGUpKTtcbiAgICAgIGNvbnN0IHZhbHRpbW9Vc2VySWRlbnRpdHkgPSBuZXcgVmFsdGltb1VzZXJJZGVudGl0eShcbiAgICAgICAgdXNlci5lbWFpbCxcbiAgICAgICAgdXNlci5maXJzdE5hbWUsXG4gICAgICAgIHVzZXIubGFzdE5hbWUsXG4gICAgICAgIHJvbGVzLFxuICAgICAgICB1c2VyLnVzZXJuYW1lLFxuICAgICAgICB1c2VyLmlkXG4gICAgICApO1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ0tleWNsb2FrVXNlclNlcnZpY2U6IGxvYWRlZCB1c2VyIGlkZW50aXR5JywgdmFsdGltb1VzZXJJZGVudGl0eSk7XG4gICAgICB0aGlzLnVzZXJJZGVudGl0eS5uZXh0KHZhbHRpbW9Vc2VySWRlbnRpdHkpO1xuICAgIH0pO1xuICAgIHRoaXMuc2V0UmVmcmVzaFRva2VuKCk7XG4gIH1cblxuICBnZXRVc2VyU3ViamVjdCgpOiBSZXBsYXlTdWJqZWN0PFVzZXJJZGVudGl0eT4ge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdLZXljbG9ha1VzZXJTZXJ2aWNlOiBnZXRVc2VySWRlbnRpdHknKTtcbiAgICByZXR1cm4gdGhpcy51c2VySWRlbnRpdHk7XG4gIH1cblxuICBsb2dvdXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ0tleWNsb2FrVXNlclNlcnZpY2U6IGxvZ291dCcpO1xuICAgIHRoaXMua2V5Y2xvYWtTZXJ2aWNlLmxvZ291dCh0aGlzLmtleWNsb2FrT3B0aW9uc1NlcnZpY2UubG9nb3V0UmVkaXJlY3RVcmkpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VG9rZW4oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnS2V5Y2xvYWtVc2VyU2VydmljZTogZ2V0VG9rZW4nKTtcbiAgICByZXR1cm4gdGhpcy5rZXljbG9ha1NlcnZpY2UuZ2V0VG9rZW4oKTtcbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZVRva2VuKG1pblZhbGlkaXR5OiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnS2V5Y2xvYWtVc2VyU2VydmljZTogdXBkYXRlVG9rZW4nKTtcbiAgICByZXR1cm4gdGhpcy5rZXljbG9ha1NlcnZpY2UudXBkYXRlVG9rZW4obWluVmFsaWRpdHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuVG9rZW5SZWZyZXNoU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMudG9rZW5SZWZyZXNoU3Vic2NyaXB0aW9uID0gdGhpcy5rZXljbG9ha1NlcnZpY2Uua2V5Y2xvYWtFdmVudHMkLnN1YnNjcmliZShcbiAgICAgIGtleWNsb2FrRXZlbnQgPT4ge1xuICAgICAgICBpZiAoa2V5Y2xvYWtFdmVudC50eXBlID09PSBLZXljbG9ha0V2ZW50VHlwZS5PbkF1dGhSZWZyZXNoU3VjY2Vzcykge1xuICAgICAgICAgIHRoaXMuc2V0UmVmcmVzaFRva2VuKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2V4cGlyeVRpbWVNcygpIHtcbiAgICByZXR1cm4gdGhpcy5fdG9rZW5FeHAgLSBEYXRlLm5vdygpIC0gMTAwMDtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblJlZnJlc2hUb2tlblN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnJlZnJlc2hUb2tlblN1YnNjcmlwdGlvbiA9IHRoaXMuX3JlZnJlc2hUb2tlbiQuc3Vic2NyaWJlKHJlZnJlc2hUb2tlbiA9PiB7XG4gICAgICBjb25zdCBkZWNvZGVkUmVmcmVzaFRva2VuID0gand0RGVjb2RlKHJlZnJlc2hUb2tlbik7XG4gICAgICB0aGlzLl90b2tlbkV4cCA9IGRlY29kZWRSZWZyZXNoVG9rZW4uZXhwICogMTAwMDtcblxuICAgICAgdGhpcy5jbG9zZUV4cGlyeVRpbWVyU3Vic2NyaXB0aW9uKCk7XG4gICAgICB0aGlzLm9wZW5FeHBpcnlUaW1lclN1YnNjcmlwdGlvbigpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRSZWZyZXNoVG9rZW4oKTogdm9pZCB7XG4gICAgY29uc3QgcmVmcmVzaFRva2VuID0gdGhpcy5rZXljbG9ha1NlcnZpY2UuZ2V0S2V5Y2xvYWtJbnN0YW5jZSgpPy5yZWZyZXNoVG9rZW47XG4gICAgaWYgKHJlZnJlc2hUb2tlbikgdGhpcy5fcmVmcmVzaFRva2VuJC5uZXh0KHJlZnJlc2hUb2tlbik7XG4gIH1cblxuICBwcml2YXRlIG9wZW5FeHBpcnlUaW1lclN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmV4cGlyeVRpbWVyU3Vic2NyaXB0aW9uID0gdGltZXIoMCwgMTAwMClcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLl9leHBpcnlUaW1lTXMgPD0gdGhpcy5GSVZFX01JTlVURVNfTVMpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvdW50ZXIgPSBuZXcgRGF0ZSgwLCAwLCAwLCAwLCAwLCAwKTtcbiAgICAgICAgICAgIHRoaXMuX2NvdW50ZXIuc2V0U2Vjb25kcyh0aGlzLl9leHBpcnlUaW1lTXMgLyAxMDAwKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLnByb21wdFNlcnZpY2UucHJvbXB0VmlzaWJsZSQsXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXljbG9hay5leHBpcnlQcm9tcHRUaXRsZScpLFxuICAgICAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5Y2xvYWsuZXhwaXJ5UHJvbXB0RGVzY3JpcHRpb24nLCB7XG4gICAgICAgICAgICAgIGV4cGlyeVRpbWU6IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuX2NvdW50ZXIsICdtbTpzcycpLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXljbG9hay5leHBpcnlQcm9tcHRDYW5jZWwnKSxcbiAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zdHJlYW0oJ2tleWNsb2FrLmV4cGlyeVByb21wdENvbmZpcm0nKSxcbiAgICAgICAgICBdKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtwcm9tcHRWaXNpYmxlLCBoZWFkZXJUZXh0LCBib2R5VGV4dCwgY2FuY2VsQnV0dG9uVGV4dCwgY29uZmlybUJ1dHRvblRleHRdKSA9PiB7XG4gICAgICAgIHRoaXMucHJvbXB0U2VydmljZS5pZGVudGlmaWVyJC5waXBlKHRha2UoMSkpLnN1YnNjcmliZShpZGVudGlmaWVyID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAoIXByb21wdFZpc2libGUgfHwgaWRlbnRpZmllciAhPT0gdGhpcy5FWFBJUkVfVE9LRU5fQ09ORklSTUFUSU9OKSAmJlxuICAgICAgICAgICAgdGhpcy5fZXhwaXJ5VGltZU1zIDw9IHRoaXMuRklWRV9NSU5VVEVTX01TXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW5Db25maXJtYXRpb25Qcm9tcHQoaGVhZGVyVGV4dCwgYm9keVRleHQsIGNhbmNlbEJ1dHRvblRleHQsIGNvbmZpcm1CdXR0b25UZXh0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocHJvbXB0VmlzaWJsZSAmJiBpZGVudGlmaWVyID09PSB0aGlzLkVYUElSRV9UT0tFTl9DT05GSVJNQVRJT04pIHtcbiAgICAgICAgICAgIHRoaXMucHJvbXB0U2VydmljZS5zZXRCb2R5VGV4dChib2R5VGV4dCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5fZXhwaXJ5VGltZU1zIDwgMjAwMCkge1xuICAgICAgICAgIHRoaXMuc2F2ZVVybCgpO1xuICAgICAgICAgIHRoaXMubG9nb3V0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZUV4cGlyeVRpbWVyU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZXhwaXJ5VGltZXJTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5Db25maXJtYXRpb25Qcm9tcHQoXG4gICAgaGVhZGVyVGV4dDogc3RyaW5nLFxuICAgIGJvZHlUZXh0OiBzdHJpbmcsXG4gICAgY2FuY2VsQnV0dG9uVGV4dDogc3RyaW5nLFxuICAgIGNvbmZpcm1CdXR0b25UZXh0OiBzdHJpbmdcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5wcm9tcHRTZXJ2aWNlLm9wZW5Qcm9tcHQoe1xuICAgICAgaWRlbnRpZmllcjogdGhpcy5FWFBJUkVfVE9LRU5fQ09ORklSTUFUSU9OLFxuICAgICAgaGVhZGVyVGV4dCxcbiAgICAgIGJvZHlUZXh0LFxuICAgICAgY2FuY2VsQnV0dG9uVGV4dCxcbiAgICAgIGNvbmZpcm1CdXR0b25UZXh0LFxuICAgICAgY2FuY2VsTWRpSWNvbjogJ2xvZ291dCcsXG4gICAgICBjb25maXJtTWRpSWNvbjogJ2NoZWNrJyxcbiAgICAgIGNsb3NlT25Db25maXJtOiB0cnVlLFxuICAgICAgY2xvc2VPbkNhbmNlbDogZmFsc2UsXG4gICAgICBjYW5jZWxDYWxsYmFja0Z1bmN0aW9uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMua2V5Y2xvYWtTZXJ2aWNlLmxvZ291dCgpO1xuICAgICAgfSxcbiAgICAgIGNvbmZpcm1DYWxsQmFja0Z1bmN0aW9uOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VFeHBpcnlUaW1lclN1YnNjcmlwdGlvbigpO1xuICAgICAgICB0aGlzLnVwZGF0ZVRva2VuKDIwKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNhdmVVcmwoKTogdm9pZCB7XG4gICAgY29uc3QgcmV0dXJuVG9MYXN0VXJsQWZ0ZXJUb2tlbkV4cGlyYXRpb24gPVxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlPy5jb25maWc/LmZlYXR1cmVUb2dnbGVzPy5yZXR1cm5Ub0xhc3RVcmxBZnRlclRva2VuRXhwaXJhdGlvbjtcblxuICAgIGlmIChyZXR1cm5Ub0xhc3RVcmxBZnRlclRva2VuRXhwaXJhdGlvbikge1xuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcbiAgICAgICAgU1RPUkFHRV9LRVlTLnVybEJlZm9yZUV4cGlyYXRpb24sXG4gICAgICAgIHRoaXMua2V5Y2xvYWtTdG9yYWdlU2VydmljZS5nZXRDdXJyZW50VXJsKClcbiAgICAgICk7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgICBTVE9SQUdFX0tFWVMudXJsQmVmb3JlRXhwaXJhdGlvblBhcmFtcyxcbiAgICAgICAgdGhpcy5rZXljbG9ha1N0b3JhZ2VTZXJ2aWNlLmdldEN1cnJlbnRVcmxQYXJhbXMoKVxuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|