imng-oidc-client 4.118.3 → 4.125.2
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/esm2020/lib/models/oidc-client-config.mjs +1 -1
- package/esm2020/lib/util/oidc-client-configurator.mjs +6 -1
- package/fesm2015/imng-oidc-client.mjs +5 -1
- package/fesm2015/imng-oidc-client.mjs.map +1 -1
- package/fesm2020/imng-oidc-client.mjs +5 -1
- package/fesm2020/imng-oidc-client.mjs.map +1 -1
- package/lib/models/oidc-client-config.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
export const OIDC_CLIENT_CONFIG = new InjectionToken('oidc-client-config');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy1jbGllbnQtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLW9pZGMtY2xpZW50L3NyYy9saWIvbW9kZWxzL29pZGMtY2xpZW50LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBb0MvQyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FDbEQsb0JBQW9CLENBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9pZGNDbGllbnRDb25maWcge1xuICBhdWRpZW5jZTogc3RyaW5nO1xuICBjbGllbnRfaWQ6IHN0cmluZztcbiAgYXV0aG9yaXR5OiBzdHJpbmc7XG4gIHNjb3BlPzpcbiAgfCAnb3BlbmlkJ1xuICB8ICdwcm9maWxlJ1xuICB8ICdvZmZsaW5lX2FjY2VzcydcbiAgfCAnbmFtZSdcbiAgfCAnZ2l2ZW5fbmFtZSdcbiAgfCAnZmFtaWx5X25hbWUnXG4gIHwgJ25pY2tuYW1lJ1xuICB8ICdlbWFpbCdcbiAgfCAnZW1haWxfdmVyaWZpZWQnXG4gIHwgJ3BpY3R1cmUnXG4gIHwgJ2NyZWF0ZWRfYXQnXG4gIHwgJ2lkZW50aXRpZXMnXG4gIHwgJ3Bob25lJ1xuICB8ICdhZGRyZXNzJ1xuICB8IHN0cmluZzsgLy9OT1NPTkFSXG4gIHJlc3BvbnNlX3R5cGU/OlxuICB8ICdjb2RlJ1xuICB8ICd0b2tlbidcbiAgfCAnaWRfdG9rZW4nXG4gIHwgJ2NvZGUgdG9rZW4nXG4gIHwgJ2NvZGUgaWRfdG9rZW4nXG4gIHwgJ3Rva2VuIGlkX3Rva2VuJ1xuICB8ICdjb2RlIHRva2VuIGlkX3Rva2VuJ1xuICB8IHN0cmluZzsgLy9OT1NPTkFSXG4gIGF1dG9tYXRpY1NpbGVudFJlbmV3PzogYm9vbGVhbjtcbiAgZ2V0VXNlck1ldGFkYXRhOiBib29sZWFuO1xuICB1c2VDYWxsYmFja0ZsYWc/OiBib29sZWFuO1xuICB3ZWJTdG9yYWdlU3RhdGVTdG9yZT86IFN0b3JhZ2UsXG59XG5leHBvcnQgY29uc3QgT0lEQ19DTElFTlRfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPE9pZGNDbGllbnRDb25maWc+KFxuICAnb2lkYy1jbGllbnQtY29uZmlnJ1xuKTtcbiJdfQ==
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isNullOrUndefined } from 'imng-nrsrx-client-utils';
|
|
2
|
+
import { WebStorageStateStore } from 'oidc-client';
|
|
2
3
|
export function oidcConfigurator(oidcClientConfig, document) {
|
|
3
4
|
return {
|
|
4
5
|
oidc_config: {
|
|
@@ -14,6 +15,10 @@ export function oidcConfigurator(oidcClientConfig, document) {
|
|
|
14
15
|
? true
|
|
15
16
|
: oidcClientConfig.automaticSilentRenew,
|
|
16
17
|
metadataUrl: `${oidcClientConfig.authority}/.well-known/openid-configuration`,
|
|
18
|
+
userStore: new WebStorageStateStore({
|
|
19
|
+
store: oidcClientConfig.webStorageStateStore || sessionStorage,
|
|
20
|
+
prefix: 'imng-oidc'
|
|
21
|
+
}),
|
|
17
22
|
},
|
|
18
23
|
getUserMetadata: oidcClientConfig.getUserMetadata,
|
|
19
24
|
useCallbackFlag: isNullOrUndefined(oidcClientConfig.useCallbackFlag)
|
|
@@ -21,4 +26,4 @@ export function oidcConfigurator(oidcClientConfig, document) {
|
|
|
21
26
|
: oidcClientConfig.useCallbackFlag,
|
|
22
27
|
};
|
|
23
28
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy1jbGllbnQtY29uZmlndXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9pbW5nLW9pZGMtY2xpZW50L3NyYy9saWIvdXRpbC9vaWRjLWNsaWVudC1jb25maWd1cmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSW5ELE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsZ0JBQWtDLEVBQ2xDLFFBQWtCO0lBRWxCLE9BQU87UUFDTCxXQUFXLEVBQUU7WUFDWCxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztZQUNyQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztZQUNyQyxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUU7WUFDekQsWUFBWSxFQUFFLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLGdCQUFnQjtZQUN6RCxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsYUFBYSxJQUFJLGdCQUFnQjtZQUNqRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxJQUFJLHFDQUFxQztZQUN0RSx3QkFBd0IsRUFBRSxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSx3QkFBd0I7WUFDN0UsbUJBQW1CLEVBQUUsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sc0JBQXNCO1lBQ3RFLG9CQUFvQixFQUNsQixpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDdEQsQ0FBQyxDQUFDLElBQUk7Z0JBQ04sQ0FBQyxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQjtZQUMzQyxXQUFXLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxTQUFTLG1DQUFtQztZQUM3RSxTQUFTLEVBQUUsSUFBSSxvQkFBb0IsQ0FBQztnQkFDbEMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLG9CQUFvQixJQUFJLGNBQWM7Z0JBQzlELE1BQU0sRUFBRSxXQUFXO2FBQ3BCLENBQUM7U0FDSDtRQUNELGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxlQUFlO1FBQ2pELGVBQWUsRUFDYixpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7WUFDakQsQ0FBQyxDQUFDLElBQUk7WUFDTixDQUFDLENBQUMsZ0JBQWdCLENBQUMsZUFBMEI7S0FDbEQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gJ2ltbmctbnJzcngtY2xpZW50LXV0aWxzJztcbmltcG9ydCB7IFdlYlN0b3JhZ2VTdGF0ZVN0b3JlIH0gZnJvbSAnb2lkYy1jbGllbnQnO1xuaW1wb3J0IHsgT2lkY0NsaWVudENvbmZpZyB9IGZyb20gJy4uL21vZGVscy9vaWRjLWNsaWVudC1jb25maWcnO1xuaW1wb3J0IHsgT2lkY0xpYnJhcnlDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvb2lkYy1saWJyYXJ5LWNvbmZpZyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBvaWRjQ29uZmlndXJhdG9yKFxuICBvaWRjQ2xpZW50Q29uZmlnOiBPaWRjQ2xpZW50Q29uZmlnLFxuICBkb2N1bWVudDogRG9jdW1lbnRcbik6IE9pZGNMaWJyYXJ5Q29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICBvaWRjX2NvbmZpZzoge1xuICAgICAgYXV0aG9yaXR5OiBvaWRjQ2xpZW50Q29uZmlnLmF1dGhvcml0eSxcbiAgICAgIGNsaWVudF9pZDogb2lkY0NsaWVudENvbmZpZy5jbGllbnRfaWQsXG4gICAgICBleHRyYVF1ZXJ5UGFyYW1zOiB7IGF1ZGllbmNlOiBvaWRjQ2xpZW50Q29uZmlnLmF1ZGllbmNlIH0sXG4gICAgICByZWRpcmVjdF91cmk6IGAke2RvY3VtZW50LmxvY2F0aW9uLm9yaWdpbn0vY2FsbGJhY2suaHRtbGAsXG4gICAgICByZXNwb25zZV90eXBlOiBvaWRjQ2xpZW50Q29uZmlnLnJlc3BvbnNlX3R5cGUgfHwgJ2lkX3Rva2VuIHRva2VuJyxcbiAgICAgIHNjb3BlOiBvaWRjQ2xpZW50Q29uZmlnLnNjb3BlIHx8ICdvcGVuaWQgcHJvZmlsZSBvZmZsaW5lX2FjY2VzcyBlbWFpbCcsXG4gICAgICBwb3N0X2xvZ291dF9yZWRpcmVjdF91cmk6IGAke2RvY3VtZW50LmxvY2F0aW9uLm9yaWdpbn0vc2lnbm91dC1jYWxsYmFjay5odG1sYCxcbiAgICAgIHNpbGVudF9yZWRpcmVjdF91cmk6IGAke2RvY3VtZW50LmxvY2F0aW9uLm9yaWdpbn0vcmVuZXctY2FsbGJhY2suaHRtbGAsXG4gICAgICBhdXRvbWF0aWNTaWxlbnRSZW5ldzpcbiAgICAgICAgaXNOdWxsT3JVbmRlZmluZWQob2lkY0NsaWVudENvbmZpZy5hdXRvbWF0aWNTaWxlbnRSZW5ldylcbiAgICAgICAgICA/IHRydWVcbiAgICAgICAgICA6IG9pZGNDbGllbnRDb25maWcuYXV0b21hdGljU2lsZW50UmVuZXcsXG4gICAgICBtZXRhZGF0YVVybDogYCR7b2lkY0NsaWVudENvbmZpZy5hdXRob3JpdHl9Ly53ZWxsLWtub3duL29wZW5pZC1jb25maWd1cmF0aW9uYCxcbiAgICAgIHVzZXJTdG9yZTogbmV3IFdlYlN0b3JhZ2VTdGF0ZVN0b3JlKHtcbiAgICAgICAgc3RvcmU6IG9pZGNDbGllbnRDb25maWcud2ViU3RvcmFnZVN0YXRlU3RvcmUgfHwgc2Vzc2lvblN0b3JhZ2UsXG4gICAgICAgIHByZWZpeDogJ2ltbmctb2lkYydcbiAgICAgIH0pLFxuICAgIH0sXG4gICAgZ2V0VXNlck1ldGFkYXRhOiBvaWRjQ2xpZW50Q29uZmlnLmdldFVzZXJNZXRhZGF0YSxcbiAgICB1c2VDYWxsYmFja0ZsYWc6XG4gICAgICBpc051bGxPclVuZGVmaW5lZChvaWRjQ2xpZW50Q29uZmlnLnVzZUNhbGxiYWNrRmxhZylcbiAgICAgICAgPyB0cnVlXG4gICAgICAgIDogb2lkY0NsaWVudENvbmZpZy51c2VDYWxsYmFja0ZsYWcgYXMgYm9vbGVhbixcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -6,7 +6,7 @@ import { switchMap, filter, take, map, tap, catchError, concatMap, first, mergeM
|
|
|
6
6
|
import * as i1$1 from '@ngrx/store';
|
|
7
7
|
import { createAction, createFeature, createReducer, on, createSelector, Store, StoreModule } from '@ngrx/store';
|
|
8
8
|
import { createPayloadAction } from 'imng-ngrx-utils';
|
|
9
|
-
import { Log, UserManager, OidcClient } from 'oidc-client';
|
|
9
|
+
import { Log, UserManager, OidcClient, WebStorageStateStore } from 'oidc-client';
|
|
10
10
|
import { from, of, throwError } from 'rxjs';
|
|
11
11
|
import * as i1 from '@angular/common/http';
|
|
12
12
|
import { HttpErrorResponse, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
@@ -509,6 +509,10 @@ function oidcConfigurator(oidcClientConfig, document) {
|
|
|
509
509
|
? true
|
|
510
510
|
: oidcClientConfig.automaticSilentRenew,
|
|
511
511
|
metadataUrl: `${oidcClientConfig.authority}/.well-known/openid-configuration`,
|
|
512
|
+
userStore: new WebStorageStateStore({
|
|
513
|
+
store: oidcClientConfig.webStorageStateStore || sessionStorage,
|
|
514
|
+
prefix: 'imng-oidc'
|
|
515
|
+
}),
|
|
512
516
|
},
|
|
513
517
|
getUserMetadata: oidcClientConfig.getUserMetadata,
|
|
514
518
|
useCallbackFlag: isNullOrUndefined(oidcClientConfig.useCallbackFlag)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imng-oidc-client.mjs","sources":["../../../../libs/imng-oidc-client/src/lib/+state/oidc.actions.ts","../../../../libs/imng-oidc-client/src/lib/util/jwt-decoder.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.reducer.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.selectors.ts","../../../../libs/imng-oidc-client/src/lib/models/constants.ts","../../../../libs/imng-oidc-client/src/lib/models/oidc-library-config.ts","../../../../libs/imng-oidc-client/src/lib/services/oidc.service.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.facade.ts","../../../../libs/imng-oidc-client/src/lib/services/auth-guard.ts","../../../../libs/imng-oidc-client/src/lib/util/oidc-client-configurator.ts","../../../../libs/imng-oidc-client/src/lib/models/oidc-client-config.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc-user.selectors.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc-user.facade.ts","../../../../libs/imng-oidc-client/src/lib/support/support.component.ts","../../../../libs/imng-oidc-client/src/lib/components/access-denied.component.ts","../../../../libs/imng-oidc-client/src/lib/components/logout-success.component.ts","../../../../libs/imng-oidc-client/src/lib/img-oidc-client-routing.module.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.effects.ts","../../../../libs/imng-oidc-client/src/lib/services/token-interceptor.service.ts","../../../../libs/imng-oidc-client/src/lib/imng-oidc-client.module.ts","../../../../libs/imng-oidc-client/src/lib/services/permissions.guard.ts","../../../../libs/imng-oidc-client/src/imng-oidc-client.ts"],"sourcesContent":["import { createAction } from '@ngrx/store';\nimport { RequestArugments } from '../models/arguments.model';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\nimport { createPayloadAction } from 'imng-ngrx-utils';\n\nexport const clearCurrentEmployee = createAction(\n '[Employees] Clear Current Employee'\n);\n\n// OIDC COMMANDS\n\nexport const getOidcUser = createAction('[Oidc] get oidc user');\nexport const removeOidcUser = createAction('[Oidc] remove oidc user');\nexport const userExpired = createAction('[Oidc] user expired');\nexport const userFound = createPayloadAction<IOidcUser>('[Oidc] user found');\nexport const onSessionChanged = createAction('[Oidc] session changed');\nexport const onAccessTokenExpired = createAction(\n '[Oidc] on access token expired'\n);\nexport const onAccessTokenExpiring = createAction('[Oidc] user expiring');\nexport const onUserLoading = createAction('[Oidc] user loading');\nexport const userDoneLoading = createAction('[Oidc] user done loading');\nexport const userDoneLoadingError = createPayloadAction<Error>(\n '[Oidc] user done loading error'\n);\nexport const onUserMetadataLoaded = createPayloadAction<unknown>(\n '[Oidc] on User Metadata Loaded'\n);\n\n// OIDC EVENTS\nexport const onSignInPopup = createPayloadAction<IOidcUser>(\n '[Oidc] on SignInPopup'\n);\nexport const onSignInRedirect = createPayloadAction<IOidcUser>(\n '[Oidc] on onSignInRedirect'\n);\nexport const onSignInSilent = createPayloadAction<IOidcUser>(\n '[Oidc] on onSignInSilent'\n);\n\nexport const onUserLoaded = createPayloadAction<IOidcUser>(\n '[Oidc] on user loaded'\n);\nexport const onUserloadError = createPayloadAction<Error>(\n '[Oidc] user load error'\n);\nexport const onUserUnloaded = createAction('[Oidc] on user unloaded');\nexport const onUserSignedOut = createAction('[Oidc] on user signed out');\nexport const onSilentRenewError = createPayloadAction<Error>(\n '[Oidc] on silent renew error'\n);\nexport const signInPopup = createPayloadAction<RequestArugments>(\n '[Oidc] sign in popup'\n);\nexport const signInRedirect = createPayloadAction<RequestArugments | undefined>(\n '[Oidc] sign in redirect'\n);\nexport const signInError = createPayloadAction<Error>(\n '[Oidc] sign in popup error'\n);\nexport const signOutPopup = createPayloadAction<RequestArugments>(\n '[Oidc] sign out popup'\n);\nexport const signOutPopupError = createPayloadAction<string>(\n '[Oidc] sign out popup error'\n);\nexport const signOutRedirect = createPayloadAction<\n RequestArugments | undefined\n>('[Oidc] sign out redirect');\nexport const signOutRedirectError = createPayloadAction<string>(\n '[Oidc] sign out redirect error'\n);\nexport const signInSilent = createPayloadAction<RequestArugments>(\n '[Oidc] sign in silent'\n);\nexport const oidcError = createPayloadAction<Error>('[Oidc] error');\n\n// HTTP\nexport const setHttpError = createPayloadAction<HttpErrorResponse>(\n '[HTTP] Set Http Error'\n);\nexport const clearErrors = createAction('[HTTP] Clear Errors');\n","export function jwtDecoder<TYPE>(rawToken: string): TYPE | null {\n const splits = rawToken?.split('.');\n if (splits?.length > 1) {\n const payload = splits[1];\n return JSON.parse(window.atob(payload)) as TYPE;\n } else {\n return null;\n }\n}\n","import * as oidcActions from './oidc.actions';\nimport { jwtDecoder } from '../util/jwt-decoder';\nimport { on, createReducer, createFeature } from '@ngrx/store';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\n\nexport const OIDC_FEATURE_KEY = 'oidc';\nexport interface OidcState {\n identity: IOidcUser | undefined;\n audiences: string[] | undefined;\n userMetadata: unknown | undefined;\n permissions: string[] | undefined;\n isLoading: boolean;\n isLoggedIn: boolean;\n isExpiring: boolean;\n isExpired: boolean;\n errors: ErrorState;\n}\n\nexport interface ErrorState {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n silentRenewError: unknown | undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n signInError: unknown | undefined;\n httpError: HttpErrorResponse | undefined;\n}\n\nexport const initialState: OidcState = {\n audiences: [],\n permissions: [],\n isLoading: true,\n isLoggedIn: false,\n isExpiring: false,\n isExpired: false,\n identity: undefined,\n userMetadata: undefined,\n errors: {\n silentRenewError: undefined,\n signInError: undefined,\n httpError: undefined,\n },\n};\n\nexport const oidcFeature = createFeature({\n name: OIDC_FEATURE_KEY,\n reducer: createReducer(initialState,\n on(oidcActions.getOidcUser,\n oidcActions.onUserLoading,\n (state): OidcState => ({\n ...state,\n isLoading: true,\n isLoggedIn: false,\n })),\n on(oidcActions.removeOidcUser,\n (state): OidcState => ({\n ...state,\n isLoading: true,\n isLoggedIn: false,\n identity: undefined,\n })),\n on(oidcActions.setHttpError,\n (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n httpError: err.payload,\n },\n })),\n on(oidcActions.onUserMetadataLoaded,\n (state, userMetadata): OidcState => ({\n ...state,\n userMetadata: userMetadata.payload,\n isLoading: false,\n })),\n on(oidcActions.clearErrors,\n (state): OidcState => ({\n ...state, errors: {\n signInError: undefined,\n silentRenewError: undefined,\n httpError: undefined\n }\n })),\n on(oidcActions.userDoneLoading,\n (state): OidcState => ({\n ...state,\n isLoading: false\n })),\n on(oidcActions.onAccessTokenExpiring,\n (state): OidcState => ({\n ...state,\n isExpiring: true,\n })),\n on(oidcActions.onAccessTokenExpired,\n (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n isExpiring: false,\n isExpired: true,\n })),\n on(oidcActions.onUserLoaded,\n (state): OidcState => ({\n ...state,\n isLoading: false,\n isExpiring: false,\n })),\n on(\n oidcActions.onUserUnloaded,\n oidcActions.onUserSignedOut,\n oidcActions.signOutPopupError,\n oidcActions.signOutRedirectError,\n (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n identity: undefined,\n isExpired: true,\n isExpiring: false,\n userMetadata: undefined,\n })\n ),\n on(oidcActions.signOutRedirect,\n oidcActions.signOutPopup,\n (state): OidcState => ({\n ...state,\n identity: undefined,\n userMetadata: null,\n isLoggedIn: false,\n })),\n on(\n oidcActions.userFound,\n oidcActions.onSignInPopup,\n oidcActions.onSignInRedirect,\n oidcActions.onSignInSilent,\n (state, { payload }): OidcState => ({\n ...state,\n identity: payload,\n isLoggedIn: true,\n audiences: jwtDecoder<{ aud?: []; }>(payload.access_token)?.aud,\n permissions: jwtDecoder<{ permissions?: []; }>(payload.access_token)?.permissions,\n })\n ),\n on(oidcActions.userExpired, (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n isExpiring: false,\n })),\n on(oidcActions.onSilentRenewError, (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n silentRenewError: err.payload,\n },\n })),\n on(\n oidcActions.userDoneLoadingError,\n oidcActions.signInError,\n (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n signInError: err.payload,\n },\n })\n ))\n});\n","import { createSelector } from '@ngrx/store';\nimport { ErrorState, oidcFeature } from './oidc.reducer';\nimport { IOidcUser } from '../models/oidc-user';\n// State Selectors\n\nconst selectAccessToken = createSelector(\n oidcFeature.selectIdentity,\n (user?: IOidcUser) => (user || { access_token: undefined }).access_token\n);\n\n// errors\nconst selectOidcErrorState = createSelector(\n oidcFeature.selectErrors,\n (errors) => errors\n);\n\nconst selectHasErrors = createSelector(\n selectOidcErrorState,\n (state: ErrorState) =>\n !!state.httpError || !!state.signInError || !!state.silentRenewError\n);\n\nconst selectSignInError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.signInError\n);\n\nconst selectSilentRenewError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.silentRenewError\n);\n\nconst selectHttpError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.httpError\n);\n\nconst selectExpiresAt = createSelector(oidcFeature.selectIdentity, (state?: IOidcUser) =>\n state?.expires_at ? new Date(state.expires_at * 1000) : null //NOSONAR\n);\n;\n\nexport const oidcQuery = {\n selectExpiresAt,\n selectPermissions: oidcFeature.selectPermissions,\n selectIsLoading: oidcFeature.selectIsLoading,\n selectIdentity: oidcFeature.selectIdentity,\n selectAccessToken,\n selectIsExpiring: oidcFeature.selectIsExpiring,\n selectIsExpired: oidcFeature.selectIsExpired,\n selectIsLoggedIn: oidcFeature.selectIsLoggedIn,\n selectSilentRenewError,\n selectSignInError,\n selectHttpError,\n selectHasErrors,\n selectAudiences: oidcFeature.selectAudiences,\n selectUserMetadata: oidcFeature.selectUserMetadata,\n};\n","export enum OidcEvent {\n AccessTokenExpired = 'addAccessTokenExpired',\n AccessTokenExpiring = 'addAccessTokenExpiring',\n SilentRenewError = 'AddSilentRenewError',\n UserLoaded = 'addUserLoaded',\n UserUnloaded = 'addUserUnloaded',\n UserSignedOut = 'addUserSignedOut',\n UserSessionChanged = 'addUserSessionChanged'\n}\n\nexport enum StorageKeys {\n PopupCallback = 'ngoidc:isPopupCallback',\n OidcSettings = 'ngoidc:settings',\n}\n\nexport const ACTION_NO_ACTION = 'NO_ACTION';\n","import { InjectionToken } from '@angular/core';\nimport { UserManagerSettings, Logger } from 'oidc-client';\n\nexport interface OidcLibraryConfig {\n oidc_config: UserManagerSettings;\n useCallbackFlag: boolean;\n getUserMetadata: boolean;\n log?: {\n logger: Logger;\n level: number;\n };\n}\nexport const OIDC_LIBRARY_CONFIG = new InjectionToken<OidcLibraryConfig>(\n 'OIDC_LIBRARY_CONFIG'\n);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport {\n Log,\n OidcClient,\n SigninRequest,\n SignoutRequest,\n UserManager,\n UserManagerSettings,\n} from 'oidc-client';\nimport { from, Observable } from 'rxjs';\nimport { OidcEvent, StorageKeys } from '../models/constants';\nimport { IOidcUser } from '../models/oidc-user';\nimport { switchMap } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport {\n OidcLibraryConfig,\n OIDC_LIBRARY_CONFIG,\n} from '../models/oidc-library-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcService {\n public readonly OidcUserManager: UserManager;\n private readonly _oidcClient: OidcClient;\n private readonly _userManagerSettings: UserManagerSettings;\n\n constructor(\n @Inject(OIDC_LIBRARY_CONFIG)\n private readonly oidcLibraryConfig: OidcLibraryConfig,\n // eslint-disable-next-line @typescript-eslint/ban-types\n @Inject(PLATFORM_ID) private readonly platformId: Object,\n private readonly httpClient: HttpClient\n ) {\n const logSettings = this.oidcLibraryConfig.log;\n let clientSettings = this.oidcLibraryConfig.oidc_config;\n\n if (logSettings) {\n Log.level = logSettings.level;\n Log.logger = logSettings.logger;\n }\n\n if (clientSettings?.userStore != null) {\n clientSettings = {\n ...clientSettings,\n userStore: clientSettings.userStore,\n };\n }\n this._userManagerSettings = { ...clientSettings };\n this.OidcUserManager = new UserManager(clientSettings);\n this._oidcClient = new OidcClient(clientSettings);\n }\n\n public getUserMetadata(): Observable<unknown> {\n return this.httpClient\n .get<{ userinfo_endpoint: string; }>(\n this.oidcLibraryConfig.oidc_config?.metadataUrl || ''\n )\n .pipe(\n switchMap((openidConfig) =>\n this.httpClient.get<unknown>(openidConfig.userinfo_endpoint)\n )\n );\n }\n\n getUserManager(): UserManager {\n return this.OidcUserManager;\n }\n\n getOidcClient(): OidcClient {\n return this._oidcClient;\n }\n\n getOidcUser(): Observable<IOidcUser | null> {\n return from(this.OidcUserManager.getUser());\n }\n\n removeOidcUser(): Observable<void> {\n return from(this.OidcUserManager.removeUser());\n }\n\n registerOidcEvent(\n event: OidcEvent,\n callback: (...ev: unknown[]) => void\n ): void {\n switch (event) {\n case OidcEvent.AccessTokenExpired:\n this.OidcUserManager.events.addAccessTokenExpired(callback);\n break;\n case OidcEvent.AccessTokenExpiring:\n this.OidcUserManager.events.addAccessTokenExpiring(callback);\n break;\n case OidcEvent.SilentRenewError:\n this.OidcUserManager.events.addSilentRenewError(callback);\n break;\n case OidcEvent.UserLoaded:\n this.OidcUserManager.events.addUserLoaded(callback);\n break;\n case OidcEvent.UserSessionChanged:\n this.OidcUserManager.events.addUserSessionChanged(callback);\n break;\n case OidcEvent.UserSignedOut:\n this.OidcUserManager.events.addUserSignedOut(callback);\n break;\n case OidcEvent.UserUnloaded:\n this.OidcUserManager.events.addUserUnloaded(callback);\n break;\n default:\n break;\n }\n }\n\n removeOidcEvent(\n event: OidcEvent,\n callback: (...ev: unknown[]) => void\n ): void {\n switch (event) {\n case OidcEvent.AccessTokenExpired:\n this.OidcUserManager.events.removeAccessTokenExpired(callback);\n break;\n case OidcEvent.AccessTokenExpiring:\n this.OidcUserManager.events.removeAccessTokenExpiring(callback);\n break;\n case OidcEvent.SilentRenewError:\n this.OidcUserManager.events.removeSilentRenewError(callback);\n break;\n case OidcEvent.UserLoaded:\n this.OidcUserManager.events.removeUserLoaded(callback);\n break;\n case OidcEvent.UserSessionChanged:\n this.OidcUserManager.events.removeUserSessionChanged(callback);\n break;\n case OidcEvent.UserSignedOut:\n this.OidcUserManager.events.removeUserSignedOut(callback);\n break;\n case OidcEvent.UserUnloaded:\n this.OidcUserManager.events.removeUserUnloaded(callback);\n break;\n default:\n break;\n }\n }\n\n signInPopup(args?: any): Observable<IOidcUser> { //NOSONAR\n this.setCallbackInformation(true);\n\n return from(this.OidcUserManager.signinPopup({ ...args }));\n }\n\n signInRedirect(args?: any): Observable<void> { //NOSONAR\n this.setCallbackInformation(false);\n\n return from(this.OidcUserManager.signinRedirect({ ...args }));\n }\n\n signOutPopup(args?: any): Observable<any> { //NOSONAR\n this.setCallbackInformation(true);\n\n return from(this.OidcUserManager.signoutPopup({ ...args }));\n }\n\n signOutRedirect(args?: any): Observable<any> { //NOSONAR\n this.setCallbackInformation(false);\n return from(this.OidcUserManager.signoutRedirect({ ...args }));\n }\n\n signInSilent(args?: any): Observable<IOidcUser> { //NOSONAR\n return from(this.OidcUserManager.signinSilent({ ...args }));\n }\n\n signinPopupCallback(): Observable<any> { //NOSONAR\n return from(this.OidcUserManager.signinPopupCallback());\n }\n\n signinRedirectCallback(): Observable<IOidcUser> {\n return from(this.OidcUserManager.signinRedirectCallback());\n }\n\n signoutPopupCallback(): Observable<void> {\n return from(this.OidcUserManager.signoutPopupCallback());\n }\n\n signoutRedirectCallback(): Observable<any> { //NOSONAR\n return from(this.OidcUserManager.signoutRedirectCallback());\n }\n\n getSigninUrl(args?: any): Observable<SigninRequest> { //NOSONAR\n return from(this.OidcUserManager.createSigninRequest(args));\n }\n\n getSignoutUrl(args?: any): Observable<SignoutRequest> { //NOSONAR\n return from(this.OidcUserManager.createSignoutRequest(args));\n }\n\n private setCallbackInformation(isPopupCallback: boolean): void {\n // is browser and useCallbackFlag set to true or defaults to true\n if (\n isPlatformBrowser(this.platformId) &&\n this.oidcLibraryConfig.useCallbackFlag\n ) {\n localStorage.setItem(StorageKeys.PopupCallback, `${isPopupCallback}`);\n localStorage.setItem(\n StorageKeys.OidcSettings,\n JSON.stringify(this._userManagerSettings)\n );\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n OidcClient,\n SigninRequest,\n SignoutRequest,\n UserManager,\n} from 'oidc-client';\nimport { Observable } from 'rxjs';\nimport { filter, take, map } from 'rxjs/operators';\nimport { oidcQuery } from './oidc.selectors';\nimport { OidcService } from '../services/oidc.service';\nimport { RequestArugments } from '../models/arguments.model';\nimport { OidcEvent } from '../models/constants';\nimport * as oidcActions from './oidc.actions';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcFacade {\n constructor(\n private readonly store: Store,\n private readonly oidcService: OidcService\n ) {\n this.registerDefaultEvents();\n }\n\n loading$: Observable<boolean> = this.store.select(oidcQuery.selectIsLoading);\n expiring$: Observable<boolean> = this.store.select(\n oidcQuery.selectIsExpiring\n );\n expired$: Observable<boolean> = this.store.select(\n oidcQuery.selectIsExpired\n );\n loggedIn$: Observable<boolean> = this.store.select(oidcQuery.selectIsLoggedIn);\n identity$: Observable<IOidcUser | undefined> = this.store.select(\n oidcQuery.selectIdentity\n );\n accessToken$: Observable<string | undefined> = this.store.select(\n oidcQuery.selectAccessToken\n );\n httpError$: Observable<HttpErrorResponse | undefined> = this.store.select(\n oidcQuery.selectHttpError\n );\n signInError$: Observable<unknown> = this.store.select(\n oidcQuery.selectSignInError\n );\n silentRenewError$: Observable<unknown> = this.store.select(\n oidcQuery.selectSilentRenewError\n );\n hasErrors$: Observable<boolean> = this.store.select(oidcQuery.selectHasErrors);\n permissions$: Observable<string[] | undefined> = this.store.select(\n oidcQuery.selectPermissions\n );\n audiences$: Observable<string[] | null | undefined> = this.store.select(\n oidcQuery.selectAudiences\n );\n expiresAt$: Observable<Date | null> = this.store.select(\n oidcQuery.selectExpiresAt\n );\n userMetadata$: Observable<unknown> = this.store.select(\n oidcQuery.selectUserMetadata\n );\n\n // default bindings to events\n public addUserUnLoaded(): void {\n if (this.store) {\n this.store.dispatch(oidcActions.onUserUnloaded());\n }\n }\n\n public accessTokenExpired(): void {\n if (this.store) {\n this.store.dispatch(oidcActions.onAccessTokenExpired());\n } else {\n sessionStorage.clear();\n localStorage.clear();\n window.location.reload();\n }\n }\n\n public accessTokenExpiring(): void {\n if (this.store) {\n this.store.dispatch(oidcActions.onAccessTokenExpiring());\n } else {\n this.accessTokenExpired();\n }\n }\n\n public addSilentRenewError(...ev: unknown[]): void {\n this.store.dispatch(oidcActions.onSilentRenewError(ev[0] as Error));\n }\n\n public addUserLoaded(...ev: unknown[]): void {\n this.store.dispatch(oidcActions.onUserLoaded(ev[0] as IOidcUser));\n }\n\n public addUserSignedOut(): void {\n this.oidcService.removeOidcUser();\n this.store.dispatch(oidcActions.onUserSignedOut());\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public addUserSessionChanged(): void {\n this.store.dispatch(oidcActions.onSessionChanged());\n }\n\n public clearErrors(): void {\n this.store.dispatch(oidcActions.clearErrors());\n };\n\n // OIDC Methods\n\n public getOidcUser(): void {\n this.store.dispatch(oidcActions.getOidcUser());\n }\n\n public removeOidcUser(): void {\n this.store.dispatch(oidcActions.removeOidcUser());\n }\n\n public getUserManager(): UserManager {\n return this.oidcService.getUserManager();\n }\n\n public getOidcClient(): OidcClient {\n return this.oidcService.getOidcClient();\n }\n\n /**\n * Convenient function to wait for loaded.\n */\n public waitForAuthenticationLoaded(): Observable<boolean> {\n return this.loading$.pipe(\n filter((loading) => loading === false),\n take(1),\n map(() => true)\n );\n }\n\n public signinPopup(args: RequestArugments): void {\n this.store.dispatch(oidcActions.signInPopup(args));\n }\n\n public signinRedirect(args?: RequestArugments): void {\n this.store.dispatch(oidcActions.signInRedirect(args));\n }\n\n public signinSilent(args: RequestArugments): void {\n this.store.dispatch(oidcActions.signInSilent(args));\n }\n\n public signoutPopup(args: RequestArugments): void {\n this.store.dispatch(oidcActions.signOutPopup(args));\n }\n\n public signoutRedirect(args?: RequestArugments): void {\n this.store.dispatch(oidcActions.signOutRedirect(args));\n }\n\n public getSigninUrl(args?: RequestArugments): Observable<SigninRequest> {\n return this.oidcService.getSigninUrl(args);\n };\n\n getSignoutUrl(args?: RequestArugments): Observable<SignoutRequest> {\n return this.oidcService.getSignoutUrl(args);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerEvent(event: OidcEvent, callback: (...ev: unknown[]) => void): void {\n this.oidcService.registerOidcEvent(event, callback);\n }\n\n private registerDefaultEvents(): void {\n // add simple loggers\n this.registerEvent(OidcEvent.AccessTokenExpired, this.accessTokenExpired);\n this.registerEvent(OidcEvent.AccessTokenExpiring, this.accessTokenExpiring);\n this.registerEvent(OidcEvent.SilentRenewError, this.addSilentRenewError);\n\n this.registerEvent(OidcEvent.UserLoaded, this.addUserLoaded);\n this.registerEvent(OidcEvent.UserUnloaded, this.addUserUnLoaded);\n this.registerEvent(OidcEvent.UserSignedOut, this.addUserSignedOut);\n this.registerEvent(\n OidcEvent.UserSessionChanged,\n this.addUserSessionChanged\n );\n }\n}\n","import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { Injectable, Inject } from '@angular/core';\nimport { tap, switchMap } from 'rxjs/operators';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard implements CanActivate, CanActivateChild {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(@Inject(DOCUMENT) private readonly document: any, private readonly oidcFacade: OidcFacade) { } //NOSONAR\n\n public readonly isLoggedInPipe$ = this.oidcFacade.waitForAuthenticationLoaded().pipe(\n switchMap(() => this.oidcFacade.loggedIn$),\n tap(t => {\n if (!t) {\n this.oidcFacade.signinRedirect({\n data: { redirect_url: this.document.location.href }\n });\n }\n })\n );\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> { //NOSONAR\n return this.isLoggedInPipe$;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot) //NOSONAR\n : Observable<boolean> {\n return this.isLoggedInPipe$;\n }\n}\n","import { isNullOrUndefined } from 'imng-nrsrx-client-utils';\nimport { OidcClientConfig } from '../models/oidc-client-config';\nimport { OidcLibraryConfig } from '../models/oidc-library-config';\n\nexport function oidcConfigurator(\n oidcClientConfig: OidcClientConfig,\n document: Document\n): OidcLibraryConfig {\n return {\n oidc_config: {\n authority: oidcClientConfig.authority,\n client_id: oidcClientConfig.client_id,\n extraQueryParams: { audience: oidcClientConfig.audience },\n redirect_uri: `${document.location.origin}/callback.html`,\n response_type: oidcClientConfig.response_type || 'id_token token',\n scope: oidcClientConfig.scope || 'openid profile offline_access email',\n post_logout_redirect_uri: `${document.location.origin}/signout-callback.html`,\n silent_redirect_uri: `${document.location.origin}/renew-callback.html`,\n automaticSilentRenew:\n isNullOrUndefined(oidcClientConfig.automaticSilentRenew)\n ? true\n : oidcClientConfig.automaticSilentRenew,\n metadataUrl: `${oidcClientConfig.authority}/.well-known/openid-configuration`,\n },\n getUserMetadata: oidcClientConfig.getUserMetadata,\n useCallbackFlag:\n isNullOrUndefined(oidcClientConfig.useCallbackFlag)\n ? true\n : oidcClientConfig.useCallbackFlag as boolean,\n };\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface OidcClientConfig {\n audience: string;\n client_id: string;\n authority: string;\n scope?:\n | 'openid'\n | 'profile'\n | 'offline_access'\n | 'name'\n | 'given_name'\n | 'family_name'\n | 'nickname'\n | 'email'\n | 'email_verified'\n | 'picture'\n | 'created_at'\n | 'identities'\n | 'phone'\n | 'address'\n | string; //NOSONAR\n response_type?:\n | 'code'\n | 'token'\n | 'id_token'\n | 'code token'\n | 'code id_token'\n | 'token id_token'\n | 'code token id_token'\n | string; //NOSONAR\n automaticSilentRenew?: boolean;\n getUserMetadata: boolean;\n useCallbackFlag?: boolean;\n}\nexport const OIDC_CLIENT_CONFIG = new InjectionToken<OidcClientConfig>(\n 'oidc-client-config'\n);\n","import { createSelector } from '@ngrx/store';\nimport { OidcUserProfile } from '../models/oidc-user-profile';\nimport { oidcQuery } from './oidc.selectors';\nimport { oidcFeature } from './oidc.reducer';\nimport { IOidcUser } from '../models/oidc-user';\n\nconst selectProfile = createSelector(\n oidcQuery.selectIdentity,\n (identity?: IOidcUser) => identity?.profile as OidcUserProfile\n);\n\nconst getPermissions = oidcFeature.selectPermissions;\n\nconst selectEmail = createSelector(selectProfile, (profile) => profile?.email);\n\nconst selectProfilePicture = createSelector(\n selectProfile,\n (profile) => profile?.picture\n);\n\nexport const OidcUserSelectors = {\n getProfile: selectProfile,\n getEmail: selectEmail,\n getProfilePicture: selectProfilePicture,\n getPermissions,\n};\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { OidcUserSelectors } from './oidc-user.selectors';\nimport { OidcUserProfile } from '../models/oidc-user-profile';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcUserFacade {\n constructor(private readonly store: Store) { }\n profile$: Observable<OidcUserProfile> = this.store.select(\n OidcUserSelectors.getProfile\n );\n email$: Observable<string | undefined> = this.store.select(\n OidcUserSelectors.getEmail\n );\n profilePicture$: Observable<string | undefined> = this.store.select(\n OidcUserSelectors.getProfilePicture\n );\n permissions$: Observable<string[] | undefined> = this.store.select(\n OidcUserSelectors.getPermissions\n );\n\n public hasPermissions(\n requiredPermissions: Array<string>\n ): Observable<boolean> {\n return this.permissions$.pipe(\n map(\n (t) =>\n -1 <\n requiredPermissions.findIndex(\n (f) => -1 < (t?.findIndex((i) => i === f) || -1)\n )\n )\n );\n }\n}\n","import { Component } from '@angular/core';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { OidcUserFacade } from '../+state/oidc-user.facade';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Component({\n selector: 'imng-support',\n template: `<div class=\"container pt-5 mt-5\">\n <div class=\"row h3 text-center\">\n <div class=\"col-md-12 text-center\">OIDC Support</div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Audiences</div>\n <div class=\"col-md-8\">\n <span *ngFor=\"let item of facade.audiences$ | async; last as isLast\">\n {{ item }} <br *ngIf=\"!isLast\" />\n </span>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Permissions</div>\n <div class=\"col-md-8\">\n <span *ngFor=\"let item of facade.permissions$ | async; last as isLast\">\n {{ item }} <br *ngIf=\"!isLast\" />\n </span>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Expires</div>\n <div class=\"col-md-8\">{{ facade.expiresAt$ | async }}</div>\n </div>\n <div class=\"row\" *ngFor=\"let item of profileValue$ | async\">\n <div class=\"col-md-3\">{{ item.key }}</div>\n <div class=\"col-md-8\">{{ item.value }}</div>\n </div>\n </div> `,\n})\nexport class SupportComponent {\n public profileValue$: Observable<{ key: string; value: string; }[]>;\n constructor(\n public readonly facade: OidcFacade,\n public readonly oidcUserFacade: OidcUserFacade\n ) {\n this.profileValue$ = this.oidcUserFacade.profile$.pipe(\n map((x) =>\n Object.keys(x).map((propertyKey) => ({\n key: propertyKey,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: (x as any)[propertyKey], //NOSONAR\n }))\n )\n );\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'imng-access-denied',\n template: '<div class=\"p-5 m-5 text-danger\">Access denied.</div>'\n})\nexport class AccessDeniedComponent { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'imng-logout-success',\n template:\n // eslint-disable-next-line max-len\n '<div class=\"p-5 m-5 text-center\">You have successfully logged out.<br/>Please close this browser window to ensure you are completely logged out of the session.</div>'\n})\nexport class LogoutSuccessComponent { }\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule, Route } from '@angular/router';\nimport { SupportComponent } from './support/support.component';\nimport { AccessDeniedComponent } from './components/access-denied.component';\nimport { AuthGuard } from './services/auth-guard';\nimport { LogoutSuccessComponent } from './components/logout-success.component';\n\nconst routes: Routes = [\n { path: 'support', component: SupportComponent },\n { path: 'access-denied', component: AccessDeniedComponent },\n { path: 'logout', component: LogoutSuccessComponent },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ImngOidcClientRoutingModule {}\n\nexport const oidcSupportRoute: Route = {\n path: 'oidc/support',\n component: SupportComponent,\n canActivate: [AuthGuard],\n};\n\nexport const oidcAccessDeniedRoute: Route = {\n path: 'oidc/access-denied',\n component: AccessDeniedComponent,\n};\n\nexport const oidcLogoutRoute: Route = {\n path: 'oidc/logout',\n component: LogoutSuccessComponent,\n};\n\nexport const oidcRoutes: Route[] = [\n oidcSupportRoute,\n oidcAccessDeniedRoute,\n oidcLogoutRoute,\n];\n","import { Inject, Injectable } from '@angular/core';\nimport { Actions, ofType, OnInitEffects, createEffect } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\nimport { of } from 'rxjs';\nimport {\n catchError,\n concatMap,\n map,\n filter,\n tap,\n switchMap,\n} from 'rxjs/operators';\nimport { OidcService } from '../services/oidc.service';\nimport * as oidcActions from './oidc.actions';\nimport { IOidcUser } from '../models/oidc-user';\nimport { Router } from '@angular/router';\nimport { oidcLogoutRoute } from '../img-oidc-client-routing.module';\nimport {\n OidcLibraryConfig,\n OIDC_LIBRARY_CONFIG,\n} from '../models/oidc-library-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcEffects implements OnInitEffects {\n constructor(\n private readonly actions$: Actions,\n private readonly oidcService: OidcService,\n @Inject(OIDC_LIBRARY_CONFIG)\n private readonly oidcLibraryOptions: OidcLibraryConfig,\n private readonly router: Router\n ) { }\n\n getOidcUser$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.getOidcUser),\n switchMap(() =>\n this.oidcService.getOidcUser().pipe(\n map((userData: IOidcUser | null) =>\n this.makeOidcUserSerializable(userData)\n ),\n filter((userData: IOidcUser) => !!userData),\n map((userData: IOidcUser) => oidcActions.userFound(userData)),\n catchError((err) => of(oidcActions.userDoneLoadingError(err)))\n )));\n });\n\n silentRenew$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(\n (userFound: { payload: IOidcUser; }) =>\n // user expired, initiate silent sign-in if configured to automatic\n (userFound.payload != null &&\n userFound.payload.expired &&\n this.oidcLibraryOptions.oidc_config?.automaticSilentRenew) ||\n false\n ),\n map((userFound) => oidcActions.signInSilent(userFound.payload))\n );\n });\n\n removeOidcUser$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.removeOidcUser),\n concatMap(() =>\n this.oidcService.removeOidcUser().pipe(\n map(() => oidcActions.userDoneLoading()),\n catchError((err) => of(oidcActions.oidcError(err)))\n )\n )\n );\n });\n\n userDoneLoadingNoMetadata$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(() => !this.oidcLibraryOptions.getUserMetadata),\n map(() => oidcActions.userDoneLoading())\n );\n });\n\n userDoneLoadingWithMetadata$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(() => this.oidcLibraryOptions.getUserMetadata || false),\n switchMap(() => this.oidcService.getUserMetadata()),\n map((metadata) => oidcActions.onUserMetadataLoaded(metadata))\n );\n });\n\n onAccessTokenExpired$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.onAccessTokenExpired),\n map(() => oidcActions.removeOidcUser())\n );\n });\n\n signInPopup$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInPopup),\n concatMap((args) =>\n this.oidcService.signInPopup(args.payload).pipe(\n map((user) =>\n oidcActions.onSignInPopup(this.makeOidcUserSerializable(user))\n ),\n catchError((err) => of(oidcActions.signInError(err)))\n )\n )\n );\n });\n\n signInRedirect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInRedirect),\n concatMap((args) =>\n this.oidcService.signInRedirect(args.payload).pipe(\n concatMap(() => this.oidcService.signinRedirectCallback()),\n map((user) =>\n oidcActions.onSignInRedirect(this.makeOidcUserSerializable(user))\n ),\n catchError((err) => of(oidcActions.signInError(err)))\n )\n )\n );\n });\n\n signInSilent$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInSilent),\n concatMap((args) =>\n this.oidcService.signInSilent(args.payload).pipe(\n map((user) =>\n oidcActions.onSignInSilent(this.makeOidcUserSerializable(user))\n ),\n catchError((err) => of(oidcActions.onSilentRenewError(err)))\n )\n )\n );\n });\n\n signOutPopup$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signOutPopup),\n concatMap((args) =>\n this.oidcService.signOutPopup(args.payload).pipe(\n map(() => oidcActions.onUserSignedOut()),\n catchError((err) => of(oidcActions.signOutPopupError(err.message)))\n )\n )\n );\n });\n\n signOutRedirect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signOutRedirect),\n concatMap((args) =>\n this.oidcService.signOutRedirect(args.payload).pipe(\n map(() => oidcActions.onUserSignedOut()),\n catchError((err) => of(oidcActions.signOutRedirectError(err.message)))\n )\n )\n );\n });\n\n onUserSignedOut$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(\n oidcActions.onUserSignedOut,\n oidcActions.signOutPopupError,\n oidcActions.signOutRedirectError\n ),\n tap(() => {\n localStorage.clear();\n sessionStorage.clear();\n this.router.navigateByUrl(oidcLogoutRoute.path || '');\n })\n );\n },\n { dispatch: false }\n );\n\n\n ngrxOnInitEffects(): Action {\n return oidcActions.getOidcUser();\n }\n\n makeOidcUserSerializable(user: IOidcUser | null): IOidcUser {\n if (user?.toStorageString) {\n user = {\n ...user,\n toStorageString: undefined,\n };\n }\n return user as IOidcUser;\n }\n}\n","import { Observable, throwError } from 'rxjs';\nimport { first, catchError, mergeMap } from 'rxjs/operators';\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { oidcQuery } from '../+state/oidc.selectors';\nimport * as oidcActions from '../+state/oidc.actions';\n\n@Injectable()\nexport class TokenInterceptorService implements HttpInterceptor {\n constructor(private readonly store: Store) { }\n\n intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n return this.store.select(oidcQuery.selectAccessToken).pipe(\n first(),\n mergeMap(accessToken => {\n if (accessToken) {\n req = req.clone({\n setHeaders: { Authorization: `Bearer ${accessToken}` },\n });\n }\n return next.handle(req).pipe(\n catchError((err: Error) => {\n if (err instanceof HttpErrorResponse) {\n this.store.dispatch(oidcActions.setHttpError(err));\n }\n return throwError(() => err);\n }));\n }\n ));\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport { AuthGuard } from './services/auth-guard';\nimport { oidcConfigurator } from './util/oidc-client-configurator';\nimport {\n OidcClientConfig,\n OIDC_CLIENT_CONFIG,\n} from './models/oidc-client-config';\nimport { OidcEffects } from './+state/oidc.effects';\nimport { OidcService } from './services/oidc.service';\nimport { OidcFacade } from './+state/oidc.facade';\nimport { StoreModule, Store } from '@ngrx/store';\nimport { oidcFeature } from './+state/oidc.reducer';\nimport { EffectsModule } from '@ngrx/effects';\nimport { OidcUserFacade } from './+state/oidc-user.facade';\nimport { TokenInterceptorService } from './services/token-interceptor.service';\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\nimport { AccessDeniedComponent } from './components/access-denied.component';\nimport { SupportComponent } from './support/support.component';\nimport { ImngOidcClientRoutingModule } from './img-oidc-client-routing.module';\nimport { LogoutSuccessComponent } from './components/logout-success.component';\nimport { OIDC_LIBRARY_CONFIG } from './models/oidc-library-config';\n\n@NgModule({\n declarations: [\n AccessDeniedComponent,\n SupportComponent,\n LogoutSuccessComponent,\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n StoreModule.forFeature(oidcFeature),\n EffectsModule.forFeature([OidcEffects]),\n ImngOidcClientRoutingModule,\n ],\n exports: [AccessDeniedComponent, SupportComponent, LogoutSuccessComponent],\n providers: [\n {\n provide: OIDC_LIBRARY_CONFIG,\n useFactory: oidcConfigurator,\n deps: [OIDC_CLIENT_CONFIG, DOCUMENT],\n },\n OidcService,\n OidcFacade,\n OidcUserFacade,\n AuthGuard,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: TokenInterceptorService,\n multi: true,\n deps: [Store],\n },\n ],\n})\nexport class ImngOidcClientModule {\n static forRoot(\n oidc0ptions: OidcClientConfig\n ): ModuleWithProviders<ImngOidcClientModule> {\n return {\n ngModule: ImngOidcClientModule,\n providers: [{ provide: OIDC_CLIENT_CONFIG, useValue: oidc0ptions }],\n };\n }\n}\n","import {\n CanActivate,\n ActivatedRouteSnapshot,\n RouterStateSnapshot,\n Router,\n} from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { switchMap, tap } from 'rxjs/operators';\nimport { OidcUserFacade } from '../+state/oidc-user.facade';\n\nexport abstract class PermissionsGuard implements CanActivate {\n constructor(\n private readonly oidcFacade: OidcFacade,\n private readonly oidcUserFacade: OidcUserFacade,\n private readonly router: Router\n ) { }\n\n protected abstract permissions: string[];\n\n public canActivate(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n route: ActivatedRouteSnapshot, //NOSONAR\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n state: RouterStateSnapshot //NOSONAR\n ): Observable<boolean> | boolean {\n return this.oidcFacade.waitForAuthenticationLoaded().pipe(\n switchMap(() => this.oidcUserFacade.hasPermissions(this.permissions)),\n tap((t) => {\n if (!t) {\n this.router.navigate(['oidc/access-denied'], {\n relativeTo: this.router.routerState.root,\n });\n }\n })\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["oidcActions.getOidcUser","oidcActions.onUserLoading","oidcActions.removeOidcUser","oidcActions.setHttpError","oidcActions.onUserMetadataLoaded","oidcActions.clearErrors","oidcActions.userDoneLoading","oidcActions.onAccessTokenExpiring","oidcActions.onAccessTokenExpired","oidcActions.onUserLoaded","oidcActions.onUserUnloaded","oidcActions.onUserSignedOut","oidcActions.signOutPopupError","oidcActions.signOutRedirectError","oidcActions.signOutRedirect","oidcActions.signOutPopup","oidcActions.userFound","oidcActions.onSignInPopup","oidcActions.onSignInRedirect","oidcActions.onSignInSilent","oidcActions.userExpired","oidcActions.onSilentRenewError","oidcActions.userDoneLoadingError","oidcActions.signInError","oidcActions.onSessionChanged","oidcActions.signInPopup","oidcActions.signInRedirect","oidcActions.signInSilent","i1","i2.OidcService","i1.OidcFacade","i2.OidcUserFacade","oidcActions.oidcError","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"imng-oidc-client.mjs","sources":["../../../../libs/imng-oidc-client/src/lib/+state/oidc.actions.ts","../../../../libs/imng-oidc-client/src/lib/util/jwt-decoder.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.reducer.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.selectors.ts","../../../../libs/imng-oidc-client/src/lib/models/constants.ts","../../../../libs/imng-oidc-client/src/lib/models/oidc-library-config.ts","../../../../libs/imng-oidc-client/src/lib/services/oidc.service.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.facade.ts","../../../../libs/imng-oidc-client/src/lib/services/auth-guard.ts","../../../../libs/imng-oidc-client/src/lib/util/oidc-client-configurator.ts","../../../../libs/imng-oidc-client/src/lib/models/oidc-client-config.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc-user.selectors.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc-user.facade.ts","../../../../libs/imng-oidc-client/src/lib/support/support.component.ts","../../../../libs/imng-oidc-client/src/lib/components/access-denied.component.ts","../../../../libs/imng-oidc-client/src/lib/components/logout-success.component.ts","../../../../libs/imng-oidc-client/src/lib/img-oidc-client-routing.module.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.effects.ts","../../../../libs/imng-oidc-client/src/lib/services/token-interceptor.service.ts","../../../../libs/imng-oidc-client/src/lib/imng-oidc-client.module.ts","../../../../libs/imng-oidc-client/src/lib/services/permissions.guard.ts","../../../../libs/imng-oidc-client/src/imng-oidc-client.ts"],"sourcesContent":["import { createAction } from '@ngrx/store';\nimport { RequestArugments } from '../models/arguments.model';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\nimport { createPayloadAction } from 'imng-ngrx-utils';\n\nexport const clearCurrentEmployee = createAction(\n '[Employees] Clear Current Employee'\n);\n\n// OIDC COMMANDS\n\nexport const getOidcUser = createAction('[Oidc] get oidc user');\nexport const removeOidcUser = createAction('[Oidc] remove oidc user');\nexport const userExpired = createAction('[Oidc] user expired');\nexport const userFound = createPayloadAction<IOidcUser>('[Oidc] user found');\nexport const onSessionChanged = createAction('[Oidc] session changed');\nexport const onAccessTokenExpired = createAction(\n '[Oidc] on access token expired'\n);\nexport const onAccessTokenExpiring = createAction('[Oidc] user expiring');\nexport const onUserLoading = createAction('[Oidc] user loading');\nexport const userDoneLoading = createAction('[Oidc] user done loading');\nexport const userDoneLoadingError = createPayloadAction<Error>(\n '[Oidc] user done loading error'\n);\nexport const onUserMetadataLoaded = createPayloadAction<unknown>(\n '[Oidc] on User Metadata Loaded'\n);\n\n// OIDC EVENTS\nexport const onSignInPopup = createPayloadAction<IOidcUser>(\n '[Oidc] on SignInPopup'\n);\nexport const onSignInRedirect = createPayloadAction<IOidcUser>(\n '[Oidc] on onSignInRedirect'\n);\nexport const onSignInSilent = createPayloadAction<IOidcUser>(\n '[Oidc] on onSignInSilent'\n);\n\nexport const onUserLoaded = createPayloadAction<IOidcUser>(\n '[Oidc] on user loaded'\n);\nexport const onUserloadError = createPayloadAction<Error>(\n '[Oidc] user load error'\n);\nexport const onUserUnloaded = createAction('[Oidc] on user unloaded');\nexport const onUserSignedOut = createAction('[Oidc] on user signed out');\nexport const onSilentRenewError = createPayloadAction<Error>(\n '[Oidc] on silent renew error'\n);\nexport const signInPopup = createPayloadAction<RequestArugments>(\n '[Oidc] sign in popup'\n);\nexport const signInRedirect = createPayloadAction<RequestArugments | undefined>(\n '[Oidc] sign in redirect'\n);\nexport const signInError = createPayloadAction<Error>(\n '[Oidc] sign in popup error'\n);\nexport const signOutPopup = createPayloadAction<RequestArugments>(\n '[Oidc] sign out popup'\n);\nexport const signOutPopupError = createPayloadAction<string>(\n '[Oidc] sign out popup error'\n);\nexport const signOutRedirect = createPayloadAction<\n RequestArugments | undefined\n>('[Oidc] sign out redirect');\nexport const signOutRedirectError = createPayloadAction<string>(\n '[Oidc] sign out redirect error'\n);\nexport const signInSilent = createPayloadAction<RequestArugments>(\n '[Oidc] sign in silent'\n);\nexport const oidcError = createPayloadAction<Error>('[Oidc] error');\n\n// HTTP\nexport const setHttpError = createPayloadAction<HttpErrorResponse>(\n '[HTTP] Set Http Error'\n);\nexport const clearErrors = createAction('[HTTP] Clear Errors');\n","export function jwtDecoder<TYPE>(rawToken: string): TYPE | null {\n const splits = rawToken?.split('.');\n if (splits?.length > 1) {\n const payload = splits[1];\n return JSON.parse(window.atob(payload)) as TYPE;\n } else {\n return null;\n }\n}\n","import * as oidcActions from './oidc.actions';\nimport { jwtDecoder } from '../util/jwt-decoder';\nimport { on, createReducer, createFeature } from '@ngrx/store';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\n\nexport const OIDC_FEATURE_KEY = 'oidc';\nexport interface OidcState {\n identity: IOidcUser | undefined;\n audiences: string[] | undefined;\n userMetadata: unknown | undefined;\n permissions: string[] | undefined;\n isLoading: boolean;\n isLoggedIn: boolean;\n isExpiring: boolean;\n isExpired: boolean;\n errors: ErrorState;\n}\n\nexport interface ErrorState {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n silentRenewError: unknown | undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n signInError: unknown | undefined;\n httpError: HttpErrorResponse | undefined;\n}\n\nexport const initialState: OidcState = {\n audiences: [],\n permissions: [],\n isLoading: true,\n isLoggedIn: false,\n isExpiring: false,\n isExpired: false,\n identity: undefined,\n userMetadata: undefined,\n errors: {\n silentRenewError: undefined,\n signInError: undefined,\n httpError: undefined,\n },\n};\n\nexport const oidcFeature = createFeature({\n name: OIDC_FEATURE_KEY,\n reducer: createReducer(initialState,\n on(oidcActions.getOidcUser,\n oidcActions.onUserLoading,\n (state): OidcState => ({\n ...state,\n isLoading: true,\n isLoggedIn: false,\n })),\n on(oidcActions.removeOidcUser,\n (state): OidcState => ({\n ...state,\n isLoading: true,\n isLoggedIn: false,\n identity: undefined,\n })),\n on(oidcActions.setHttpError,\n (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n httpError: err.payload,\n },\n })),\n on(oidcActions.onUserMetadataLoaded,\n (state, userMetadata): OidcState => ({\n ...state,\n userMetadata: userMetadata.payload,\n isLoading: false,\n })),\n on(oidcActions.clearErrors,\n (state): OidcState => ({\n ...state, errors: {\n signInError: undefined,\n silentRenewError: undefined,\n httpError: undefined\n }\n })),\n on(oidcActions.userDoneLoading,\n (state): OidcState => ({\n ...state,\n isLoading: false\n })),\n on(oidcActions.onAccessTokenExpiring,\n (state): OidcState => ({\n ...state,\n isExpiring: true,\n })),\n on(oidcActions.onAccessTokenExpired,\n (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n isExpiring: false,\n isExpired: true,\n })),\n on(oidcActions.onUserLoaded,\n (state): OidcState => ({\n ...state,\n isLoading: false,\n isExpiring: false,\n })),\n on(\n oidcActions.onUserUnloaded,\n oidcActions.onUserSignedOut,\n oidcActions.signOutPopupError,\n oidcActions.signOutRedirectError,\n (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n identity: undefined,\n isExpired: true,\n isExpiring: false,\n userMetadata: undefined,\n })\n ),\n on(oidcActions.signOutRedirect,\n oidcActions.signOutPopup,\n (state): OidcState => ({\n ...state,\n identity: undefined,\n userMetadata: null,\n isLoggedIn: false,\n })),\n on(\n oidcActions.userFound,\n oidcActions.onSignInPopup,\n oidcActions.onSignInRedirect,\n oidcActions.onSignInSilent,\n (state, { payload }): OidcState => ({\n ...state,\n identity: payload,\n isLoggedIn: true,\n audiences: jwtDecoder<{ aud?: []; }>(payload.access_token)?.aud,\n permissions: jwtDecoder<{ permissions?: []; }>(payload.access_token)?.permissions,\n })\n ),\n on(oidcActions.userExpired, (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n isExpiring: false,\n })),\n on(oidcActions.onSilentRenewError, (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n silentRenewError: err.payload,\n },\n })),\n on(\n oidcActions.userDoneLoadingError,\n oidcActions.signInError,\n (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n signInError: err.payload,\n },\n })\n ))\n});\n","import { createSelector } from '@ngrx/store';\nimport { ErrorState, oidcFeature } from './oidc.reducer';\nimport { IOidcUser } from '../models/oidc-user';\n// State Selectors\n\nconst selectAccessToken = createSelector(\n oidcFeature.selectIdentity,\n (user?: IOidcUser) => (user || { access_token: undefined }).access_token\n);\n\n// errors\nconst selectOidcErrorState = createSelector(\n oidcFeature.selectErrors,\n (errors) => errors\n);\n\nconst selectHasErrors = createSelector(\n selectOidcErrorState,\n (state: ErrorState) =>\n !!state.httpError || !!state.signInError || !!state.silentRenewError\n);\n\nconst selectSignInError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.signInError\n);\n\nconst selectSilentRenewError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.silentRenewError\n);\n\nconst selectHttpError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.httpError\n);\n\nconst selectExpiresAt = createSelector(oidcFeature.selectIdentity, (state?: IOidcUser) =>\n state?.expires_at ? new Date(state.expires_at * 1000) : null //NOSONAR\n);\n;\n\nexport const oidcQuery = {\n selectExpiresAt,\n selectPermissions: oidcFeature.selectPermissions,\n selectIsLoading: oidcFeature.selectIsLoading,\n selectIdentity: oidcFeature.selectIdentity,\n selectAccessToken,\n selectIsExpiring: oidcFeature.selectIsExpiring,\n selectIsExpired: oidcFeature.selectIsExpired,\n selectIsLoggedIn: oidcFeature.selectIsLoggedIn,\n selectSilentRenewError,\n selectSignInError,\n selectHttpError,\n selectHasErrors,\n selectAudiences: oidcFeature.selectAudiences,\n selectUserMetadata: oidcFeature.selectUserMetadata,\n};\n","export enum OidcEvent {\n AccessTokenExpired = 'addAccessTokenExpired',\n AccessTokenExpiring = 'addAccessTokenExpiring',\n SilentRenewError = 'AddSilentRenewError',\n UserLoaded = 'addUserLoaded',\n UserUnloaded = 'addUserUnloaded',\n UserSignedOut = 'addUserSignedOut',\n UserSessionChanged = 'addUserSessionChanged'\n}\n\nexport enum StorageKeys {\n PopupCallback = 'ngoidc:isPopupCallback',\n OidcSettings = 'ngoidc:settings',\n}\n\nexport const ACTION_NO_ACTION = 'NO_ACTION';\n","import { InjectionToken } from '@angular/core';\nimport { UserManagerSettings, Logger } from 'oidc-client';\n\nexport interface OidcLibraryConfig {\n oidc_config: UserManagerSettings;\n useCallbackFlag: boolean;\n getUserMetadata: boolean;\n log?: {\n logger: Logger;\n level: number;\n };\n}\nexport const OIDC_LIBRARY_CONFIG = new InjectionToken<OidcLibraryConfig>(\n 'OIDC_LIBRARY_CONFIG'\n);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport {\n Log,\n OidcClient,\n SigninRequest,\n SignoutRequest,\n UserManager,\n UserManagerSettings,\n} from 'oidc-client';\nimport { from, Observable } from 'rxjs';\nimport { OidcEvent, StorageKeys } from '../models/constants';\nimport { IOidcUser } from '../models/oidc-user';\nimport { switchMap } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport {\n OidcLibraryConfig,\n OIDC_LIBRARY_CONFIG,\n} from '../models/oidc-library-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcService {\n public readonly OidcUserManager: UserManager;\n private readonly _oidcClient: OidcClient;\n private readonly _userManagerSettings: UserManagerSettings;\n\n constructor(\n @Inject(OIDC_LIBRARY_CONFIG)\n private readonly oidcLibraryConfig: OidcLibraryConfig,\n // eslint-disable-next-line @typescript-eslint/ban-types\n @Inject(PLATFORM_ID) private readonly platformId: Object,\n private readonly httpClient: HttpClient\n ) {\n const logSettings = this.oidcLibraryConfig.log;\n let clientSettings = this.oidcLibraryConfig.oidc_config;\n\n if (logSettings) {\n Log.level = logSettings.level;\n Log.logger = logSettings.logger;\n }\n\n if (clientSettings?.userStore != null) {\n clientSettings = {\n ...clientSettings,\n userStore: clientSettings.userStore,\n };\n }\n this._userManagerSettings = { ...clientSettings };\n this.OidcUserManager = new UserManager(clientSettings);\n this._oidcClient = new OidcClient(clientSettings);\n }\n\n public getUserMetadata(): Observable<unknown> {\n return this.httpClient\n .get<{ userinfo_endpoint: string; }>(\n this.oidcLibraryConfig.oidc_config?.metadataUrl || ''\n )\n .pipe(\n switchMap((openidConfig) =>\n this.httpClient.get<unknown>(openidConfig.userinfo_endpoint)\n )\n );\n }\n\n getUserManager(): UserManager {\n return this.OidcUserManager;\n }\n\n getOidcClient(): OidcClient {\n return this._oidcClient;\n }\n\n getOidcUser(): Observable<IOidcUser | null> {\n return from(this.OidcUserManager.getUser());\n }\n\n removeOidcUser(): Observable<void> {\n return from(this.OidcUserManager.removeUser());\n }\n\n registerOidcEvent(\n event: OidcEvent,\n callback: (...ev: unknown[]) => void\n ): void {\n switch (event) {\n case OidcEvent.AccessTokenExpired:\n this.OidcUserManager.events.addAccessTokenExpired(callback);\n break;\n case OidcEvent.AccessTokenExpiring:\n this.OidcUserManager.events.addAccessTokenExpiring(callback);\n break;\n case OidcEvent.SilentRenewError:\n this.OidcUserManager.events.addSilentRenewError(callback);\n break;\n case OidcEvent.UserLoaded:\n this.OidcUserManager.events.addUserLoaded(callback);\n break;\n case OidcEvent.UserSessionChanged:\n this.OidcUserManager.events.addUserSessionChanged(callback);\n break;\n case OidcEvent.UserSignedOut:\n this.OidcUserManager.events.addUserSignedOut(callback);\n break;\n case OidcEvent.UserUnloaded:\n this.OidcUserManager.events.addUserUnloaded(callback);\n break;\n default:\n break;\n }\n }\n\n removeOidcEvent(\n event: OidcEvent,\n callback: (...ev: unknown[]) => void\n ): void {\n switch (event) {\n case OidcEvent.AccessTokenExpired:\n this.OidcUserManager.events.removeAccessTokenExpired(callback);\n break;\n case OidcEvent.AccessTokenExpiring:\n this.OidcUserManager.events.removeAccessTokenExpiring(callback);\n break;\n case OidcEvent.SilentRenewError:\n this.OidcUserManager.events.removeSilentRenewError(callback);\n break;\n case OidcEvent.UserLoaded:\n this.OidcUserManager.events.removeUserLoaded(callback);\n break;\n case OidcEvent.UserSessionChanged:\n this.OidcUserManager.events.removeUserSessionChanged(callback);\n break;\n case OidcEvent.UserSignedOut:\n this.OidcUserManager.events.removeUserSignedOut(callback);\n break;\n case OidcEvent.UserUnloaded:\n this.OidcUserManager.events.removeUserUnloaded(callback);\n break;\n default:\n break;\n }\n }\n\n signInPopup(args?: any): Observable<IOidcUser> { //NOSONAR\n this.setCallbackInformation(true);\n\n return from(this.OidcUserManager.signinPopup({ ...args }));\n }\n\n signInRedirect(args?: any): Observable<void> { //NOSONAR\n this.setCallbackInformation(false);\n\n return from(this.OidcUserManager.signinRedirect({ ...args }));\n }\n\n signOutPopup(args?: any): Observable<any> { //NOSONAR\n this.setCallbackInformation(true);\n\n return from(this.OidcUserManager.signoutPopup({ ...args }));\n }\n\n signOutRedirect(args?: any): Observable<any> { //NOSONAR\n this.setCallbackInformation(false);\n return from(this.OidcUserManager.signoutRedirect({ ...args }));\n }\n\n signInSilent(args?: any): Observable<IOidcUser> { //NOSONAR\n return from(this.OidcUserManager.signinSilent({ ...args }));\n }\n\n signinPopupCallback(): Observable<any> { //NOSONAR\n return from(this.OidcUserManager.signinPopupCallback());\n }\n\n signinRedirectCallback(): Observable<IOidcUser> {\n return from(this.OidcUserManager.signinRedirectCallback());\n }\n\n signoutPopupCallback(): Observable<void> {\n return from(this.OidcUserManager.signoutPopupCallback());\n }\n\n signoutRedirectCallback(): Observable<any> { //NOSONAR\n return from(this.OidcUserManager.signoutRedirectCallback());\n }\n\n getSigninUrl(args?: any): Observable<SigninRequest> { //NOSONAR\n return from(this.OidcUserManager.createSigninRequest(args));\n }\n\n getSignoutUrl(args?: any): Observable<SignoutRequest> { //NOSONAR\n return from(this.OidcUserManager.createSignoutRequest(args));\n }\n\n private setCallbackInformation(isPopupCallback: boolean): void {\n // is browser and useCallbackFlag set to true or defaults to true\n if (\n isPlatformBrowser(this.platformId) &&\n this.oidcLibraryConfig.useCallbackFlag\n ) {\n localStorage.setItem(StorageKeys.PopupCallback, `${isPopupCallback}`);\n localStorage.setItem(\n StorageKeys.OidcSettings,\n JSON.stringify(this._userManagerSettings)\n );\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n OidcClient,\n SigninRequest,\n SignoutRequest,\n UserManager,\n} from 'oidc-client';\nimport { Observable } from 'rxjs';\nimport { filter, take, map } from 'rxjs/operators';\nimport { oidcQuery } from './oidc.selectors';\nimport { OidcService } from '../services/oidc.service';\nimport { RequestArugments } from '../models/arguments.model';\nimport { OidcEvent } from '../models/constants';\nimport * as oidcActions from './oidc.actions';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcFacade {\n constructor(\n private readonly store: Store,\n private readonly oidcService: OidcService\n ) {\n this.registerDefaultEvents();\n }\n\n loading$: Observable<boolean> = this.store.select(oidcQuery.selectIsLoading);\n expiring$: Observable<boolean> = this.store.select(\n oidcQuery.selectIsExpiring\n );\n expired$: Observable<boolean> = this.store.select(\n oidcQuery.selectIsExpired\n );\n loggedIn$: Observable<boolean> = this.store.select(oidcQuery.selectIsLoggedIn);\n identity$: Observable<IOidcUser | undefined> = this.store.select(\n oidcQuery.selectIdentity\n );\n accessToken$: Observable<string | undefined> = this.store.select(\n oidcQuery.selectAccessToken\n );\n httpError$: Observable<HttpErrorResponse | undefined> = this.store.select(\n oidcQuery.selectHttpError\n );\n signInError$: Observable<unknown> = this.store.select(\n oidcQuery.selectSignInError\n );\n silentRenewError$: Observable<unknown> = this.store.select(\n oidcQuery.selectSilentRenewError\n );\n hasErrors$: Observable<boolean> = this.store.select(oidcQuery.selectHasErrors);\n permissions$: Observable<string[] | undefined> = this.store.select(\n oidcQuery.selectPermissions\n );\n audiences$: Observable<string[] | null | undefined> = this.store.select(\n oidcQuery.selectAudiences\n );\n expiresAt$: Observable<Date | null> = this.store.select(\n oidcQuery.selectExpiresAt\n );\n userMetadata$: Observable<unknown> = this.store.select(\n oidcQuery.selectUserMetadata\n );\n\n // default bindings to events\n public addUserUnLoaded(): void {\n if (this.store) {\n this.store.dispatch(oidcActions.onUserUnloaded());\n }\n }\n\n public accessTokenExpired(): void {\n if (this.store) {\n this.store.dispatch(oidcActions.onAccessTokenExpired());\n } else {\n sessionStorage.clear();\n localStorage.clear();\n window.location.reload();\n }\n }\n\n public accessTokenExpiring(): void {\n if (this.store) {\n this.store.dispatch(oidcActions.onAccessTokenExpiring());\n } else {\n this.accessTokenExpired();\n }\n }\n\n public addSilentRenewError(...ev: unknown[]): void {\n this.store.dispatch(oidcActions.onSilentRenewError(ev[0] as Error));\n }\n\n public addUserLoaded(...ev: unknown[]): void {\n this.store.dispatch(oidcActions.onUserLoaded(ev[0] as IOidcUser));\n }\n\n public addUserSignedOut(): void {\n this.oidcService.removeOidcUser();\n this.store.dispatch(oidcActions.onUserSignedOut());\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public addUserSessionChanged(): void {\n this.store.dispatch(oidcActions.onSessionChanged());\n }\n\n public clearErrors(): void {\n this.store.dispatch(oidcActions.clearErrors());\n };\n\n // OIDC Methods\n\n public getOidcUser(): void {\n this.store.dispatch(oidcActions.getOidcUser());\n }\n\n public removeOidcUser(): void {\n this.store.dispatch(oidcActions.removeOidcUser());\n }\n\n public getUserManager(): UserManager {\n return this.oidcService.getUserManager();\n }\n\n public getOidcClient(): OidcClient {\n return this.oidcService.getOidcClient();\n }\n\n /**\n * Convenient function to wait for loaded.\n */\n public waitForAuthenticationLoaded(): Observable<boolean> {\n return this.loading$.pipe(\n filter((loading) => loading === false),\n take(1),\n map(() => true)\n );\n }\n\n public signinPopup(args: RequestArugments): void {\n this.store.dispatch(oidcActions.signInPopup(args));\n }\n\n public signinRedirect(args?: RequestArugments): void {\n this.store.dispatch(oidcActions.signInRedirect(args));\n }\n\n public signinSilent(args: RequestArugments): void {\n this.store.dispatch(oidcActions.signInSilent(args));\n }\n\n public signoutPopup(args: RequestArugments): void {\n this.store.dispatch(oidcActions.signOutPopup(args));\n }\n\n public signoutRedirect(args?: RequestArugments): void {\n this.store.dispatch(oidcActions.signOutRedirect(args));\n }\n\n public getSigninUrl(args?: RequestArugments): Observable<SigninRequest> {\n return this.oidcService.getSigninUrl(args);\n };\n\n getSignoutUrl(args?: RequestArugments): Observable<SignoutRequest> {\n return this.oidcService.getSignoutUrl(args);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerEvent(event: OidcEvent, callback: (...ev: unknown[]) => void): void {\n this.oidcService.registerOidcEvent(event, callback);\n }\n\n private registerDefaultEvents(): void {\n // add simple loggers\n this.registerEvent(OidcEvent.AccessTokenExpired, this.accessTokenExpired);\n this.registerEvent(OidcEvent.AccessTokenExpiring, this.accessTokenExpiring);\n this.registerEvent(OidcEvent.SilentRenewError, this.addSilentRenewError);\n\n this.registerEvent(OidcEvent.UserLoaded, this.addUserLoaded);\n this.registerEvent(OidcEvent.UserUnloaded, this.addUserUnLoaded);\n this.registerEvent(OidcEvent.UserSignedOut, this.addUserSignedOut);\n this.registerEvent(\n OidcEvent.UserSessionChanged,\n this.addUserSessionChanged\n );\n }\n}\n","import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { Injectable, Inject } from '@angular/core';\nimport { tap, switchMap } from 'rxjs/operators';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard implements CanActivate, CanActivateChild {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(@Inject(DOCUMENT) private readonly document: any, private readonly oidcFacade: OidcFacade) { } //NOSONAR\n\n public readonly isLoggedInPipe$ = this.oidcFacade.waitForAuthenticationLoaded().pipe(\n switchMap(() => this.oidcFacade.loggedIn$),\n tap(t => {\n if (!t) {\n this.oidcFacade.signinRedirect({\n data: { redirect_url: this.document.location.href }\n });\n }\n })\n );\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> { //NOSONAR\n return this.isLoggedInPipe$;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot) //NOSONAR\n : Observable<boolean> {\n return this.isLoggedInPipe$;\n }\n}\n","import { isNullOrUndefined } from 'imng-nrsrx-client-utils';\nimport { WebStorageStateStore } from 'oidc-client';\nimport { OidcClientConfig } from '../models/oidc-client-config';\nimport { OidcLibraryConfig } from '../models/oidc-library-config';\n\nexport function oidcConfigurator(\n oidcClientConfig: OidcClientConfig,\n document: Document\n): OidcLibraryConfig {\n return {\n oidc_config: {\n authority: oidcClientConfig.authority,\n client_id: oidcClientConfig.client_id,\n extraQueryParams: { audience: oidcClientConfig.audience },\n redirect_uri: `${document.location.origin}/callback.html`,\n response_type: oidcClientConfig.response_type || 'id_token token',\n scope: oidcClientConfig.scope || 'openid profile offline_access email',\n post_logout_redirect_uri: `${document.location.origin}/signout-callback.html`,\n silent_redirect_uri: `${document.location.origin}/renew-callback.html`,\n automaticSilentRenew:\n isNullOrUndefined(oidcClientConfig.automaticSilentRenew)\n ? true\n : oidcClientConfig.automaticSilentRenew,\n metadataUrl: `${oidcClientConfig.authority}/.well-known/openid-configuration`,\n userStore: new WebStorageStateStore({\n store: oidcClientConfig.webStorageStateStore || sessionStorage,\n prefix: 'imng-oidc'\n }),\n },\n getUserMetadata: oidcClientConfig.getUserMetadata,\n useCallbackFlag:\n isNullOrUndefined(oidcClientConfig.useCallbackFlag)\n ? true\n : oidcClientConfig.useCallbackFlag as boolean,\n };\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface OidcClientConfig {\n audience: string;\n client_id: string;\n authority: string;\n scope?:\n | 'openid'\n | 'profile'\n | 'offline_access'\n | 'name'\n | 'given_name'\n | 'family_name'\n | 'nickname'\n | 'email'\n | 'email_verified'\n | 'picture'\n | 'created_at'\n | 'identities'\n | 'phone'\n | 'address'\n | string; //NOSONAR\n response_type?:\n | 'code'\n | 'token'\n | 'id_token'\n | 'code token'\n | 'code id_token'\n | 'token id_token'\n | 'code token id_token'\n | string; //NOSONAR\n automaticSilentRenew?: boolean;\n getUserMetadata: boolean;\n useCallbackFlag?: boolean;\n webStorageStateStore?: Storage,\n}\nexport const OIDC_CLIENT_CONFIG = new InjectionToken<OidcClientConfig>(\n 'oidc-client-config'\n);\n","import { createSelector } from '@ngrx/store';\nimport { OidcUserProfile } from '../models/oidc-user-profile';\nimport { oidcQuery } from './oidc.selectors';\nimport { oidcFeature } from './oidc.reducer';\nimport { IOidcUser } from '../models/oidc-user';\n\nconst selectProfile = createSelector(\n oidcQuery.selectIdentity,\n (identity?: IOidcUser) => identity?.profile as OidcUserProfile\n);\n\nconst getPermissions = oidcFeature.selectPermissions;\n\nconst selectEmail = createSelector(selectProfile, (profile) => profile?.email);\n\nconst selectProfilePicture = createSelector(\n selectProfile,\n (profile) => profile?.picture\n);\n\nexport const OidcUserSelectors = {\n getProfile: selectProfile,\n getEmail: selectEmail,\n getProfilePicture: selectProfilePicture,\n getPermissions,\n};\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { OidcUserSelectors } from './oidc-user.selectors';\nimport { OidcUserProfile } from '../models/oidc-user-profile';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcUserFacade {\n constructor(private readonly store: Store) { }\n profile$: Observable<OidcUserProfile> = this.store.select(\n OidcUserSelectors.getProfile\n );\n email$: Observable<string | undefined> = this.store.select(\n OidcUserSelectors.getEmail\n );\n profilePicture$: Observable<string | undefined> = this.store.select(\n OidcUserSelectors.getProfilePicture\n );\n permissions$: Observable<string[] | undefined> = this.store.select(\n OidcUserSelectors.getPermissions\n );\n\n public hasPermissions(\n requiredPermissions: Array<string>\n ): Observable<boolean> {\n return this.permissions$.pipe(\n map(\n (t) =>\n -1 <\n requiredPermissions.findIndex(\n (f) => -1 < (t?.findIndex((i) => i === f) || -1)\n )\n )\n );\n }\n}\n","import { Component } from '@angular/core';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { OidcUserFacade } from '../+state/oidc-user.facade';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Component({\n selector: 'imng-support',\n template: `<div class=\"container pt-5 mt-5\">\n <div class=\"row h3 text-center\">\n <div class=\"col-md-12 text-center\">OIDC Support</div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Audiences</div>\n <div class=\"col-md-8\">\n <span *ngFor=\"let item of facade.audiences$ | async; last as isLast\">\n {{ item }} <br *ngIf=\"!isLast\" />\n </span>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Permissions</div>\n <div class=\"col-md-8\">\n <span *ngFor=\"let item of facade.permissions$ | async; last as isLast\">\n {{ item }} <br *ngIf=\"!isLast\" />\n </span>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Expires</div>\n <div class=\"col-md-8\">{{ facade.expiresAt$ | async }}</div>\n </div>\n <div class=\"row\" *ngFor=\"let item of profileValue$ | async\">\n <div class=\"col-md-3\">{{ item.key }}</div>\n <div class=\"col-md-8\">{{ item.value }}</div>\n </div>\n </div> `,\n})\nexport class SupportComponent {\n public profileValue$: Observable<{ key: string; value: string; }[]>;\n constructor(\n public readonly facade: OidcFacade,\n public readonly oidcUserFacade: OidcUserFacade\n ) {\n this.profileValue$ = this.oidcUserFacade.profile$.pipe(\n map((x) =>\n Object.keys(x).map((propertyKey) => ({\n key: propertyKey,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: (x as any)[propertyKey], //NOSONAR\n }))\n )\n );\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'imng-access-denied',\n template: '<div class=\"p-5 m-5 text-danger\">Access denied.</div>'\n})\nexport class AccessDeniedComponent { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'imng-logout-success',\n template:\n // eslint-disable-next-line max-len\n '<div class=\"p-5 m-5 text-center\">You have successfully logged out.<br/>Please close this browser window to ensure you are completely logged out of the session.</div>'\n})\nexport class LogoutSuccessComponent { }\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule, Route } from '@angular/router';\nimport { SupportComponent } from './support/support.component';\nimport { AccessDeniedComponent } from './components/access-denied.component';\nimport { AuthGuard } from './services/auth-guard';\nimport { LogoutSuccessComponent } from './components/logout-success.component';\n\nconst routes: Routes = [\n { path: 'support', component: SupportComponent },\n { path: 'access-denied', component: AccessDeniedComponent },\n { path: 'logout', component: LogoutSuccessComponent },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ImngOidcClientRoutingModule {}\n\nexport const oidcSupportRoute: Route = {\n path: 'oidc/support',\n component: SupportComponent,\n canActivate: [AuthGuard],\n};\n\nexport const oidcAccessDeniedRoute: Route = {\n path: 'oidc/access-denied',\n component: AccessDeniedComponent,\n};\n\nexport const oidcLogoutRoute: Route = {\n path: 'oidc/logout',\n component: LogoutSuccessComponent,\n};\n\nexport const oidcRoutes: Route[] = [\n oidcSupportRoute,\n oidcAccessDeniedRoute,\n oidcLogoutRoute,\n];\n","import { Inject, Injectable } from '@angular/core';\nimport { Actions, ofType, OnInitEffects, createEffect } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\nimport { of } from 'rxjs';\nimport {\n catchError,\n concatMap,\n map,\n filter,\n tap,\n switchMap,\n} from 'rxjs/operators';\nimport { OidcService } from '../services/oidc.service';\nimport * as oidcActions from './oidc.actions';\nimport { IOidcUser } from '../models/oidc-user';\nimport { Router } from '@angular/router';\nimport { oidcLogoutRoute } from '../img-oidc-client-routing.module';\nimport {\n OidcLibraryConfig,\n OIDC_LIBRARY_CONFIG,\n} from '../models/oidc-library-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcEffects implements OnInitEffects {\n constructor(\n private readonly actions$: Actions,\n private readonly oidcService: OidcService,\n @Inject(OIDC_LIBRARY_CONFIG)\n private readonly oidcLibraryOptions: OidcLibraryConfig,\n private readonly router: Router\n ) { }\n\n getOidcUser$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.getOidcUser),\n switchMap(() =>\n this.oidcService.getOidcUser().pipe(\n map((userData: IOidcUser | null) =>\n this.makeOidcUserSerializable(userData)\n ),\n filter((userData: IOidcUser) => !!userData),\n map((userData: IOidcUser) => oidcActions.userFound(userData)),\n catchError((err) => of(oidcActions.userDoneLoadingError(err)))\n )));\n });\n\n silentRenew$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(\n (userFound: { payload: IOidcUser; }) =>\n // user expired, initiate silent sign-in if configured to automatic\n (userFound.payload != null &&\n userFound.payload.expired &&\n this.oidcLibraryOptions.oidc_config?.automaticSilentRenew) ||\n false\n ),\n map((userFound) => oidcActions.signInSilent(userFound.payload))\n );\n });\n\n removeOidcUser$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.removeOidcUser),\n concatMap(() =>\n this.oidcService.removeOidcUser().pipe(\n map(() => oidcActions.userDoneLoading()),\n catchError((err) => of(oidcActions.oidcError(err)))\n )\n )\n );\n });\n\n userDoneLoadingNoMetadata$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(() => !this.oidcLibraryOptions.getUserMetadata),\n map(() => oidcActions.userDoneLoading())\n );\n });\n\n userDoneLoadingWithMetadata$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(() => this.oidcLibraryOptions.getUserMetadata || false),\n switchMap(() => this.oidcService.getUserMetadata()),\n map((metadata) => oidcActions.onUserMetadataLoaded(metadata))\n );\n });\n\n onAccessTokenExpired$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.onAccessTokenExpired),\n map(() => oidcActions.removeOidcUser())\n );\n });\n\n signInPopup$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInPopup),\n concatMap((args) =>\n this.oidcService.signInPopup(args.payload).pipe(\n map((user) =>\n oidcActions.onSignInPopup(this.makeOidcUserSerializable(user))\n ),\n catchError((err) => of(oidcActions.signInError(err)))\n )\n )\n );\n });\n\n signInRedirect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInRedirect),\n concatMap((args) =>\n this.oidcService.signInRedirect(args.payload).pipe(\n concatMap(() => this.oidcService.signinRedirectCallback()),\n map((user) =>\n oidcActions.onSignInRedirect(this.makeOidcUserSerializable(user))\n ),\n catchError((err) => of(oidcActions.signInError(err)))\n )\n )\n );\n });\n\n signInSilent$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInSilent),\n concatMap((args) =>\n this.oidcService.signInSilent(args.payload).pipe(\n map((user) =>\n oidcActions.onSignInSilent(this.makeOidcUserSerializable(user))\n ),\n catchError((err) => of(oidcActions.onSilentRenewError(err)))\n )\n )\n );\n });\n\n signOutPopup$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signOutPopup),\n concatMap((args) =>\n this.oidcService.signOutPopup(args.payload).pipe(\n map(() => oidcActions.onUserSignedOut()),\n catchError((err) => of(oidcActions.signOutPopupError(err.message)))\n )\n )\n );\n });\n\n signOutRedirect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signOutRedirect),\n concatMap((args) =>\n this.oidcService.signOutRedirect(args.payload).pipe(\n map(() => oidcActions.onUserSignedOut()),\n catchError((err) => of(oidcActions.signOutRedirectError(err.message)))\n )\n )\n );\n });\n\n onUserSignedOut$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(\n oidcActions.onUserSignedOut,\n oidcActions.signOutPopupError,\n oidcActions.signOutRedirectError\n ),\n tap(() => {\n localStorage.clear();\n sessionStorage.clear();\n this.router.navigateByUrl(oidcLogoutRoute.path || '');\n })\n );\n },\n { dispatch: false }\n );\n\n\n ngrxOnInitEffects(): Action {\n return oidcActions.getOidcUser();\n }\n\n makeOidcUserSerializable(user: IOidcUser | null): IOidcUser {\n if (user?.toStorageString) {\n user = {\n ...user,\n toStorageString: undefined,\n };\n }\n return user as IOidcUser;\n }\n}\n","import { Observable, throwError } from 'rxjs';\nimport { first, catchError, mergeMap } from 'rxjs/operators';\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { oidcQuery } from '../+state/oidc.selectors';\nimport * as oidcActions from '../+state/oidc.actions';\n\n@Injectable()\nexport class TokenInterceptorService implements HttpInterceptor {\n constructor(private readonly store: Store) { }\n\n intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n return this.store.select(oidcQuery.selectAccessToken).pipe(\n first(),\n mergeMap(accessToken => {\n if (accessToken) {\n req = req.clone({\n setHeaders: { Authorization: `Bearer ${accessToken}` },\n });\n }\n return next.handle(req).pipe(\n catchError((err: Error) => {\n if (err instanceof HttpErrorResponse) {\n this.store.dispatch(oidcActions.setHttpError(err));\n }\n return throwError(() => err);\n }));\n }\n ));\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport { AuthGuard } from './services/auth-guard';\nimport { oidcConfigurator } from './util/oidc-client-configurator';\nimport {\n OidcClientConfig,\n OIDC_CLIENT_CONFIG,\n} from './models/oidc-client-config';\nimport { OidcEffects } from './+state/oidc.effects';\nimport { OidcService } from './services/oidc.service';\nimport { OidcFacade } from './+state/oidc.facade';\nimport { StoreModule, Store } from '@ngrx/store';\nimport { oidcFeature } from './+state/oidc.reducer';\nimport { EffectsModule } from '@ngrx/effects';\nimport { OidcUserFacade } from './+state/oidc-user.facade';\nimport { TokenInterceptorService } from './services/token-interceptor.service';\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\nimport { AccessDeniedComponent } from './components/access-denied.component';\nimport { SupportComponent } from './support/support.component';\nimport { ImngOidcClientRoutingModule } from './img-oidc-client-routing.module';\nimport { LogoutSuccessComponent } from './components/logout-success.component';\nimport { OIDC_LIBRARY_CONFIG } from './models/oidc-library-config';\n\n@NgModule({\n declarations: [\n AccessDeniedComponent,\n SupportComponent,\n LogoutSuccessComponent,\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n StoreModule.forFeature(oidcFeature),\n EffectsModule.forFeature([OidcEffects]),\n ImngOidcClientRoutingModule,\n ],\n exports: [AccessDeniedComponent, SupportComponent, LogoutSuccessComponent],\n providers: [\n {\n provide: OIDC_LIBRARY_CONFIG,\n useFactory: oidcConfigurator,\n deps: [OIDC_CLIENT_CONFIG, DOCUMENT],\n },\n OidcService,\n OidcFacade,\n OidcUserFacade,\n AuthGuard,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: TokenInterceptorService,\n multi: true,\n deps: [Store],\n },\n ],\n})\nexport class ImngOidcClientModule {\n static forRoot(\n oidc0ptions: OidcClientConfig\n ): ModuleWithProviders<ImngOidcClientModule> {\n return {\n ngModule: ImngOidcClientModule,\n providers: [{ provide: OIDC_CLIENT_CONFIG, useValue: oidc0ptions }],\n };\n }\n}\n","import {\n CanActivate,\n ActivatedRouteSnapshot,\n RouterStateSnapshot,\n Router,\n} from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { switchMap, tap } from 'rxjs/operators';\nimport { OidcUserFacade } from '../+state/oidc-user.facade';\n\nexport abstract class PermissionsGuard implements CanActivate {\n constructor(\n private readonly oidcFacade: OidcFacade,\n private readonly oidcUserFacade: OidcUserFacade,\n private readonly router: Router\n ) { }\n\n protected abstract permissions: string[];\n\n public canActivate(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n route: ActivatedRouteSnapshot, //NOSONAR\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n state: RouterStateSnapshot //NOSONAR\n ): Observable<boolean> | boolean {\n return this.oidcFacade.waitForAuthenticationLoaded().pipe(\n switchMap(() => this.oidcUserFacade.hasPermissions(this.permissions)),\n tap((t) => {\n if (!t) {\n this.router.navigate(['oidc/access-denied'], {\n relativeTo: this.router.routerState.root,\n });\n }\n })\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["oidcActions.getOidcUser","oidcActions.onUserLoading","oidcActions.removeOidcUser","oidcActions.setHttpError","oidcActions.onUserMetadataLoaded","oidcActions.clearErrors","oidcActions.userDoneLoading","oidcActions.onAccessTokenExpiring","oidcActions.onAccessTokenExpired","oidcActions.onUserLoaded","oidcActions.onUserUnloaded","oidcActions.onUserSignedOut","oidcActions.signOutPopupError","oidcActions.signOutRedirectError","oidcActions.signOutRedirect","oidcActions.signOutPopup","oidcActions.userFound","oidcActions.onSignInPopup","oidcActions.onSignInRedirect","oidcActions.onSignInSilent","oidcActions.userExpired","oidcActions.onSilentRenewError","oidcActions.userDoneLoadingError","oidcActions.signInError","oidcActions.onSessionChanged","oidcActions.signInPopup","oidcActions.signInRedirect","oidcActions.signInSilent","i1","i2.OidcService","i1.OidcFacade","i2.OidcUserFacade","oidcActions.oidcError","i3"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import * as i1$1 from '@ngrx/store';
|
|
|
6
6
|
import { createAction, createFeature, createReducer, on, createSelector, Store, StoreModule } from '@ngrx/store';
|
|
7
7
|
import { switchMap, filter, take, map, tap, catchError, concatMap, first, mergeMap } from 'rxjs/operators';
|
|
8
8
|
import { createPayloadAction } from 'imng-ngrx-utils';
|
|
9
|
-
import { Log, UserManager, OidcClient } from 'oidc-client';
|
|
9
|
+
import { Log, UserManager, OidcClient, WebStorageStateStore } from 'oidc-client';
|
|
10
10
|
import { from, of, throwError } from 'rxjs';
|
|
11
11
|
import * as i1 from '@angular/common/http';
|
|
12
12
|
import { HttpErrorResponse, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
@@ -577,6 +577,10 @@ function oidcConfigurator(oidcClientConfig, document) {
|
|
|
577
577
|
? true
|
|
578
578
|
: oidcClientConfig.automaticSilentRenew,
|
|
579
579
|
metadataUrl: `${oidcClientConfig.authority}/.well-known/openid-configuration`,
|
|
580
|
+
userStore: new WebStorageStateStore({
|
|
581
|
+
store: oidcClientConfig.webStorageStateStore || sessionStorage,
|
|
582
|
+
prefix: 'imng-oidc'
|
|
583
|
+
}),
|
|
580
584
|
},
|
|
581
585
|
getUserMetadata: oidcClientConfig.getUserMetadata,
|
|
582
586
|
useCallbackFlag: isNullOrUndefined(oidcClientConfig.useCallbackFlag)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imng-oidc-client.mjs","sources":["../../../../libs/imng-oidc-client/src/lib/+state/oidc.actions.ts","../../../../libs/imng-oidc-client/src/lib/util/jwt-decoder.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.reducer.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.selectors.ts","../../../../libs/imng-oidc-client/src/lib/models/constants.ts","../../../../libs/imng-oidc-client/src/lib/models/oidc-library-config.ts","../../../../libs/imng-oidc-client/src/lib/services/oidc.service.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.facade.ts","../../../../libs/imng-oidc-client/src/lib/services/auth-guard.ts","../../../../libs/imng-oidc-client/src/lib/util/oidc-client-configurator.ts","../../../../libs/imng-oidc-client/src/lib/models/oidc-client-config.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc-user.selectors.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc-user.facade.ts","../../../../libs/imng-oidc-client/src/lib/support/support.component.ts","../../../../libs/imng-oidc-client/src/lib/components/access-denied.component.ts","../../../../libs/imng-oidc-client/src/lib/components/logout-success.component.ts","../../../../libs/imng-oidc-client/src/lib/img-oidc-client-routing.module.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.effects.ts","../../../../libs/imng-oidc-client/src/lib/services/token-interceptor.service.ts","../../../../libs/imng-oidc-client/src/lib/imng-oidc-client.module.ts","../../../../libs/imng-oidc-client/src/lib/services/permissions.guard.ts","../../../../libs/imng-oidc-client/src/imng-oidc-client.ts"],"sourcesContent":["import { createAction } from '@ngrx/store';\nimport { RequestArugments } from '../models/arguments.model';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\nimport { createPayloadAction } from 'imng-ngrx-utils';\n\nexport const clearCurrentEmployee = createAction(\n '[Employees] Clear Current Employee'\n);\n\n// OIDC COMMANDS\n\nexport const getOidcUser = createAction('[Oidc] get oidc user');\nexport const removeOidcUser = createAction('[Oidc] remove oidc user');\nexport const userExpired = createAction('[Oidc] user expired');\nexport const userFound = createPayloadAction<IOidcUser>('[Oidc] user found');\nexport const onSessionChanged = createAction('[Oidc] session changed');\nexport const onAccessTokenExpired = createAction(\n '[Oidc] on access token expired'\n);\nexport const onAccessTokenExpiring = createAction('[Oidc] user expiring');\nexport const onUserLoading = createAction('[Oidc] user loading');\nexport const userDoneLoading = createAction('[Oidc] user done loading');\nexport const userDoneLoadingError = createPayloadAction<Error>(\n '[Oidc] user done loading error'\n);\nexport const onUserMetadataLoaded = createPayloadAction<unknown>(\n '[Oidc] on User Metadata Loaded'\n);\n\n// OIDC EVENTS\nexport const onSignInPopup = createPayloadAction<IOidcUser>(\n '[Oidc] on SignInPopup'\n);\nexport const onSignInRedirect = createPayloadAction<IOidcUser>(\n '[Oidc] on onSignInRedirect'\n);\nexport const onSignInSilent = createPayloadAction<IOidcUser>(\n '[Oidc] on onSignInSilent'\n);\n\nexport const onUserLoaded = createPayloadAction<IOidcUser>(\n '[Oidc] on user loaded'\n);\nexport const onUserloadError = createPayloadAction<Error>(\n '[Oidc] user load error'\n);\nexport const onUserUnloaded = createAction('[Oidc] on user unloaded');\nexport const onUserSignedOut = createAction('[Oidc] on user signed out');\nexport const onSilentRenewError = createPayloadAction<Error>(\n '[Oidc] on silent renew error'\n);\nexport const signInPopup = createPayloadAction<RequestArugments>(\n '[Oidc] sign in popup'\n);\nexport const signInRedirect = createPayloadAction<RequestArugments | undefined>(\n '[Oidc] sign in redirect'\n);\nexport const signInError = createPayloadAction<Error>(\n '[Oidc] sign in popup error'\n);\nexport const signOutPopup = createPayloadAction<RequestArugments>(\n '[Oidc] sign out popup'\n);\nexport const signOutPopupError = createPayloadAction<string>(\n '[Oidc] sign out popup error'\n);\nexport const signOutRedirect = createPayloadAction<\n RequestArugments | undefined\n>('[Oidc] sign out redirect');\nexport const signOutRedirectError = createPayloadAction<string>(\n '[Oidc] sign out redirect error'\n);\nexport const signInSilent = createPayloadAction<RequestArugments>(\n '[Oidc] sign in silent'\n);\nexport const oidcError = createPayloadAction<Error>('[Oidc] error');\n\n// HTTP\nexport const setHttpError = createPayloadAction<HttpErrorResponse>(\n '[HTTP] Set Http Error'\n);\nexport const clearErrors = createAction('[HTTP] Clear Errors');\n","export function jwtDecoder<TYPE>(rawToken: string): TYPE | null {\n const splits = rawToken?.split('.');\n if (splits?.length > 1) {\n const payload = splits[1];\n return JSON.parse(window.atob(payload)) as TYPE;\n } else {\n return null;\n }\n}\n","import * as oidcActions from './oidc.actions';\nimport { jwtDecoder } from '../util/jwt-decoder';\nimport { on, createReducer, createFeature } from '@ngrx/store';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\n\nexport const OIDC_FEATURE_KEY = 'oidc';\nexport interface OidcState {\n identity: IOidcUser | undefined;\n audiences: string[] | undefined;\n userMetadata: unknown | undefined;\n permissions: string[] | undefined;\n isLoading: boolean;\n isLoggedIn: boolean;\n isExpiring: boolean;\n isExpired: boolean;\n errors: ErrorState;\n}\n\nexport interface ErrorState {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n silentRenewError: unknown | undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n signInError: unknown | undefined;\n httpError: HttpErrorResponse | undefined;\n}\n\nexport const initialState: OidcState = {\n audiences: [],\n permissions: [],\n isLoading: true,\n isLoggedIn: false,\n isExpiring: false,\n isExpired: false,\n identity: undefined,\n userMetadata: undefined,\n errors: {\n silentRenewError: undefined,\n signInError: undefined,\n httpError: undefined,\n },\n};\n\nexport const oidcFeature = createFeature({\n name: OIDC_FEATURE_KEY,\n reducer: createReducer(initialState,\n on(oidcActions.getOidcUser,\n oidcActions.onUserLoading,\n (state): OidcState => ({\n ...state,\n isLoading: true,\n isLoggedIn: false,\n })),\n on(oidcActions.removeOidcUser,\n (state): OidcState => ({\n ...state,\n isLoading: true,\n isLoggedIn: false,\n identity: undefined,\n })),\n on(oidcActions.setHttpError,\n (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n httpError: err.payload,\n },\n })),\n on(oidcActions.onUserMetadataLoaded,\n (state, userMetadata): OidcState => ({\n ...state,\n userMetadata: userMetadata.payload,\n isLoading: false,\n })),\n on(oidcActions.clearErrors,\n (state): OidcState => ({\n ...state, errors: {\n signInError: undefined,\n silentRenewError: undefined,\n httpError: undefined\n }\n })),\n on(oidcActions.userDoneLoading,\n (state): OidcState => ({\n ...state,\n isLoading: false\n })),\n on(oidcActions.onAccessTokenExpiring,\n (state): OidcState => ({\n ...state,\n isExpiring: true,\n })),\n on(oidcActions.onAccessTokenExpired,\n (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n isExpiring: false,\n isExpired: true,\n })),\n on(oidcActions.onUserLoaded,\n (state): OidcState => ({\n ...state,\n isLoading: false,\n isExpiring: false,\n })),\n on(\n oidcActions.onUserUnloaded,\n oidcActions.onUserSignedOut,\n oidcActions.signOutPopupError,\n oidcActions.signOutRedirectError,\n (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n identity: undefined,\n isExpired: true,\n isExpiring: false,\n userMetadata: undefined,\n })\n ),\n on(oidcActions.signOutRedirect,\n oidcActions.signOutPopup,\n (state): OidcState => ({\n ...state,\n identity: undefined,\n userMetadata: null,\n isLoggedIn: false,\n })),\n on(\n oidcActions.userFound,\n oidcActions.onSignInPopup,\n oidcActions.onSignInRedirect,\n oidcActions.onSignInSilent,\n (state, { payload }): OidcState => ({\n ...state,\n identity: payload,\n isLoggedIn: true,\n audiences: jwtDecoder<{ aud?: []; }>(payload.access_token)?.aud,\n permissions: jwtDecoder<{ permissions?: []; }>(payload.access_token)?.permissions,\n })\n ),\n on(oidcActions.userExpired, (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n isExpiring: false,\n })),\n on(oidcActions.onSilentRenewError, (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n silentRenewError: err.payload,\n },\n })),\n on(\n oidcActions.userDoneLoadingError,\n oidcActions.signInError,\n (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n signInError: err.payload,\n },\n })\n ))\n});\n","import { createSelector } from '@ngrx/store';\nimport { ErrorState, oidcFeature } from './oidc.reducer';\nimport { IOidcUser } from '../models/oidc-user';\n// State Selectors\n\nconst selectAccessToken = createSelector(\n oidcFeature.selectIdentity,\n (user?: IOidcUser) => (user || { access_token: undefined }).access_token\n);\n\n// errors\nconst selectOidcErrorState = createSelector(\n oidcFeature.selectErrors,\n (errors) => errors\n);\n\nconst selectHasErrors = createSelector(\n selectOidcErrorState,\n (state: ErrorState) =>\n !!state.httpError || !!state.signInError || !!state.silentRenewError\n);\n\nconst selectSignInError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.signInError\n);\n\nconst selectSilentRenewError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.silentRenewError\n);\n\nconst selectHttpError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.httpError\n);\n\nconst selectExpiresAt = createSelector(oidcFeature.selectIdentity, (state?: IOidcUser) =>\n state?.expires_at ? new Date(state.expires_at * 1000) : null //NOSONAR\n);\n;\n\nexport const oidcQuery = {\n selectExpiresAt,\n selectPermissions: oidcFeature.selectPermissions,\n selectIsLoading: oidcFeature.selectIsLoading,\n selectIdentity: oidcFeature.selectIdentity,\n selectAccessToken,\n selectIsExpiring: oidcFeature.selectIsExpiring,\n selectIsExpired: oidcFeature.selectIsExpired,\n selectIsLoggedIn: oidcFeature.selectIsLoggedIn,\n selectSilentRenewError,\n selectSignInError,\n selectHttpError,\n selectHasErrors,\n selectAudiences: oidcFeature.selectAudiences,\n selectUserMetadata: oidcFeature.selectUserMetadata,\n};\n","export enum OidcEvent {\n AccessTokenExpired = 'addAccessTokenExpired',\n AccessTokenExpiring = 'addAccessTokenExpiring',\n SilentRenewError = 'AddSilentRenewError',\n UserLoaded = 'addUserLoaded',\n UserUnloaded = 'addUserUnloaded',\n UserSignedOut = 'addUserSignedOut',\n UserSessionChanged = 'addUserSessionChanged'\n}\n\nexport enum StorageKeys {\n PopupCallback = 'ngoidc:isPopupCallback',\n OidcSettings = 'ngoidc:settings',\n}\n\nexport const ACTION_NO_ACTION = 'NO_ACTION';\n","import { InjectionToken } from '@angular/core';\nimport { UserManagerSettings, Logger } from 'oidc-client';\n\nexport interface OidcLibraryConfig {\n oidc_config: UserManagerSettings;\n useCallbackFlag: boolean;\n getUserMetadata: boolean;\n log?: {\n logger: Logger;\n level: number;\n };\n}\nexport const OIDC_LIBRARY_CONFIG = new InjectionToken<OidcLibraryConfig>(\n 'OIDC_LIBRARY_CONFIG'\n);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport {\n Log,\n OidcClient,\n SigninRequest,\n SignoutRequest,\n UserManager,\n UserManagerSettings,\n} from 'oidc-client';\nimport { from, Observable } from 'rxjs';\nimport { OidcEvent, StorageKeys } from '../models/constants';\nimport { IOidcUser } from '../models/oidc-user';\nimport { switchMap } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport {\n OidcLibraryConfig,\n OIDC_LIBRARY_CONFIG,\n} from '../models/oidc-library-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcService {\n public readonly OidcUserManager: UserManager;\n private readonly _oidcClient: OidcClient;\n private readonly _userManagerSettings: UserManagerSettings;\n\n constructor(\n @Inject(OIDC_LIBRARY_CONFIG)\n private readonly oidcLibraryConfig: OidcLibraryConfig,\n // eslint-disable-next-line @typescript-eslint/ban-types\n @Inject(PLATFORM_ID) private readonly platformId: Object,\n private readonly httpClient: HttpClient\n ) {\n const logSettings = this.oidcLibraryConfig.log;\n let clientSettings = this.oidcLibraryConfig.oidc_config;\n\n if (logSettings) {\n Log.level = logSettings.level;\n Log.logger = logSettings.logger;\n }\n\n if (clientSettings?.userStore != null) {\n clientSettings = {\n ...clientSettings,\n userStore: clientSettings.userStore,\n };\n }\n this._userManagerSettings = { ...clientSettings };\n this.OidcUserManager = new UserManager(clientSettings);\n this._oidcClient = new OidcClient(clientSettings);\n }\n\n public getUserMetadata(): Observable<unknown> {\n return this.httpClient\n .get<{ userinfo_endpoint: string; }>(\n this.oidcLibraryConfig.oidc_config?.metadataUrl || ''\n )\n .pipe(\n switchMap((openidConfig) =>\n this.httpClient.get<unknown>(openidConfig.userinfo_endpoint)\n )\n );\n }\n\n getUserManager(): UserManager {\n return this.OidcUserManager;\n }\n\n getOidcClient(): OidcClient {\n return this._oidcClient;\n }\n\n getOidcUser(): Observable<IOidcUser | null> {\n return from(this.OidcUserManager.getUser());\n }\n\n removeOidcUser(): Observable<void> {\n return from(this.OidcUserManager.removeUser());\n }\n\n registerOidcEvent(\n event: OidcEvent,\n callback: (...ev: unknown[]) => void\n ): void {\n switch (event) {\n case OidcEvent.AccessTokenExpired:\n this.OidcUserManager.events.addAccessTokenExpired(callback);\n break;\n case OidcEvent.AccessTokenExpiring:\n this.OidcUserManager.events.addAccessTokenExpiring(callback);\n break;\n case OidcEvent.SilentRenewError:\n this.OidcUserManager.events.addSilentRenewError(callback);\n break;\n case OidcEvent.UserLoaded:\n this.OidcUserManager.events.addUserLoaded(callback);\n break;\n case OidcEvent.UserSessionChanged:\n this.OidcUserManager.events.addUserSessionChanged(callback);\n break;\n case OidcEvent.UserSignedOut:\n this.OidcUserManager.events.addUserSignedOut(callback);\n break;\n case OidcEvent.UserUnloaded:\n this.OidcUserManager.events.addUserUnloaded(callback);\n break;\n default:\n break;\n }\n }\n\n removeOidcEvent(\n event: OidcEvent,\n callback: (...ev: unknown[]) => void\n ): void {\n switch (event) {\n case OidcEvent.AccessTokenExpired:\n this.OidcUserManager.events.removeAccessTokenExpired(callback);\n break;\n case OidcEvent.AccessTokenExpiring:\n this.OidcUserManager.events.removeAccessTokenExpiring(callback);\n break;\n case OidcEvent.SilentRenewError:\n this.OidcUserManager.events.removeSilentRenewError(callback);\n break;\n case OidcEvent.UserLoaded:\n this.OidcUserManager.events.removeUserLoaded(callback);\n break;\n case OidcEvent.UserSessionChanged:\n this.OidcUserManager.events.removeUserSessionChanged(callback);\n break;\n case OidcEvent.UserSignedOut:\n this.OidcUserManager.events.removeUserSignedOut(callback);\n break;\n case OidcEvent.UserUnloaded:\n this.OidcUserManager.events.removeUserUnloaded(callback);\n break;\n default:\n break;\n }\n }\n\n signInPopup(args?: any): Observable<IOidcUser> { //NOSONAR\n this.setCallbackInformation(true);\n\n return from(this.OidcUserManager.signinPopup({ ...args }));\n }\n\n signInRedirect(args?: any): Observable<void> { //NOSONAR\n this.setCallbackInformation(false);\n\n return from(this.OidcUserManager.signinRedirect({ ...args }));\n }\n\n signOutPopup(args?: any): Observable<any> { //NOSONAR\n this.setCallbackInformation(true);\n\n return from(this.OidcUserManager.signoutPopup({ ...args }));\n }\n\n signOutRedirect(args?: any): Observable<any> { //NOSONAR\n this.setCallbackInformation(false);\n return from(this.OidcUserManager.signoutRedirect({ ...args }));\n }\n\n signInSilent(args?: any): Observable<IOidcUser> { //NOSONAR\n return from(this.OidcUserManager.signinSilent({ ...args }));\n }\n\n signinPopupCallback(): Observable<any> { //NOSONAR\n return from(this.OidcUserManager.signinPopupCallback());\n }\n\n signinRedirectCallback(): Observable<IOidcUser> {\n return from(this.OidcUserManager.signinRedirectCallback());\n }\n\n signoutPopupCallback(): Observable<void> {\n return from(this.OidcUserManager.signoutPopupCallback());\n }\n\n signoutRedirectCallback(): Observable<any> { //NOSONAR\n return from(this.OidcUserManager.signoutRedirectCallback());\n }\n\n getSigninUrl(args?: any): Observable<SigninRequest> { //NOSONAR\n return from(this.OidcUserManager.createSigninRequest(args));\n }\n\n getSignoutUrl(args?: any): Observable<SignoutRequest> { //NOSONAR\n return from(this.OidcUserManager.createSignoutRequest(args));\n }\n\n private setCallbackInformation(isPopupCallback: boolean): void {\n // is browser and useCallbackFlag set to true or defaults to true\n if (\n isPlatformBrowser(this.platformId) &&\n this.oidcLibraryConfig.useCallbackFlag\n ) {\n localStorage.setItem(StorageKeys.PopupCallback, `${isPopupCallback}`);\n localStorage.setItem(\n StorageKeys.OidcSettings,\n JSON.stringify(this._userManagerSettings)\n );\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n OidcClient,\n SigninRequest,\n SignoutRequest,\n UserManager,\n} from 'oidc-client';\nimport { Observable } from 'rxjs';\nimport { filter, take, map } from 'rxjs/operators';\nimport { oidcQuery } from './oidc.selectors';\nimport { OidcService } from '../services/oidc.service';\nimport { RequestArugments } from '../models/arguments.model';\nimport { OidcEvent } from '../models/constants';\nimport * as oidcActions from './oidc.actions';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcFacade {\n constructor(\n private readonly store: Store,\n private readonly oidcService: OidcService\n ) {\n this.registerDefaultEvents();\n }\n\n loading$: Observable<boolean> = this.store.select(oidcQuery.selectIsLoading);\n expiring$: Observable<boolean> = this.store.select(\n oidcQuery.selectIsExpiring\n );\n expired$: Observable<boolean> = this.store.select(\n oidcQuery.selectIsExpired\n );\n loggedIn$: Observable<boolean> = this.store.select(oidcQuery.selectIsLoggedIn);\n identity$: Observable<IOidcUser | undefined> = this.store.select(\n oidcQuery.selectIdentity\n );\n accessToken$: Observable<string | undefined> = this.store.select(\n oidcQuery.selectAccessToken\n );\n httpError$: Observable<HttpErrorResponse | undefined> = this.store.select(\n oidcQuery.selectHttpError\n );\n signInError$: Observable<unknown> = this.store.select(\n oidcQuery.selectSignInError\n );\n silentRenewError$: Observable<unknown> = this.store.select(\n oidcQuery.selectSilentRenewError\n );\n hasErrors$: Observable<boolean> = this.store.select(oidcQuery.selectHasErrors);\n permissions$: Observable<string[] | undefined> = this.store.select(\n oidcQuery.selectPermissions\n );\n audiences$: Observable<string[] | null | undefined> = this.store.select(\n oidcQuery.selectAudiences\n );\n expiresAt$: Observable<Date | null> = this.store.select(\n oidcQuery.selectExpiresAt\n );\n userMetadata$: Observable<unknown> = this.store.select(\n oidcQuery.selectUserMetadata\n );\n\n // default bindings to events\n public addUserUnLoaded(): void {\n if (this.store) {\n this.store.dispatch(oidcActions.onUserUnloaded());\n }\n }\n\n public accessTokenExpired(): void {\n if (this.store) {\n this.store.dispatch(oidcActions.onAccessTokenExpired());\n } else {\n sessionStorage.clear();\n localStorage.clear();\n window.location.reload();\n }\n }\n\n public accessTokenExpiring(): void {\n if (this.store) {\n this.store.dispatch(oidcActions.onAccessTokenExpiring());\n } else {\n this.accessTokenExpired();\n }\n }\n\n public addSilentRenewError(...ev: unknown[]): void {\n this.store.dispatch(oidcActions.onSilentRenewError(ev[0] as Error));\n }\n\n public addUserLoaded(...ev: unknown[]): void {\n this.store.dispatch(oidcActions.onUserLoaded(ev[0] as IOidcUser));\n }\n\n public addUserSignedOut(): void {\n this.oidcService.removeOidcUser();\n this.store.dispatch(oidcActions.onUserSignedOut());\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public addUserSessionChanged(): void {\n this.store.dispatch(oidcActions.onSessionChanged());\n }\n\n public clearErrors(): void {\n this.store.dispatch(oidcActions.clearErrors());\n };\n\n // OIDC Methods\n\n public getOidcUser(): void {\n this.store.dispatch(oidcActions.getOidcUser());\n }\n\n public removeOidcUser(): void {\n this.store.dispatch(oidcActions.removeOidcUser());\n }\n\n public getUserManager(): UserManager {\n return this.oidcService.getUserManager();\n }\n\n public getOidcClient(): OidcClient {\n return this.oidcService.getOidcClient();\n }\n\n /**\n * Convenient function to wait for loaded.\n */\n public waitForAuthenticationLoaded(): Observable<boolean> {\n return this.loading$.pipe(\n filter((loading) => loading === false),\n take(1),\n map(() => true)\n );\n }\n\n public signinPopup(args: RequestArugments): void {\n this.store.dispatch(oidcActions.signInPopup(args));\n }\n\n public signinRedirect(args?: RequestArugments): void {\n this.store.dispatch(oidcActions.signInRedirect(args));\n }\n\n public signinSilent(args: RequestArugments): void {\n this.store.dispatch(oidcActions.signInSilent(args));\n }\n\n public signoutPopup(args: RequestArugments): void {\n this.store.dispatch(oidcActions.signOutPopup(args));\n }\n\n public signoutRedirect(args?: RequestArugments): void {\n this.store.dispatch(oidcActions.signOutRedirect(args));\n }\n\n public getSigninUrl(args?: RequestArugments): Observable<SigninRequest> {\n return this.oidcService.getSigninUrl(args);\n };\n\n getSignoutUrl(args?: RequestArugments): Observable<SignoutRequest> {\n return this.oidcService.getSignoutUrl(args);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerEvent(event: OidcEvent, callback: (...ev: unknown[]) => void): void {\n this.oidcService.registerOidcEvent(event, callback);\n }\n\n private registerDefaultEvents(): void {\n // add simple loggers\n this.registerEvent(OidcEvent.AccessTokenExpired, this.accessTokenExpired);\n this.registerEvent(OidcEvent.AccessTokenExpiring, this.accessTokenExpiring);\n this.registerEvent(OidcEvent.SilentRenewError, this.addSilentRenewError);\n\n this.registerEvent(OidcEvent.UserLoaded, this.addUserLoaded);\n this.registerEvent(OidcEvent.UserUnloaded, this.addUserUnLoaded);\n this.registerEvent(OidcEvent.UserSignedOut, this.addUserSignedOut);\n this.registerEvent(\n OidcEvent.UserSessionChanged,\n this.addUserSessionChanged\n );\n }\n}\n","import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { Injectable, Inject } from '@angular/core';\nimport { tap, switchMap } from 'rxjs/operators';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard implements CanActivate, CanActivateChild {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(@Inject(DOCUMENT) private readonly document: any, private readonly oidcFacade: OidcFacade) { } //NOSONAR\n\n public readonly isLoggedInPipe$ = this.oidcFacade.waitForAuthenticationLoaded().pipe(\n switchMap(() => this.oidcFacade.loggedIn$),\n tap(t => {\n if (!t) {\n this.oidcFacade.signinRedirect({\n data: { redirect_url: this.document.location.href }\n });\n }\n })\n );\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> { //NOSONAR\n return this.isLoggedInPipe$;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot) //NOSONAR\n : Observable<boolean> {\n return this.isLoggedInPipe$;\n }\n}\n","import { isNullOrUndefined } from 'imng-nrsrx-client-utils';\nimport { OidcClientConfig } from '../models/oidc-client-config';\nimport { OidcLibraryConfig } from '../models/oidc-library-config';\n\nexport function oidcConfigurator(\n oidcClientConfig: OidcClientConfig,\n document: Document\n): OidcLibraryConfig {\n return {\n oidc_config: {\n authority: oidcClientConfig.authority,\n client_id: oidcClientConfig.client_id,\n extraQueryParams: { audience: oidcClientConfig.audience },\n redirect_uri: `${document.location.origin}/callback.html`,\n response_type: oidcClientConfig.response_type || 'id_token token',\n scope: oidcClientConfig.scope || 'openid profile offline_access email',\n post_logout_redirect_uri: `${document.location.origin}/signout-callback.html`,\n silent_redirect_uri: `${document.location.origin}/renew-callback.html`,\n automaticSilentRenew:\n isNullOrUndefined(oidcClientConfig.automaticSilentRenew)\n ? true\n : oidcClientConfig.automaticSilentRenew,\n metadataUrl: `${oidcClientConfig.authority}/.well-known/openid-configuration`,\n },\n getUserMetadata: oidcClientConfig.getUserMetadata,\n useCallbackFlag:\n isNullOrUndefined(oidcClientConfig.useCallbackFlag)\n ? true\n : oidcClientConfig.useCallbackFlag as boolean,\n };\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface OidcClientConfig {\n audience: string;\n client_id: string;\n authority: string;\n scope?:\n | 'openid'\n | 'profile'\n | 'offline_access'\n | 'name'\n | 'given_name'\n | 'family_name'\n | 'nickname'\n | 'email'\n | 'email_verified'\n | 'picture'\n | 'created_at'\n | 'identities'\n | 'phone'\n | 'address'\n | string; //NOSONAR\n response_type?:\n | 'code'\n | 'token'\n | 'id_token'\n | 'code token'\n | 'code id_token'\n | 'token id_token'\n | 'code token id_token'\n | string; //NOSONAR\n automaticSilentRenew?: boolean;\n getUserMetadata: boolean;\n useCallbackFlag?: boolean;\n}\nexport const OIDC_CLIENT_CONFIG = new InjectionToken<OidcClientConfig>(\n 'oidc-client-config'\n);\n","import { createSelector } from '@ngrx/store';\nimport { OidcUserProfile } from '../models/oidc-user-profile';\nimport { oidcQuery } from './oidc.selectors';\nimport { oidcFeature } from './oidc.reducer';\nimport { IOidcUser } from '../models/oidc-user';\n\nconst selectProfile = createSelector(\n oidcQuery.selectIdentity,\n (identity?: IOidcUser) => identity?.profile as OidcUserProfile\n);\n\nconst getPermissions = oidcFeature.selectPermissions;\n\nconst selectEmail = createSelector(selectProfile, (profile) => profile?.email);\n\nconst selectProfilePicture = createSelector(\n selectProfile,\n (profile) => profile?.picture\n);\n\nexport const OidcUserSelectors = {\n getProfile: selectProfile,\n getEmail: selectEmail,\n getProfilePicture: selectProfilePicture,\n getPermissions,\n};\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { OidcUserSelectors } from './oidc-user.selectors';\nimport { OidcUserProfile } from '../models/oidc-user-profile';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcUserFacade {\n constructor(private readonly store: Store) { }\n profile$: Observable<OidcUserProfile> = this.store.select(\n OidcUserSelectors.getProfile\n );\n email$: Observable<string | undefined> = this.store.select(\n OidcUserSelectors.getEmail\n );\n profilePicture$: Observable<string | undefined> = this.store.select(\n OidcUserSelectors.getProfilePicture\n );\n permissions$: Observable<string[] | undefined> = this.store.select(\n OidcUserSelectors.getPermissions\n );\n\n public hasPermissions(\n requiredPermissions: Array<string>\n ): Observable<boolean> {\n return this.permissions$.pipe(\n map(\n (t) =>\n -1 <\n requiredPermissions.findIndex(\n (f) => -1 < (t?.findIndex((i) => i === f) || -1)\n )\n )\n );\n }\n}\n","import { Component } from '@angular/core';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { OidcUserFacade } from '../+state/oidc-user.facade';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Component({\n selector: 'imng-support',\n template: `<div class=\"container pt-5 mt-5\">\n <div class=\"row h3 text-center\">\n <div class=\"col-md-12 text-center\">OIDC Support</div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Audiences</div>\n <div class=\"col-md-8\">\n <span *ngFor=\"let item of facade.audiences$ | async; last as isLast\">\n {{ item }} <br *ngIf=\"!isLast\" />\n </span>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Permissions</div>\n <div class=\"col-md-8\">\n <span *ngFor=\"let item of facade.permissions$ | async; last as isLast\">\n {{ item }} <br *ngIf=\"!isLast\" />\n </span>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Expires</div>\n <div class=\"col-md-8\">{{ facade.expiresAt$ | async }}</div>\n </div>\n <div class=\"row\" *ngFor=\"let item of profileValue$ | async\">\n <div class=\"col-md-3\">{{ item.key }}</div>\n <div class=\"col-md-8\">{{ item.value }}</div>\n </div>\n </div> `,\n})\nexport class SupportComponent {\n public profileValue$: Observable<{ key: string; value: string; }[]>;\n constructor(\n public readonly facade: OidcFacade,\n public readonly oidcUserFacade: OidcUserFacade\n ) {\n this.profileValue$ = this.oidcUserFacade.profile$.pipe(\n map((x) =>\n Object.keys(x).map((propertyKey) => ({\n key: propertyKey,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: (x as any)[propertyKey], //NOSONAR\n }))\n )\n );\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'imng-access-denied',\n template: '<div class=\"p-5 m-5 text-danger\">Access denied.</div>'\n})\nexport class AccessDeniedComponent { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'imng-logout-success',\n template:\n // eslint-disable-next-line max-len\n '<div class=\"p-5 m-5 text-center\">You have successfully logged out.<br/>Please close this browser window to ensure you are completely logged out of the session.</div>'\n})\nexport class LogoutSuccessComponent { }\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule, Route } from '@angular/router';\nimport { SupportComponent } from './support/support.component';\nimport { AccessDeniedComponent } from './components/access-denied.component';\nimport { AuthGuard } from './services/auth-guard';\nimport { LogoutSuccessComponent } from './components/logout-success.component';\n\nconst routes: Routes = [\n { path: 'support', component: SupportComponent },\n { path: 'access-denied', component: AccessDeniedComponent },\n { path: 'logout', component: LogoutSuccessComponent },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ImngOidcClientRoutingModule {}\n\nexport const oidcSupportRoute: Route = {\n path: 'oidc/support',\n component: SupportComponent,\n canActivate: [AuthGuard],\n};\n\nexport const oidcAccessDeniedRoute: Route = {\n path: 'oidc/access-denied',\n component: AccessDeniedComponent,\n};\n\nexport const oidcLogoutRoute: Route = {\n path: 'oidc/logout',\n component: LogoutSuccessComponent,\n};\n\nexport const oidcRoutes: Route[] = [\n oidcSupportRoute,\n oidcAccessDeniedRoute,\n oidcLogoutRoute,\n];\n","import { Inject, Injectable } from '@angular/core';\nimport { Actions, ofType, OnInitEffects, createEffect } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\nimport { of } from 'rxjs';\nimport {\n catchError,\n concatMap,\n map,\n filter,\n tap,\n switchMap,\n} from 'rxjs/operators';\nimport { OidcService } from '../services/oidc.service';\nimport * as oidcActions from './oidc.actions';\nimport { IOidcUser } from '../models/oidc-user';\nimport { Router } from '@angular/router';\nimport { oidcLogoutRoute } from '../img-oidc-client-routing.module';\nimport {\n OidcLibraryConfig,\n OIDC_LIBRARY_CONFIG,\n} from '../models/oidc-library-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcEffects implements OnInitEffects {\n constructor(\n private readonly actions$: Actions,\n private readonly oidcService: OidcService,\n @Inject(OIDC_LIBRARY_CONFIG)\n private readonly oidcLibraryOptions: OidcLibraryConfig,\n private readonly router: Router\n ) { }\n\n getOidcUser$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.getOidcUser),\n switchMap(() =>\n this.oidcService.getOidcUser().pipe(\n map((userData: IOidcUser | null) =>\n this.makeOidcUserSerializable(userData)\n ),\n filter((userData: IOidcUser) => !!userData),\n map((userData: IOidcUser) => oidcActions.userFound(userData)),\n catchError((err) => of(oidcActions.userDoneLoadingError(err)))\n )));\n });\n\n silentRenew$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(\n (userFound: { payload: IOidcUser; }) =>\n // user expired, initiate silent sign-in if configured to automatic\n (userFound.payload != null &&\n userFound.payload.expired &&\n this.oidcLibraryOptions.oidc_config?.automaticSilentRenew) ||\n false\n ),\n map((userFound) => oidcActions.signInSilent(userFound.payload))\n );\n });\n\n removeOidcUser$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.removeOidcUser),\n concatMap(() =>\n this.oidcService.removeOidcUser().pipe(\n map(() => oidcActions.userDoneLoading()),\n catchError((err) => of(oidcActions.oidcError(err)))\n )\n )\n );\n });\n\n userDoneLoadingNoMetadata$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(() => !this.oidcLibraryOptions.getUserMetadata),\n map(() => oidcActions.userDoneLoading())\n );\n });\n\n userDoneLoadingWithMetadata$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(() => this.oidcLibraryOptions.getUserMetadata || false),\n switchMap(() => this.oidcService.getUserMetadata()),\n map((metadata) => oidcActions.onUserMetadataLoaded(metadata))\n );\n });\n\n onAccessTokenExpired$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.onAccessTokenExpired),\n map(() => oidcActions.removeOidcUser())\n );\n });\n\n signInPopup$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInPopup),\n concatMap((args) =>\n this.oidcService.signInPopup(args.payload).pipe(\n map((user) =>\n oidcActions.onSignInPopup(this.makeOidcUserSerializable(user))\n ),\n catchError((err) => of(oidcActions.signInError(err)))\n )\n )\n );\n });\n\n signInRedirect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInRedirect),\n concatMap((args) =>\n this.oidcService.signInRedirect(args.payload).pipe(\n concatMap(() => this.oidcService.signinRedirectCallback()),\n map((user) =>\n oidcActions.onSignInRedirect(this.makeOidcUserSerializable(user))\n ),\n catchError((err) => of(oidcActions.signInError(err)))\n )\n )\n );\n });\n\n signInSilent$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInSilent),\n concatMap((args) =>\n this.oidcService.signInSilent(args.payload).pipe(\n map((user) =>\n oidcActions.onSignInSilent(this.makeOidcUserSerializable(user))\n ),\n catchError((err) => of(oidcActions.onSilentRenewError(err)))\n )\n )\n );\n });\n\n signOutPopup$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signOutPopup),\n concatMap((args) =>\n this.oidcService.signOutPopup(args.payload).pipe(\n map(() => oidcActions.onUserSignedOut()),\n catchError((err) => of(oidcActions.signOutPopupError(err.message)))\n )\n )\n );\n });\n\n signOutRedirect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signOutRedirect),\n concatMap((args) =>\n this.oidcService.signOutRedirect(args.payload).pipe(\n map(() => oidcActions.onUserSignedOut()),\n catchError((err) => of(oidcActions.signOutRedirectError(err.message)))\n )\n )\n );\n });\n\n onUserSignedOut$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(\n oidcActions.onUserSignedOut,\n oidcActions.signOutPopupError,\n oidcActions.signOutRedirectError\n ),\n tap(() => {\n localStorage.clear();\n sessionStorage.clear();\n this.router.navigateByUrl(oidcLogoutRoute.path || '');\n })\n );\n },\n { dispatch: false }\n );\n\n\n ngrxOnInitEffects(): Action {\n return oidcActions.getOidcUser();\n }\n\n makeOidcUserSerializable(user: IOidcUser | null): IOidcUser {\n if (user?.toStorageString) {\n user = {\n ...user,\n toStorageString: undefined,\n };\n }\n return user as IOidcUser;\n }\n}\n","import { Observable, throwError } from 'rxjs';\nimport { first, catchError, mergeMap } from 'rxjs/operators';\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { oidcQuery } from '../+state/oidc.selectors';\nimport * as oidcActions from '../+state/oidc.actions';\n\n@Injectable()\nexport class TokenInterceptorService implements HttpInterceptor {\n constructor(private readonly store: Store) { }\n\n intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n return this.store.select(oidcQuery.selectAccessToken).pipe(\n first(),\n mergeMap(accessToken => {\n if (accessToken) {\n req = req.clone({\n setHeaders: { Authorization: `Bearer ${accessToken}` },\n });\n }\n return next.handle(req).pipe(\n catchError((err: Error) => {\n if (err instanceof HttpErrorResponse) {\n this.store.dispatch(oidcActions.setHttpError(err));\n }\n return throwError(() => err);\n }));\n }\n ));\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport { AuthGuard } from './services/auth-guard';\nimport { oidcConfigurator } from './util/oidc-client-configurator';\nimport {\n OidcClientConfig,\n OIDC_CLIENT_CONFIG,\n} from './models/oidc-client-config';\nimport { OidcEffects } from './+state/oidc.effects';\nimport { OidcService } from './services/oidc.service';\nimport { OidcFacade } from './+state/oidc.facade';\nimport { StoreModule, Store } from '@ngrx/store';\nimport { oidcFeature } from './+state/oidc.reducer';\nimport { EffectsModule } from '@ngrx/effects';\nimport { OidcUserFacade } from './+state/oidc-user.facade';\nimport { TokenInterceptorService } from './services/token-interceptor.service';\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\nimport { AccessDeniedComponent } from './components/access-denied.component';\nimport { SupportComponent } from './support/support.component';\nimport { ImngOidcClientRoutingModule } from './img-oidc-client-routing.module';\nimport { LogoutSuccessComponent } from './components/logout-success.component';\nimport { OIDC_LIBRARY_CONFIG } from './models/oidc-library-config';\n\n@NgModule({\n declarations: [\n AccessDeniedComponent,\n SupportComponent,\n LogoutSuccessComponent,\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n StoreModule.forFeature(oidcFeature),\n EffectsModule.forFeature([OidcEffects]),\n ImngOidcClientRoutingModule,\n ],\n exports: [AccessDeniedComponent, SupportComponent, LogoutSuccessComponent],\n providers: [\n {\n provide: OIDC_LIBRARY_CONFIG,\n useFactory: oidcConfigurator,\n deps: [OIDC_CLIENT_CONFIG, DOCUMENT],\n },\n OidcService,\n OidcFacade,\n OidcUserFacade,\n AuthGuard,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: TokenInterceptorService,\n multi: true,\n deps: [Store],\n },\n ],\n})\nexport class ImngOidcClientModule {\n static forRoot(\n oidc0ptions: OidcClientConfig\n ): ModuleWithProviders<ImngOidcClientModule> {\n return {\n ngModule: ImngOidcClientModule,\n providers: [{ provide: OIDC_CLIENT_CONFIG, useValue: oidc0ptions }],\n };\n }\n}\n","import {\n CanActivate,\n ActivatedRouteSnapshot,\n RouterStateSnapshot,\n Router,\n} from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { switchMap, tap } from 'rxjs/operators';\nimport { OidcUserFacade } from '../+state/oidc-user.facade';\n\nexport abstract class PermissionsGuard implements CanActivate {\n constructor(\n private readonly oidcFacade: OidcFacade,\n private readonly oidcUserFacade: OidcUserFacade,\n private readonly router: Router\n ) { }\n\n protected abstract permissions: string[];\n\n public canActivate(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n route: ActivatedRouteSnapshot, //NOSONAR\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n state: RouterStateSnapshot //NOSONAR\n ): Observable<boolean> | boolean {\n return this.oidcFacade.waitForAuthenticationLoaded().pipe(\n switchMap(() => this.oidcUserFacade.hasPermissions(this.permissions)),\n tap((t) => {\n if (!t) {\n this.router.navigate(['oidc/access-denied'], {\n relativeTo: this.router.routerState.root,\n });\n }\n })\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["oidcActions.getOidcUser","oidcActions.onUserLoading","oidcActions.removeOidcUser","oidcActions.setHttpError","oidcActions.onUserMetadataLoaded","oidcActions.clearErrors","oidcActions.userDoneLoading","oidcActions.onAccessTokenExpiring","oidcActions.onAccessTokenExpired","oidcActions.onUserLoaded","oidcActions.onUserUnloaded","oidcActions.onUserSignedOut","oidcActions.signOutPopupError","oidcActions.signOutRedirectError","oidcActions.signOutRedirect","oidcActions.signOutPopup","oidcActions.userFound","oidcActions.onSignInPopup","oidcActions.onSignInRedirect","oidcActions.onSignInSilent","oidcActions.userExpired","oidcActions.onSilentRenewError","oidcActions.userDoneLoadingError","oidcActions.signInError","oidcActions.onSessionChanged","oidcActions.signInPopup","oidcActions.signInRedirect","oidcActions.signInSilent","i1","i2.OidcService","i1.OidcFacade","i2.OidcUserFacade","oidcActions.oidcError","i3"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"imng-oidc-client.mjs","sources":["../../../../libs/imng-oidc-client/src/lib/+state/oidc.actions.ts","../../../../libs/imng-oidc-client/src/lib/util/jwt-decoder.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.reducer.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.selectors.ts","../../../../libs/imng-oidc-client/src/lib/models/constants.ts","../../../../libs/imng-oidc-client/src/lib/models/oidc-library-config.ts","../../../../libs/imng-oidc-client/src/lib/services/oidc.service.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.facade.ts","../../../../libs/imng-oidc-client/src/lib/services/auth-guard.ts","../../../../libs/imng-oidc-client/src/lib/util/oidc-client-configurator.ts","../../../../libs/imng-oidc-client/src/lib/models/oidc-client-config.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc-user.selectors.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc-user.facade.ts","../../../../libs/imng-oidc-client/src/lib/support/support.component.ts","../../../../libs/imng-oidc-client/src/lib/components/access-denied.component.ts","../../../../libs/imng-oidc-client/src/lib/components/logout-success.component.ts","../../../../libs/imng-oidc-client/src/lib/img-oidc-client-routing.module.ts","../../../../libs/imng-oidc-client/src/lib/+state/oidc.effects.ts","../../../../libs/imng-oidc-client/src/lib/services/token-interceptor.service.ts","../../../../libs/imng-oidc-client/src/lib/imng-oidc-client.module.ts","../../../../libs/imng-oidc-client/src/lib/services/permissions.guard.ts","../../../../libs/imng-oidc-client/src/imng-oidc-client.ts"],"sourcesContent":["import { createAction } from '@ngrx/store';\nimport { RequestArugments } from '../models/arguments.model';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\nimport { createPayloadAction } from 'imng-ngrx-utils';\n\nexport const clearCurrentEmployee = createAction(\n '[Employees] Clear Current Employee'\n);\n\n// OIDC COMMANDS\n\nexport const getOidcUser = createAction('[Oidc] get oidc user');\nexport const removeOidcUser = createAction('[Oidc] remove oidc user');\nexport const userExpired = createAction('[Oidc] user expired');\nexport const userFound = createPayloadAction<IOidcUser>('[Oidc] user found');\nexport const onSessionChanged = createAction('[Oidc] session changed');\nexport const onAccessTokenExpired = createAction(\n '[Oidc] on access token expired'\n);\nexport const onAccessTokenExpiring = createAction('[Oidc] user expiring');\nexport const onUserLoading = createAction('[Oidc] user loading');\nexport const userDoneLoading = createAction('[Oidc] user done loading');\nexport const userDoneLoadingError = createPayloadAction<Error>(\n '[Oidc] user done loading error'\n);\nexport const onUserMetadataLoaded = createPayloadAction<unknown>(\n '[Oidc] on User Metadata Loaded'\n);\n\n// OIDC EVENTS\nexport const onSignInPopup = createPayloadAction<IOidcUser>(\n '[Oidc] on SignInPopup'\n);\nexport const onSignInRedirect = createPayloadAction<IOidcUser>(\n '[Oidc] on onSignInRedirect'\n);\nexport const onSignInSilent = createPayloadAction<IOidcUser>(\n '[Oidc] on onSignInSilent'\n);\n\nexport const onUserLoaded = createPayloadAction<IOidcUser>(\n '[Oidc] on user loaded'\n);\nexport const onUserloadError = createPayloadAction<Error>(\n '[Oidc] user load error'\n);\nexport const onUserUnloaded = createAction('[Oidc] on user unloaded');\nexport const onUserSignedOut = createAction('[Oidc] on user signed out');\nexport const onSilentRenewError = createPayloadAction<Error>(\n '[Oidc] on silent renew error'\n);\nexport const signInPopup = createPayloadAction<RequestArugments>(\n '[Oidc] sign in popup'\n);\nexport const signInRedirect = createPayloadAction<RequestArugments | undefined>(\n '[Oidc] sign in redirect'\n);\nexport const signInError = createPayloadAction<Error>(\n '[Oidc] sign in popup error'\n);\nexport const signOutPopup = createPayloadAction<RequestArugments>(\n '[Oidc] sign out popup'\n);\nexport const signOutPopupError = createPayloadAction<string>(\n '[Oidc] sign out popup error'\n);\nexport const signOutRedirect = createPayloadAction<\n RequestArugments | undefined\n>('[Oidc] sign out redirect');\nexport const signOutRedirectError = createPayloadAction<string>(\n '[Oidc] sign out redirect error'\n);\nexport const signInSilent = createPayloadAction<RequestArugments>(\n '[Oidc] sign in silent'\n);\nexport const oidcError = createPayloadAction<Error>('[Oidc] error');\n\n// HTTP\nexport const setHttpError = createPayloadAction<HttpErrorResponse>(\n '[HTTP] Set Http Error'\n);\nexport const clearErrors = createAction('[HTTP] Clear Errors');\n","export function jwtDecoder<TYPE>(rawToken: string): TYPE | null {\n const splits = rawToken?.split('.');\n if (splits?.length > 1) {\n const payload = splits[1];\n return JSON.parse(window.atob(payload)) as TYPE;\n } else {\n return null;\n }\n}\n","import * as oidcActions from './oidc.actions';\nimport { jwtDecoder } from '../util/jwt-decoder';\nimport { on, createReducer, createFeature } from '@ngrx/store';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\n\nexport const OIDC_FEATURE_KEY = 'oidc';\nexport interface OidcState {\n identity: IOidcUser | undefined;\n audiences: string[] | undefined;\n userMetadata: unknown | undefined;\n permissions: string[] | undefined;\n isLoading: boolean;\n isLoggedIn: boolean;\n isExpiring: boolean;\n isExpired: boolean;\n errors: ErrorState;\n}\n\nexport interface ErrorState {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n silentRenewError: unknown | undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n signInError: unknown | undefined;\n httpError: HttpErrorResponse | undefined;\n}\n\nexport const initialState: OidcState = {\n audiences: [],\n permissions: [],\n isLoading: true,\n isLoggedIn: false,\n isExpiring: false,\n isExpired: false,\n identity: undefined,\n userMetadata: undefined,\n errors: {\n silentRenewError: undefined,\n signInError: undefined,\n httpError: undefined,\n },\n};\n\nexport const oidcFeature = createFeature({\n name: OIDC_FEATURE_KEY,\n reducer: createReducer(initialState,\n on(oidcActions.getOidcUser,\n oidcActions.onUserLoading,\n (state): OidcState => ({\n ...state,\n isLoading: true,\n isLoggedIn: false,\n })),\n on(oidcActions.removeOidcUser,\n (state): OidcState => ({\n ...state,\n isLoading: true,\n isLoggedIn: false,\n identity: undefined,\n })),\n on(oidcActions.setHttpError,\n (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n httpError: err.payload,\n },\n })),\n on(oidcActions.onUserMetadataLoaded,\n (state, userMetadata): OidcState => ({\n ...state,\n userMetadata: userMetadata.payload,\n isLoading: false,\n })),\n on(oidcActions.clearErrors,\n (state): OidcState => ({\n ...state, errors: {\n signInError: undefined,\n silentRenewError: undefined,\n httpError: undefined\n }\n })),\n on(oidcActions.userDoneLoading,\n (state): OidcState => ({\n ...state,\n isLoading: false\n })),\n on(oidcActions.onAccessTokenExpiring,\n (state): OidcState => ({\n ...state,\n isExpiring: true,\n })),\n on(oidcActions.onAccessTokenExpired,\n (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n isExpiring: false,\n isExpired: true,\n })),\n on(oidcActions.onUserLoaded,\n (state): OidcState => ({\n ...state,\n isLoading: false,\n isExpiring: false,\n })),\n on(\n oidcActions.onUserUnloaded,\n oidcActions.onUserSignedOut,\n oidcActions.signOutPopupError,\n oidcActions.signOutRedirectError,\n (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n identity: undefined,\n isExpired: true,\n isExpiring: false,\n userMetadata: undefined,\n })\n ),\n on(oidcActions.signOutRedirect,\n oidcActions.signOutPopup,\n (state): OidcState => ({\n ...state,\n identity: undefined,\n userMetadata: null,\n isLoggedIn: false,\n })),\n on(\n oidcActions.userFound,\n oidcActions.onSignInPopup,\n oidcActions.onSignInRedirect,\n oidcActions.onSignInSilent,\n (state, { payload }): OidcState => ({\n ...state,\n identity: payload,\n isLoggedIn: true,\n audiences: jwtDecoder<{ aud?: []; }>(payload.access_token)?.aud,\n permissions: jwtDecoder<{ permissions?: []; }>(payload.access_token)?.permissions,\n })\n ),\n on(oidcActions.userExpired, (state): OidcState => ({\n ...state,\n isLoggedIn: false,\n isExpiring: false,\n })),\n on(oidcActions.onSilentRenewError, (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n silentRenewError: err.payload,\n },\n })),\n on(\n oidcActions.userDoneLoadingError,\n oidcActions.signInError,\n (state, err): OidcState => ({\n ...state,\n isLoading: false,\n errors: {\n ...state.errors,\n signInError: err.payload,\n },\n })\n ))\n});\n","import { createSelector } from '@ngrx/store';\nimport { ErrorState, oidcFeature } from './oidc.reducer';\nimport { IOidcUser } from '../models/oidc-user';\n// State Selectors\n\nconst selectAccessToken = createSelector(\n oidcFeature.selectIdentity,\n (user?: IOidcUser) => (user || { access_token: undefined }).access_token\n);\n\n// errors\nconst selectOidcErrorState = createSelector(\n oidcFeature.selectErrors,\n (errors) => errors\n);\n\nconst selectHasErrors = createSelector(\n selectOidcErrorState,\n (state: ErrorState) =>\n !!state.httpError || !!state.signInError || !!state.silentRenewError\n);\n\nconst selectSignInError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.signInError\n);\n\nconst selectSilentRenewError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.silentRenewError\n);\n\nconst selectHttpError = createSelector(\n selectOidcErrorState,\n (errors: ErrorState) => errors.httpError\n);\n\nconst selectExpiresAt = createSelector(oidcFeature.selectIdentity, (state?: IOidcUser) =>\n state?.expires_at ? new Date(state.expires_at * 1000) : null //NOSONAR\n);\n;\n\nexport const oidcQuery = {\n selectExpiresAt,\n selectPermissions: oidcFeature.selectPermissions,\n selectIsLoading: oidcFeature.selectIsLoading,\n selectIdentity: oidcFeature.selectIdentity,\n selectAccessToken,\n selectIsExpiring: oidcFeature.selectIsExpiring,\n selectIsExpired: oidcFeature.selectIsExpired,\n selectIsLoggedIn: oidcFeature.selectIsLoggedIn,\n selectSilentRenewError,\n selectSignInError,\n selectHttpError,\n selectHasErrors,\n selectAudiences: oidcFeature.selectAudiences,\n selectUserMetadata: oidcFeature.selectUserMetadata,\n};\n","export enum OidcEvent {\n AccessTokenExpired = 'addAccessTokenExpired',\n AccessTokenExpiring = 'addAccessTokenExpiring',\n SilentRenewError = 'AddSilentRenewError',\n UserLoaded = 'addUserLoaded',\n UserUnloaded = 'addUserUnloaded',\n UserSignedOut = 'addUserSignedOut',\n UserSessionChanged = 'addUserSessionChanged'\n}\n\nexport enum StorageKeys {\n PopupCallback = 'ngoidc:isPopupCallback',\n OidcSettings = 'ngoidc:settings',\n}\n\nexport const ACTION_NO_ACTION = 'NO_ACTION';\n","import { InjectionToken } from '@angular/core';\nimport { UserManagerSettings, Logger } from 'oidc-client';\n\nexport interface OidcLibraryConfig {\n oidc_config: UserManagerSettings;\n useCallbackFlag: boolean;\n getUserMetadata: boolean;\n log?: {\n logger: Logger;\n level: number;\n };\n}\nexport const OIDC_LIBRARY_CONFIG = new InjectionToken<OidcLibraryConfig>(\n 'OIDC_LIBRARY_CONFIG'\n);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isPlatformBrowser } from '@angular/common';\nimport { Inject, Injectable, PLATFORM_ID } from '@angular/core';\nimport {\n Log,\n OidcClient,\n SigninRequest,\n SignoutRequest,\n UserManager,\n UserManagerSettings,\n} from 'oidc-client';\nimport { from, Observable } from 'rxjs';\nimport { OidcEvent, StorageKeys } from '../models/constants';\nimport { IOidcUser } from '../models/oidc-user';\nimport { switchMap } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport {\n OidcLibraryConfig,\n OIDC_LIBRARY_CONFIG,\n} from '../models/oidc-library-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcService {\n public readonly OidcUserManager: UserManager;\n private readonly _oidcClient: OidcClient;\n private readonly _userManagerSettings: UserManagerSettings;\n\n constructor(\n @Inject(OIDC_LIBRARY_CONFIG)\n private readonly oidcLibraryConfig: OidcLibraryConfig,\n // eslint-disable-next-line @typescript-eslint/ban-types\n @Inject(PLATFORM_ID) private readonly platformId: Object,\n private readonly httpClient: HttpClient\n ) {\n const logSettings = this.oidcLibraryConfig.log;\n let clientSettings = this.oidcLibraryConfig.oidc_config;\n\n if (logSettings) {\n Log.level = logSettings.level;\n Log.logger = logSettings.logger;\n }\n\n if (clientSettings?.userStore != null) {\n clientSettings = {\n ...clientSettings,\n userStore: clientSettings.userStore,\n };\n }\n this._userManagerSettings = { ...clientSettings };\n this.OidcUserManager = new UserManager(clientSettings);\n this._oidcClient = new OidcClient(clientSettings);\n }\n\n public getUserMetadata(): Observable<unknown> {\n return this.httpClient\n .get<{ userinfo_endpoint: string; }>(\n this.oidcLibraryConfig.oidc_config?.metadataUrl || ''\n )\n .pipe(\n switchMap((openidConfig) =>\n this.httpClient.get<unknown>(openidConfig.userinfo_endpoint)\n )\n );\n }\n\n getUserManager(): UserManager {\n return this.OidcUserManager;\n }\n\n getOidcClient(): OidcClient {\n return this._oidcClient;\n }\n\n getOidcUser(): Observable<IOidcUser | null> {\n return from(this.OidcUserManager.getUser());\n }\n\n removeOidcUser(): Observable<void> {\n return from(this.OidcUserManager.removeUser());\n }\n\n registerOidcEvent(\n event: OidcEvent,\n callback: (...ev: unknown[]) => void\n ): void {\n switch (event) {\n case OidcEvent.AccessTokenExpired:\n this.OidcUserManager.events.addAccessTokenExpired(callback);\n break;\n case OidcEvent.AccessTokenExpiring:\n this.OidcUserManager.events.addAccessTokenExpiring(callback);\n break;\n case OidcEvent.SilentRenewError:\n this.OidcUserManager.events.addSilentRenewError(callback);\n break;\n case OidcEvent.UserLoaded:\n this.OidcUserManager.events.addUserLoaded(callback);\n break;\n case OidcEvent.UserSessionChanged:\n this.OidcUserManager.events.addUserSessionChanged(callback);\n break;\n case OidcEvent.UserSignedOut:\n this.OidcUserManager.events.addUserSignedOut(callback);\n break;\n case OidcEvent.UserUnloaded:\n this.OidcUserManager.events.addUserUnloaded(callback);\n break;\n default:\n break;\n }\n }\n\n removeOidcEvent(\n event: OidcEvent,\n callback: (...ev: unknown[]) => void\n ): void {\n switch (event) {\n case OidcEvent.AccessTokenExpired:\n this.OidcUserManager.events.removeAccessTokenExpired(callback);\n break;\n case OidcEvent.AccessTokenExpiring:\n this.OidcUserManager.events.removeAccessTokenExpiring(callback);\n break;\n case OidcEvent.SilentRenewError:\n this.OidcUserManager.events.removeSilentRenewError(callback);\n break;\n case OidcEvent.UserLoaded:\n this.OidcUserManager.events.removeUserLoaded(callback);\n break;\n case OidcEvent.UserSessionChanged:\n this.OidcUserManager.events.removeUserSessionChanged(callback);\n break;\n case OidcEvent.UserSignedOut:\n this.OidcUserManager.events.removeUserSignedOut(callback);\n break;\n case OidcEvent.UserUnloaded:\n this.OidcUserManager.events.removeUserUnloaded(callback);\n break;\n default:\n break;\n }\n }\n\n signInPopup(args?: any): Observable<IOidcUser> { //NOSONAR\n this.setCallbackInformation(true);\n\n return from(this.OidcUserManager.signinPopup({ ...args }));\n }\n\n signInRedirect(args?: any): Observable<void> { //NOSONAR\n this.setCallbackInformation(false);\n\n return from(this.OidcUserManager.signinRedirect({ ...args }));\n }\n\n signOutPopup(args?: any): Observable<any> { //NOSONAR\n this.setCallbackInformation(true);\n\n return from(this.OidcUserManager.signoutPopup({ ...args }));\n }\n\n signOutRedirect(args?: any): Observable<any> { //NOSONAR\n this.setCallbackInformation(false);\n return from(this.OidcUserManager.signoutRedirect({ ...args }));\n }\n\n signInSilent(args?: any): Observable<IOidcUser> { //NOSONAR\n return from(this.OidcUserManager.signinSilent({ ...args }));\n }\n\n signinPopupCallback(): Observable<any> { //NOSONAR\n return from(this.OidcUserManager.signinPopupCallback());\n }\n\n signinRedirectCallback(): Observable<IOidcUser> {\n return from(this.OidcUserManager.signinRedirectCallback());\n }\n\n signoutPopupCallback(): Observable<void> {\n return from(this.OidcUserManager.signoutPopupCallback());\n }\n\n signoutRedirectCallback(): Observable<any> { //NOSONAR\n return from(this.OidcUserManager.signoutRedirectCallback());\n }\n\n getSigninUrl(args?: any): Observable<SigninRequest> { //NOSONAR\n return from(this.OidcUserManager.createSigninRequest(args));\n }\n\n getSignoutUrl(args?: any): Observable<SignoutRequest> { //NOSONAR\n return from(this.OidcUserManager.createSignoutRequest(args));\n }\n\n private setCallbackInformation(isPopupCallback: boolean): void {\n // is browser and useCallbackFlag set to true or defaults to true\n if (\n isPlatformBrowser(this.platformId) &&\n this.oidcLibraryConfig.useCallbackFlag\n ) {\n localStorage.setItem(StorageKeys.PopupCallback, `${isPopupCallback}`);\n localStorage.setItem(\n StorageKeys.OidcSettings,\n JSON.stringify(this._userManagerSettings)\n );\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport {\n OidcClient,\n SigninRequest,\n SignoutRequest,\n UserManager,\n} from 'oidc-client';\nimport { Observable } from 'rxjs';\nimport { filter, take, map } from 'rxjs/operators';\nimport { oidcQuery } from './oidc.selectors';\nimport { OidcService } from '../services/oidc.service';\nimport { RequestArugments } from '../models/arguments.model';\nimport { OidcEvent } from '../models/constants';\nimport * as oidcActions from './oidc.actions';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { IOidcUser } from '../models/oidc-user';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcFacade {\n constructor(\n private readonly store: Store,\n private readonly oidcService: OidcService\n ) {\n this.registerDefaultEvents();\n }\n\n loading$: Observable<boolean> = this.store.select(oidcQuery.selectIsLoading);\n expiring$: Observable<boolean> = this.store.select(\n oidcQuery.selectIsExpiring\n );\n expired$: Observable<boolean> = this.store.select(\n oidcQuery.selectIsExpired\n );\n loggedIn$: Observable<boolean> = this.store.select(oidcQuery.selectIsLoggedIn);\n identity$: Observable<IOidcUser | undefined> = this.store.select(\n oidcQuery.selectIdentity\n );\n accessToken$: Observable<string | undefined> = this.store.select(\n oidcQuery.selectAccessToken\n );\n httpError$: Observable<HttpErrorResponse | undefined> = this.store.select(\n oidcQuery.selectHttpError\n );\n signInError$: Observable<unknown> = this.store.select(\n oidcQuery.selectSignInError\n );\n silentRenewError$: Observable<unknown> = this.store.select(\n oidcQuery.selectSilentRenewError\n );\n hasErrors$: Observable<boolean> = this.store.select(oidcQuery.selectHasErrors);\n permissions$: Observable<string[] | undefined> = this.store.select(\n oidcQuery.selectPermissions\n );\n audiences$: Observable<string[] | null | undefined> = this.store.select(\n oidcQuery.selectAudiences\n );\n expiresAt$: Observable<Date | null> = this.store.select(\n oidcQuery.selectExpiresAt\n );\n userMetadata$: Observable<unknown> = this.store.select(\n oidcQuery.selectUserMetadata\n );\n\n // default bindings to events\n public addUserUnLoaded(): void {\n if (this.store) {\n this.store.dispatch(oidcActions.onUserUnloaded());\n }\n }\n\n public accessTokenExpired(): void {\n if (this.store) {\n this.store.dispatch(oidcActions.onAccessTokenExpired());\n } else {\n sessionStorage.clear();\n localStorage.clear();\n window.location.reload();\n }\n }\n\n public accessTokenExpiring(): void {\n if (this.store) {\n this.store.dispatch(oidcActions.onAccessTokenExpiring());\n } else {\n this.accessTokenExpired();\n }\n }\n\n public addSilentRenewError(...ev: unknown[]): void {\n this.store.dispatch(oidcActions.onSilentRenewError(ev[0] as Error));\n }\n\n public addUserLoaded(...ev: unknown[]): void {\n this.store.dispatch(oidcActions.onUserLoaded(ev[0] as IOidcUser));\n }\n\n public addUserSignedOut(): void {\n this.oidcService.removeOidcUser();\n this.store.dispatch(oidcActions.onUserSignedOut());\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public addUserSessionChanged(): void {\n this.store.dispatch(oidcActions.onSessionChanged());\n }\n\n public clearErrors(): void {\n this.store.dispatch(oidcActions.clearErrors());\n };\n\n // OIDC Methods\n\n public getOidcUser(): void {\n this.store.dispatch(oidcActions.getOidcUser());\n }\n\n public removeOidcUser(): void {\n this.store.dispatch(oidcActions.removeOidcUser());\n }\n\n public getUserManager(): UserManager {\n return this.oidcService.getUserManager();\n }\n\n public getOidcClient(): OidcClient {\n return this.oidcService.getOidcClient();\n }\n\n /**\n * Convenient function to wait for loaded.\n */\n public waitForAuthenticationLoaded(): Observable<boolean> {\n return this.loading$.pipe(\n filter((loading) => loading === false),\n take(1),\n map(() => true)\n );\n }\n\n public signinPopup(args: RequestArugments): void {\n this.store.dispatch(oidcActions.signInPopup(args));\n }\n\n public signinRedirect(args?: RequestArugments): void {\n this.store.dispatch(oidcActions.signInRedirect(args));\n }\n\n public signinSilent(args: RequestArugments): void {\n this.store.dispatch(oidcActions.signInSilent(args));\n }\n\n public signoutPopup(args: RequestArugments): void {\n this.store.dispatch(oidcActions.signOutPopup(args));\n }\n\n public signoutRedirect(args?: RequestArugments): void {\n this.store.dispatch(oidcActions.signOutRedirect(args));\n }\n\n public getSigninUrl(args?: RequestArugments): Observable<SigninRequest> {\n return this.oidcService.getSigninUrl(args);\n };\n\n getSignoutUrl(args?: RequestArugments): Observable<SignoutRequest> {\n return this.oidcService.getSignoutUrl(args);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n registerEvent(event: OidcEvent, callback: (...ev: unknown[]) => void): void {\n this.oidcService.registerOidcEvent(event, callback);\n }\n\n private registerDefaultEvents(): void {\n // add simple loggers\n this.registerEvent(OidcEvent.AccessTokenExpired, this.accessTokenExpired);\n this.registerEvent(OidcEvent.AccessTokenExpiring, this.accessTokenExpiring);\n this.registerEvent(OidcEvent.SilentRenewError, this.addSilentRenewError);\n\n this.registerEvent(OidcEvent.UserLoaded, this.addUserLoaded);\n this.registerEvent(OidcEvent.UserUnloaded, this.addUserUnLoaded);\n this.registerEvent(OidcEvent.UserSignedOut, this.addUserSignedOut);\n this.registerEvent(\n OidcEvent.UserSessionChanged,\n this.addUserSessionChanged\n );\n }\n}\n","import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { Injectable, Inject } from '@angular/core';\nimport { tap, switchMap } from 'rxjs/operators';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard implements CanActivate, CanActivateChild {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(@Inject(DOCUMENT) private readonly document: any, private readonly oidcFacade: OidcFacade) { } //NOSONAR\n\n public readonly isLoggedInPipe$ = this.oidcFacade.waitForAuthenticationLoaded().pipe(\n switchMap(() => this.oidcFacade.loggedIn$),\n tap(t => {\n if (!t) {\n this.oidcFacade.signinRedirect({\n data: { redirect_url: this.document.location.href }\n });\n }\n })\n );\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> { //NOSONAR\n return this.isLoggedInPipe$;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot) //NOSONAR\n : Observable<boolean> {\n return this.isLoggedInPipe$;\n }\n}\n","import { isNullOrUndefined } from 'imng-nrsrx-client-utils';\nimport { WebStorageStateStore } from 'oidc-client';\nimport { OidcClientConfig } from '../models/oidc-client-config';\nimport { OidcLibraryConfig } from '../models/oidc-library-config';\n\nexport function oidcConfigurator(\n oidcClientConfig: OidcClientConfig,\n document: Document\n): OidcLibraryConfig {\n return {\n oidc_config: {\n authority: oidcClientConfig.authority,\n client_id: oidcClientConfig.client_id,\n extraQueryParams: { audience: oidcClientConfig.audience },\n redirect_uri: `${document.location.origin}/callback.html`,\n response_type: oidcClientConfig.response_type || 'id_token token',\n scope: oidcClientConfig.scope || 'openid profile offline_access email',\n post_logout_redirect_uri: `${document.location.origin}/signout-callback.html`,\n silent_redirect_uri: `${document.location.origin}/renew-callback.html`,\n automaticSilentRenew:\n isNullOrUndefined(oidcClientConfig.automaticSilentRenew)\n ? true\n : oidcClientConfig.automaticSilentRenew,\n metadataUrl: `${oidcClientConfig.authority}/.well-known/openid-configuration`,\n userStore: new WebStorageStateStore({\n store: oidcClientConfig.webStorageStateStore || sessionStorage,\n prefix: 'imng-oidc'\n }),\n },\n getUserMetadata: oidcClientConfig.getUserMetadata,\n useCallbackFlag:\n isNullOrUndefined(oidcClientConfig.useCallbackFlag)\n ? true\n : oidcClientConfig.useCallbackFlag as boolean,\n };\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface OidcClientConfig {\n audience: string;\n client_id: string;\n authority: string;\n scope?:\n | 'openid'\n | 'profile'\n | 'offline_access'\n | 'name'\n | 'given_name'\n | 'family_name'\n | 'nickname'\n | 'email'\n | 'email_verified'\n | 'picture'\n | 'created_at'\n | 'identities'\n | 'phone'\n | 'address'\n | string; //NOSONAR\n response_type?:\n | 'code'\n | 'token'\n | 'id_token'\n | 'code token'\n | 'code id_token'\n | 'token id_token'\n | 'code token id_token'\n | string; //NOSONAR\n automaticSilentRenew?: boolean;\n getUserMetadata: boolean;\n useCallbackFlag?: boolean;\n webStorageStateStore?: Storage,\n}\nexport const OIDC_CLIENT_CONFIG = new InjectionToken<OidcClientConfig>(\n 'oidc-client-config'\n);\n","import { createSelector } from '@ngrx/store';\nimport { OidcUserProfile } from '../models/oidc-user-profile';\nimport { oidcQuery } from './oidc.selectors';\nimport { oidcFeature } from './oidc.reducer';\nimport { IOidcUser } from '../models/oidc-user';\n\nconst selectProfile = createSelector(\n oidcQuery.selectIdentity,\n (identity?: IOidcUser) => identity?.profile as OidcUserProfile\n);\n\nconst getPermissions = oidcFeature.selectPermissions;\n\nconst selectEmail = createSelector(selectProfile, (profile) => profile?.email);\n\nconst selectProfilePicture = createSelector(\n selectProfile,\n (profile) => profile?.picture\n);\n\nexport const OidcUserSelectors = {\n getProfile: selectProfile,\n getEmail: selectEmail,\n getProfilePicture: selectProfilePicture,\n getPermissions,\n};\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { Observable } from 'rxjs';\nimport { OidcUserSelectors } from './oidc-user.selectors';\nimport { OidcUserProfile } from '../models/oidc-user-profile';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcUserFacade {\n constructor(private readonly store: Store) { }\n profile$: Observable<OidcUserProfile> = this.store.select(\n OidcUserSelectors.getProfile\n );\n email$: Observable<string | undefined> = this.store.select(\n OidcUserSelectors.getEmail\n );\n profilePicture$: Observable<string | undefined> = this.store.select(\n OidcUserSelectors.getProfilePicture\n );\n permissions$: Observable<string[] | undefined> = this.store.select(\n OidcUserSelectors.getPermissions\n );\n\n public hasPermissions(\n requiredPermissions: Array<string>\n ): Observable<boolean> {\n return this.permissions$.pipe(\n map(\n (t) =>\n -1 <\n requiredPermissions.findIndex(\n (f) => -1 < (t?.findIndex((i) => i === f) || -1)\n )\n )\n );\n }\n}\n","import { Component } from '@angular/core';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { OidcUserFacade } from '../+state/oidc-user.facade';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Component({\n selector: 'imng-support',\n template: `<div class=\"container pt-5 mt-5\">\n <div class=\"row h3 text-center\">\n <div class=\"col-md-12 text-center\">OIDC Support</div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Audiences</div>\n <div class=\"col-md-8\">\n <span *ngFor=\"let item of facade.audiences$ | async; last as isLast\">\n {{ item }} <br *ngIf=\"!isLast\" />\n </span>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Permissions</div>\n <div class=\"col-md-8\">\n <span *ngFor=\"let item of facade.permissions$ | async; last as isLast\">\n {{ item }} <br *ngIf=\"!isLast\" />\n </span>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-md-3\">Expires</div>\n <div class=\"col-md-8\">{{ facade.expiresAt$ | async }}</div>\n </div>\n <div class=\"row\" *ngFor=\"let item of profileValue$ | async\">\n <div class=\"col-md-3\">{{ item.key }}</div>\n <div class=\"col-md-8\">{{ item.value }}</div>\n </div>\n </div> `,\n})\nexport class SupportComponent {\n public profileValue$: Observable<{ key: string; value: string; }[]>;\n constructor(\n public readonly facade: OidcFacade,\n public readonly oidcUserFacade: OidcUserFacade\n ) {\n this.profileValue$ = this.oidcUserFacade.profile$.pipe(\n map((x) =>\n Object.keys(x).map((propertyKey) => ({\n key: propertyKey,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: (x as any)[propertyKey], //NOSONAR\n }))\n )\n );\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'imng-access-denied',\n template: '<div class=\"p-5 m-5 text-danger\">Access denied.</div>'\n})\nexport class AccessDeniedComponent { }\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'imng-logout-success',\n template:\n // eslint-disable-next-line max-len\n '<div class=\"p-5 m-5 text-center\">You have successfully logged out.<br/>Please close this browser window to ensure you are completely logged out of the session.</div>'\n})\nexport class LogoutSuccessComponent { }\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule, Route } from '@angular/router';\nimport { SupportComponent } from './support/support.component';\nimport { AccessDeniedComponent } from './components/access-denied.component';\nimport { AuthGuard } from './services/auth-guard';\nimport { LogoutSuccessComponent } from './components/logout-success.component';\n\nconst routes: Routes = [\n { path: 'support', component: SupportComponent },\n { path: 'access-denied', component: AccessDeniedComponent },\n { path: 'logout', component: LogoutSuccessComponent },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class ImngOidcClientRoutingModule {}\n\nexport const oidcSupportRoute: Route = {\n path: 'oidc/support',\n component: SupportComponent,\n canActivate: [AuthGuard],\n};\n\nexport const oidcAccessDeniedRoute: Route = {\n path: 'oidc/access-denied',\n component: AccessDeniedComponent,\n};\n\nexport const oidcLogoutRoute: Route = {\n path: 'oidc/logout',\n component: LogoutSuccessComponent,\n};\n\nexport const oidcRoutes: Route[] = [\n oidcSupportRoute,\n oidcAccessDeniedRoute,\n oidcLogoutRoute,\n];\n","import { Inject, Injectable } from '@angular/core';\nimport { Actions, ofType, OnInitEffects, createEffect } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\nimport { of } from 'rxjs';\nimport {\n catchError,\n concatMap,\n map,\n filter,\n tap,\n switchMap,\n} from 'rxjs/operators';\nimport { OidcService } from '../services/oidc.service';\nimport * as oidcActions from './oidc.actions';\nimport { IOidcUser } from '../models/oidc-user';\nimport { Router } from '@angular/router';\nimport { oidcLogoutRoute } from '../img-oidc-client-routing.module';\nimport {\n OidcLibraryConfig,\n OIDC_LIBRARY_CONFIG,\n} from '../models/oidc-library-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OidcEffects implements OnInitEffects {\n constructor(\n private readonly actions$: Actions,\n private readonly oidcService: OidcService,\n @Inject(OIDC_LIBRARY_CONFIG)\n private readonly oidcLibraryOptions: OidcLibraryConfig,\n private readonly router: Router\n ) { }\n\n getOidcUser$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.getOidcUser),\n switchMap(() =>\n this.oidcService.getOidcUser().pipe(\n map((userData: IOidcUser | null) =>\n this.makeOidcUserSerializable(userData)\n ),\n filter((userData: IOidcUser) => !!userData),\n map((userData: IOidcUser) => oidcActions.userFound(userData)),\n catchError((err) => of(oidcActions.userDoneLoadingError(err)))\n )));\n });\n\n silentRenew$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(\n (userFound: { payload: IOidcUser; }) =>\n // user expired, initiate silent sign-in if configured to automatic\n (userFound.payload != null &&\n userFound.payload.expired &&\n this.oidcLibraryOptions.oidc_config?.automaticSilentRenew) ||\n false\n ),\n map((userFound) => oidcActions.signInSilent(userFound.payload))\n );\n });\n\n removeOidcUser$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.removeOidcUser),\n concatMap(() =>\n this.oidcService.removeOidcUser().pipe(\n map(() => oidcActions.userDoneLoading()),\n catchError((err) => of(oidcActions.oidcError(err)))\n )\n )\n );\n });\n\n userDoneLoadingNoMetadata$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(() => !this.oidcLibraryOptions.getUserMetadata),\n map(() => oidcActions.userDoneLoading())\n );\n });\n\n userDoneLoadingWithMetadata$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.userFound),\n filter(() => this.oidcLibraryOptions.getUserMetadata || false),\n switchMap(() => this.oidcService.getUserMetadata()),\n map((metadata) => oidcActions.onUserMetadataLoaded(metadata))\n );\n });\n\n onAccessTokenExpired$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.onAccessTokenExpired),\n map(() => oidcActions.removeOidcUser())\n );\n });\n\n signInPopup$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInPopup),\n concatMap((args) =>\n this.oidcService.signInPopup(args.payload).pipe(\n map((user) =>\n oidcActions.onSignInPopup(this.makeOidcUserSerializable(user))\n ),\n catchError((err) => of(oidcActions.signInError(err)))\n )\n )\n );\n });\n\n signInRedirect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInRedirect),\n concatMap((args) =>\n this.oidcService.signInRedirect(args.payload).pipe(\n concatMap(() => this.oidcService.signinRedirectCallback()),\n map((user) =>\n oidcActions.onSignInRedirect(this.makeOidcUserSerializable(user))\n ),\n catchError((err) => of(oidcActions.signInError(err)))\n )\n )\n );\n });\n\n signInSilent$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signInSilent),\n concatMap((args) =>\n this.oidcService.signInSilent(args.payload).pipe(\n map((user) =>\n oidcActions.onSignInSilent(this.makeOidcUserSerializable(user))\n ),\n catchError((err) => of(oidcActions.onSilentRenewError(err)))\n )\n )\n );\n });\n\n signOutPopup$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signOutPopup),\n concatMap((args) =>\n this.oidcService.signOutPopup(args.payload).pipe(\n map(() => oidcActions.onUserSignedOut()),\n catchError((err) => of(oidcActions.signOutPopupError(err.message)))\n )\n )\n );\n });\n\n signOutRedirect$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(oidcActions.signOutRedirect),\n concatMap((args) =>\n this.oidcService.signOutRedirect(args.payload).pipe(\n map(() => oidcActions.onUserSignedOut()),\n catchError((err) => of(oidcActions.signOutRedirectError(err.message)))\n )\n )\n );\n });\n\n onUserSignedOut$ = createEffect(() => {\n return this.actions$.pipe(\n ofType(\n oidcActions.onUserSignedOut,\n oidcActions.signOutPopupError,\n oidcActions.signOutRedirectError\n ),\n tap(() => {\n localStorage.clear();\n sessionStorage.clear();\n this.router.navigateByUrl(oidcLogoutRoute.path || '');\n })\n );\n },\n { dispatch: false }\n );\n\n\n ngrxOnInitEffects(): Action {\n return oidcActions.getOidcUser();\n }\n\n makeOidcUserSerializable(user: IOidcUser | null): IOidcUser {\n if (user?.toStorageString) {\n user = {\n ...user,\n toStorageString: undefined,\n };\n }\n return user as IOidcUser;\n }\n}\n","import { Observable, throwError } from 'rxjs';\nimport { first, catchError, mergeMap } from 'rxjs/operators';\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { oidcQuery } from '../+state/oidc.selectors';\nimport * as oidcActions from '../+state/oidc.actions';\n\n@Injectable()\nexport class TokenInterceptorService implements HttpInterceptor {\n constructor(private readonly store: Store) { }\n\n intercept(req: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\n return this.store.select(oidcQuery.selectAccessToken).pipe(\n first(),\n mergeMap(accessToken => {\n if (accessToken) {\n req = req.clone({\n setHeaders: { Authorization: `Bearer ${accessToken}` },\n });\n }\n return next.handle(req).pipe(\n catchError((err: Error) => {\n if (err instanceof HttpErrorResponse) {\n this.store.dispatch(oidcActions.setHttpError(err));\n }\n return throwError(() => err);\n }));\n }\n ));\n }\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule, DOCUMENT } from '@angular/common';\nimport { AuthGuard } from './services/auth-guard';\nimport { oidcConfigurator } from './util/oidc-client-configurator';\nimport {\n OidcClientConfig,\n OIDC_CLIENT_CONFIG,\n} from './models/oidc-client-config';\nimport { OidcEffects } from './+state/oidc.effects';\nimport { OidcService } from './services/oidc.service';\nimport { OidcFacade } from './+state/oidc.facade';\nimport { StoreModule, Store } from '@ngrx/store';\nimport { oidcFeature } from './+state/oidc.reducer';\nimport { EffectsModule } from '@ngrx/effects';\nimport { OidcUserFacade } from './+state/oidc-user.facade';\nimport { TokenInterceptorService } from './services/token-interceptor.service';\nimport { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\nimport { AccessDeniedComponent } from './components/access-denied.component';\nimport { SupportComponent } from './support/support.component';\nimport { ImngOidcClientRoutingModule } from './img-oidc-client-routing.module';\nimport { LogoutSuccessComponent } from './components/logout-success.component';\nimport { OIDC_LIBRARY_CONFIG } from './models/oidc-library-config';\n\n@NgModule({\n declarations: [\n AccessDeniedComponent,\n SupportComponent,\n LogoutSuccessComponent,\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n StoreModule.forFeature(oidcFeature),\n EffectsModule.forFeature([OidcEffects]),\n ImngOidcClientRoutingModule,\n ],\n exports: [AccessDeniedComponent, SupportComponent, LogoutSuccessComponent],\n providers: [\n {\n provide: OIDC_LIBRARY_CONFIG,\n useFactory: oidcConfigurator,\n deps: [OIDC_CLIENT_CONFIG, DOCUMENT],\n },\n OidcService,\n OidcFacade,\n OidcUserFacade,\n AuthGuard,\n {\n provide: HTTP_INTERCEPTORS,\n useClass: TokenInterceptorService,\n multi: true,\n deps: [Store],\n },\n ],\n})\nexport class ImngOidcClientModule {\n static forRoot(\n oidc0ptions: OidcClientConfig\n ): ModuleWithProviders<ImngOidcClientModule> {\n return {\n ngModule: ImngOidcClientModule,\n providers: [{ provide: OIDC_CLIENT_CONFIG, useValue: oidc0ptions }],\n };\n }\n}\n","import {\n CanActivate,\n ActivatedRouteSnapshot,\n RouterStateSnapshot,\n Router,\n} from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { OidcFacade } from '../+state/oidc.facade';\nimport { switchMap, tap } from 'rxjs/operators';\nimport { OidcUserFacade } from '../+state/oidc-user.facade';\n\nexport abstract class PermissionsGuard implements CanActivate {\n constructor(\n private readonly oidcFacade: OidcFacade,\n private readonly oidcUserFacade: OidcUserFacade,\n private readonly router: Router\n ) { }\n\n protected abstract permissions: string[];\n\n public canActivate(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n route: ActivatedRouteSnapshot, //NOSONAR\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n state: RouterStateSnapshot //NOSONAR\n ): Observable<boolean> | boolean {\n return this.oidcFacade.waitForAuthenticationLoaded().pipe(\n switchMap(() => this.oidcUserFacade.hasPermissions(this.permissions)),\n tap((t) => {\n if (!t) {\n this.router.navigate(['oidc/access-denied'], {\n relativeTo: this.router.routerState.root,\n });\n }\n })\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["oidcActions.getOidcUser","oidcActions.onUserLoading","oidcActions.removeOidcUser","oidcActions.setHttpError","oidcActions.onUserMetadataLoaded","oidcActions.clearErrors","oidcActions.userDoneLoading","oidcActions.onAccessTokenExpiring","oidcActions.onAccessTokenExpired","oidcActions.onUserLoaded","oidcActions.onUserUnloaded","oidcActions.onUserSignedOut","oidcActions.signOutPopupError","oidcActions.signOutRedirectError","oidcActions.signOutRedirect","oidcActions.signOutPopup","oidcActions.userFound","oidcActions.onSignInPopup","oidcActions.onSignInRedirect","oidcActions.onSignInSilent","oidcActions.userExpired","oidcActions.onSilentRenewError","oidcActions.userDoneLoadingError","oidcActions.signInError","oidcActions.onSessionChanged","oidcActions.signInPopup","oidcActions.signInRedirect","oidcActions.signInSilent","i1","i2.OidcService","i1.OidcFacade","i2.OidcUserFacade","oidcActions.oidcError","i3"],"mappings":"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"}
|
package/package.json
CHANGED