@abp/ng.oauth 8.2.2 → 8.3.0-rc.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/esm2022/lib/guards/oauth.guard.mjs +4 -4
- package/esm2022/lib/handlers/oauth-configuration.handler.mjs +4 -4
- package/esm2022/lib/interceptors/api.interceptor.mjs +4 -4
- package/esm2022/lib/oauth.module.mjs +12 -61
- package/esm2022/lib/providers/index.mjs +2 -1
- package/esm2022/lib/providers/oauth-module-config.provider.mjs +55 -0
- package/esm2022/lib/services/oauth-error-filter.service.mjs +4 -4
- package/esm2022/lib/services/oauth.service.mjs +4 -4
- package/esm2022/lib/services/remember-me.service.mjs +4 -4
- package/fesm2022/abp-ng.oauth.mjs +197 -193
- package/fesm2022/abp-ng.oauth.mjs.map +1 -1
- package/lib/oauth.module.d.ts +4 -3
- package/lib/providers/index.d.ts +1 -0
- package/lib/providers/oauth-module-config.provider.d.ts +1 -0
- package/package.json +3 -3
|
@@ -19,10 +19,10 @@ export class AbpOAuthGuard {
|
|
|
19
19
|
this.authService.navigateToLogin(params);
|
|
20
20
|
return false;
|
|
21
21
|
}
|
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
23
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
23
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthGuard, providedIn: 'root' }); }
|
|
24
24
|
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthGuard, decorators: [{
|
|
26
26
|
type: Injectable,
|
|
27
27
|
args: [{
|
|
28
28
|
providedIn: 'root',
|
|
@@ -39,4 +39,4 @@ export const abpOAuthGuard = (route, state) => {
|
|
|
39
39
|
authService.navigateToLogin(params);
|
|
40
40
|
return false;
|
|
41
41
|
};
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGguZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9vYXV0aC9zcmMvbGliL2d1YXJkcy9vYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbkQsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGNBQWMsQ0FBQzs7QUFFdEQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sYUFBYTtJQUgxQjtRQUlxQixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQWV0RDtJQWJDLFdBQVcsQ0FDVCxLQUE2QixFQUM3QixLQUEwQjtRQUUxQixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUNwRSxJQUFJLG1CQUFtQixFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0FoQlUsYUFBYTtrSEFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7O0FBb0JELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBa0IsQ0FDMUMsS0FBNkIsRUFDN0IsS0FBMEIsRUFDMUIsRUFBRTtJQUNGLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFeEMsTUFBTSxtQkFBbUIsR0FBRyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUUvRCxJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3hDLFdBQVcsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBVcmxUcmVlLFxyXG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICBDYW5BY3RpdmF0ZUZuLFxyXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIElBYnBHdWFyZCB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcblxyXG4vKipcclxuICogQGRlcHJlY2F0ZWQgVXNlIGBhYnBPQXV0aEd1YXJkYCAqZnVuY3Rpb24qIGluc3RlYWQuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWJwT0F1dGhHdWFyZCBpbXBsZW1lbnRzIElBYnBHdWFyZCB7XHJcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9BdXRoU2VydmljZSA9IGluamVjdChPQXV0aFNlcnZpY2UpO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XHJcblxyXG4gIGNhbkFjdGl2YXRlKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICApOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHwgYm9vbGVhbiB8IFVybFRyZWUge1xyXG4gICAgY29uc3QgaGFzVmFsaWRBY2Nlc3NUb2tlbiA9IHRoaXMub0F1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKTtcclxuICAgIGlmIChoYXNWYWxpZEFjY2Vzc1Rva2VuKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHBhcmFtcyA9IHsgcmV0dXJuVXJsOiBzdGF0ZS51cmwgfTtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UubmF2aWdhdGVUb0xvZ2luKHBhcmFtcyk7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgYWJwT0F1dGhHdWFyZDogQ2FuQWN0aXZhdGVGbiA9IChcclxuICByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuKSA9PiB7XHJcbiAgY29uc3Qgb0F1dGhTZXJ2aWNlID0gaW5qZWN0KE9BdXRoU2VydmljZSk7XHJcbiAgY29uc3QgYXV0aFNlcnZpY2UgPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xyXG5cclxuICBjb25zdCBoYXNWYWxpZEFjY2Vzc1Rva2VuID0gb0F1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKTtcclxuXHJcbiAgaWYgKGhhc1ZhbGlkQWNjZXNzVG9rZW4pIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgcGFyYW1zID0geyByZXR1cm5Vcmw6IHN0YXRlLnVybCB9O1xyXG4gIGF1dGhTZXJ2aWNlLm5hdmlnYXRlVG9Mb2dpbihwYXJhbXMpO1xyXG4gIHJldHVybiBmYWxzZTtcclxufTtcclxuIl19
|
|
@@ -21,10 +21,10 @@ export class OAuthConfigurationHandler {
|
|
|
21
21
|
this.oAuthService.configure(config);
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
25
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthConfigurationHandler, deps: [{ token: i1.OAuthService }, { token: i2.EnvironmentService }, { token: CORE_OPTIONS }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
25
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthConfigurationHandler, providedIn: 'root' }); }
|
|
26
26
|
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthConfigurationHandler, decorators: [{
|
|
28
28
|
type: Injectable,
|
|
29
29
|
args: [{
|
|
30
30
|
providedIn: 'root',
|
|
@@ -33,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
33
33
|
type: Inject,
|
|
34
34
|
args: [CORE_OPTIONS]
|
|
35
35
|
}] }] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgtY29uZmlndXJhdGlvbi5oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvb2F1dGgvc3JjL2xpYi9oYW5kbGVycy9vYXV0aC1jb25maWd1cmF0aW9uLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9ELE9BQU8sT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBTyxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFLckUsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxZQUNVLFlBQTBCLEVBQzFCLGtCQUFzQyxFQUNoQixPQUFpQjtRQUZ2QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFFL0MsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVPLHNCQUFzQjtRQUM1QixJQUFJLENBQUMsa0JBQWtCO2FBQ3BCLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ3BDLElBQUksQ0FDSCxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsV0FBeUIsQ0FBQyxFQUN6RCxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FDekU7YUFDQSxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBbkJVLHlCQUF5QixnRkFJMUIsWUFBWTtrSEFKWCx5QkFBeUIsY0FGeEIsTUFBTTs7MkZBRVAseUJBQXlCO2tCQUhyQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBS0ksTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEF1dGhDb25maWcsIE9BdXRoU2VydmljZSB9IGZyb20gXCJhbmd1bGFyLW9hdXRoMi1vaWRjXCI7XHJcbmltcG9ydCBjb21wYXJlIGZyb20gJ2p1c3QtY29tcGFyZSc7XHJcbmltcG9ydCB7IGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBBQlAsIEVudmlyb25tZW50U2VydmljZSwgQ09SRV9PUFRJT05TIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPQXV0aENvbmZpZ3VyYXRpb25IYW5kbGVyIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgb0F1dGhTZXJ2aWNlOiBPQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gICAgQEluamVjdChDT1JFX09QVElPTlMpIHByaXZhdGUgb3B0aW9uczogQUJQLlJvb3QsXHJcbiAgKSB7XHJcbiAgICB0aGlzLmxpc3RlblRvU2V0RW52aXJvbm1lbnQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbGlzdGVuVG9TZXRFbnZpcm9ubWVudCgpIHtcclxuICAgIHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlXHJcbiAgICAgIC5jcmVhdGVPblVwZGF0ZVN0cmVhbShzdGF0ZSA9PiBzdGF0ZSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKGVudmlyb25tZW50ID0+IGVudmlyb25tZW50Lm9BdXRoQ29uZmlnIGFzIEF1dGhDb25maWcpLFxyXG4gICAgICAgIGZpbHRlcihjb25maWcgPT4gIWNvbXBhcmUoY29uZmlnLCB0aGlzLm9wdGlvbnMuZW52aXJvbm1lbnQub0F1dGhDb25maWcpKSxcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChjb25maWcpID0+IHtcclxuICAgICAgICB0aGlzLm9BdXRoU2VydmljZS5jb25maWd1cmUoY29uZmlnKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -41,10 +41,10 @@ export class OAuthApiInterceptor {
|
|
|
41
41
|
headers['X-Requested-With'] = 'XMLHttpRequest';
|
|
42
42
|
return headers;
|
|
43
43
|
}
|
|
44
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
45
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
44
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthApiInterceptor, deps: [{ token: i1.OAuthService }, { token: i2.SessionStateService }, { token: i2.HttpWaitService }, { token: TENANT_KEY }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
45
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthApiInterceptor, providedIn: 'root' }); }
|
|
46
46
|
}
|
|
47
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthApiInterceptor, decorators: [{
|
|
48
48
|
type: Injectable,
|
|
49
49
|
args: [{
|
|
50
50
|
providedIn: 'root',
|
|
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
53
53
|
type: Inject,
|
|
54
54
|
args: [TENANT_KEY]
|
|
55
55
|
}] }] });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvb2F1dGgvc3JjL2xpYi9pbnRlcmNlcHRvcnMvYXBpLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUNMLGVBQWUsRUFFZixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLFVBQVUsR0FDWCxNQUFNLGNBQWMsQ0FBQzs7OztBQUt0QixNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQ1UsWUFBMEIsRUFDMUIsWUFBaUMsRUFDakMsZUFBZ0MsRUFDWixTQUFpQjtRQUhyQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFDakMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ1osY0FBUyxHQUFULFNBQVMsQ0FBUTtJQUM1QyxDQUFDO0lBRUosU0FBUyxDQUFDLE9BQXlCLEVBQUUsSUFBaUI7UUFDcEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekMsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sVUFBVSxHQUFHLGlCQUFpQjtZQUNsQyxDQUFDLENBQUMsT0FBTztZQUNULENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUNaLFVBQVUsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQzthQUN2RCxDQUFDLENBQUM7UUFFUCxPQUFPLElBQUk7YUFDUixNQUFNLENBQUMsVUFBVSxDQUFDO2FBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxlQUE2QjtRQUNoRCxNQUFNLE9BQU8sR0FBRyxFQUFTLENBQUM7UUFFMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNwRCxPQUFPLENBQUMsZUFBZSxDQUFDLEdBQUcsVUFBVSxLQUFLLEVBQUUsQ0FBQztRQUMvQyxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3JELE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNwQyxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ3hELE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN0QyxDQUFDO1FBRUQsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsZ0JBQWdCLENBQUM7UUFFL0MsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs4R0EzQ1UsbUJBQW1CLGdIQUtwQixVQUFVO2tIQUxULG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxNQUFNOzJCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSGFuZGxlciwgSHR0cEhlYWRlcnMsIEh0dHBSZXF1ZXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT0F1dGhTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XHJcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQge1xyXG4gIEh0dHBXYWl0U2VydmljZSxcclxuICBJQXBpSW50ZXJjZXB0b3IsXHJcbiAgSVNfRVhURVJOQUxfUkVRVUVTVCxcclxuICBTZXNzaW9uU3RhdGVTZXJ2aWNlLFxyXG4gIFRFTkFOVF9LRVksXHJcbn0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPQXV0aEFwaUludGVyY2VwdG9yIGltcGxlbWVudHMgSUFwaUludGVyY2VwdG9yIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgb0F1dGhTZXJ2aWNlOiBPQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNlc3Npb25TdGF0ZTogU2Vzc2lvblN0YXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgaHR0cFdhaXRTZXJ2aWNlOiBIdHRwV2FpdFNlcnZpY2UsXHJcbiAgICBASW5qZWN0KFRFTkFOVF9LRVkpIHByaXZhdGUgdGVuYW50S2V5OiBzdHJpbmcsXHJcbiAgKSB7fVxyXG5cclxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8YW55PiwgbmV4dDogSHR0cEhhbmRsZXIpIHtcclxuICAgIHRoaXMuaHR0cFdhaXRTZXJ2aWNlLmFkZFJlcXVlc3QocmVxdWVzdCk7XHJcbiAgICBjb25zdCBpc0V4dGVybmFsUmVxdWVzdCA9IHJlcXVlc3QuY29udGV4dD8uZ2V0KElTX0VYVEVSTkFMX1JFUVVFU1QpO1xyXG4gICAgY29uc3QgbmV3UmVxdWVzdCA9IGlzRXh0ZXJuYWxSZXF1ZXN0XHJcbiAgICAgID8gcmVxdWVzdFxyXG4gICAgICA6IHJlcXVlc3QuY2xvbmUoe1xyXG4gICAgICAgICAgc2V0SGVhZGVyczogdGhpcy5nZXRBZGRpdGlvbmFsSGVhZGVycyhyZXF1ZXN0LmhlYWRlcnMpLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBuZXh0XHJcbiAgICAgIC5oYW5kbGUobmV3UmVxdWVzdClcclxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5odHRwV2FpdFNlcnZpY2UuZGVsZXRlUmVxdWVzdChyZXF1ZXN0KSkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWRkaXRpb25hbEhlYWRlcnMoZXhpc3RpbmdIZWFkZXJzPzogSHR0cEhlYWRlcnMpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSB7fSBhcyBhbnk7XHJcblxyXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLm9BdXRoU2VydmljZS5nZXRBY2Nlc3NUb2tlbigpO1xyXG4gICAgaWYgKCFleGlzdGluZ0hlYWRlcnM/LmhhcygnQXV0aG9yaXphdGlvbicpICYmIHRva2VuKSB7XHJcbiAgICAgIGhlYWRlcnNbJ0F1dGhvcml6YXRpb24nXSA9IGBCZWFyZXIgJHt0b2tlbn1gO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGxhbmcgPSB0aGlzLnNlc3Npb25TdGF0ZS5nZXRMYW5ndWFnZSgpO1xyXG4gICAgaWYgKCFleGlzdGluZ0hlYWRlcnM/LmhhcygnQWNjZXB0LUxhbmd1YWdlJykgJiYgbGFuZykge1xyXG4gICAgICBoZWFkZXJzWydBY2NlcHQtTGFuZ3VhZ2UnXSA9IGxhbmc7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdGVuYW50ID0gdGhpcy5zZXNzaW9uU3RhdGUuZ2V0VGVuYW50KCk7XHJcbiAgICBpZiAoIWV4aXN0aW5nSGVhZGVycz8uaGFzKHRoaXMudGVuYW50S2V5KSAmJiB0ZW5hbnQ/LmlkKSB7XHJcbiAgICAgIGhlYWRlcnNbdGhpcy50ZW5hbnRLZXldID0gdGVuYW50LmlkO1xyXG4gICAgfVxyXG5cclxuICAgIGhlYWRlcnNbJ1gtUmVxdWVzdGVkLVdpdGgnXSA9ICdYTUxIdHRwUmVxdWVzdCc7XHJcblxyXG4gICAgcmV0dXJuIGhlYWRlcnM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,70 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
4
|
-
import { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc';
|
|
5
|
-
import { AbpLocalStorageService, ApiInterceptor, AuthErrorFilterService, AuthGuard, authGuard, AuthService, CHECK_AUTHENTICATION_STATE_FN_KEY, noop, PIPE_TO_LOGIN_FN_KEY, } from '@abp/ng.core';
|
|
6
|
-
import { AbpOAuthService, OAuthErrorFilterService } from './services';
|
|
7
|
-
import { OAuthConfigurationHandler } from './handlers/oauth-configuration.handler';
|
|
8
|
-
import { OAuthApiInterceptor } from './interceptors/api.interceptor';
|
|
9
|
-
import { AbpOAuthGuard, abpOAuthGuard } from './guards/oauth.guard';
|
|
10
|
-
import { NavigateToManageProfileProvider } from './providers';
|
|
11
|
-
import { checkAccessToken, pipeToLogin } from './utils';
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { provideAbpOAuth } from './providers';
|
|
12
3
|
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* @deprecated AbpOAuthModule is deprecated use `provideAbpOAuth` *function* instead.
|
|
6
|
+
*/
|
|
13
7
|
export class AbpOAuthModule {
|
|
14
8
|
static forRoot() {
|
|
15
9
|
return {
|
|
16
10
|
ngModule: AbpOAuthModule,
|
|
17
|
-
providers: [
|
|
18
|
-
{
|
|
19
|
-
provide: AuthService,
|
|
20
|
-
useClass: AbpOAuthService,
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
provide: AuthGuard,
|
|
24
|
-
useClass: AbpOAuthGuard,
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
provide: authGuard,
|
|
28
|
-
useValue: abpOAuthGuard,
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
provide: ApiInterceptor,
|
|
32
|
-
useClass: OAuthApiInterceptor,
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
provide: PIPE_TO_LOGIN_FN_KEY,
|
|
36
|
-
useValue: pipeToLogin,
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
provide: CHECK_AUTHENTICATION_STATE_FN_KEY,
|
|
40
|
-
useValue: checkAccessToken,
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
provide: HTTP_INTERCEPTORS,
|
|
44
|
-
useExisting: ApiInterceptor,
|
|
45
|
-
multi: true,
|
|
46
|
-
},
|
|
47
|
-
NavigateToManageProfileProvider,
|
|
48
|
-
{
|
|
49
|
-
provide: APP_INITIALIZER,
|
|
50
|
-
multi: true,
|
|
51
|
-
deps: [OAuthConfigurationHandler],
|
|
52
|
-
useFactory: noop,
|
|
53
|
-
},
|
|
54
|
-
OAuthModule.forRoot().providers,
|
|
55
|
-
{ provide: OAuthStorage, useClass: AbpLocalStorageService },
|
|
56
|
-
{ provide: AuthErrorFilterService, useExisting: OAuthErrorFilterService },
|
|
57
|
-
],
|
|
11
|
+
providers: [provideAbpOAuth()],
|
|
58
12
|
};
|
|
59
13
|
}
|
|
60
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
61
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
62
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
15
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthModule }); }
|
|
16
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthModule }); }
|
|
63
17
|
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
65
|
-
type: NgModule
|
|
66
|
-
args: [{
|
|
67
|
-
imports: [CommonModule, OAuthModule],
|
|
68
|
-
}]
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthModule, decorators: [{
|
|
19
|
+
type: NgModule
|
|
69
20
|
}] });
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvb2F1dGgvc3JjL2xpYi9vYXV0aC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFOUM7O0dBRUc7QUFFSCxNQUFNLE9BQU8sY0FBYztJQUN6QixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsY0FBYztZQUN4QixTQUFTLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUMvQixDQUFDO0lBQ0osQ0FBQzs4R0FOVSxjQUFjOytHQUFkLGNBQWM7K0dBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHByb3ZpZGVBYnBPQXV0aCB9IGZyb20gJy4vcHJvdmlkZXJzJztcclxuXHJcbi8qKlxyXG4gKiBAZGVwcmVjYXRlZCBBYnBPQXV0aE1vZHVsZSBpcyBkZXByZWNhdGVkIHVzZSBgcHJvdmlkZUFicE9BdXRoYCAqZnVuY3Rpb24qIGluc3RlYWQuXHJcbiAqL1xyXG5ATmdNb2R1bGUoKVxyXG5leHBvcnQgY2xhc3MgQWJwT0F1dGhNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QWJwT0F1dGhNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBBYnBPQXV0aE1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbcHJvdmlkZUFicE9BdXRoKCldLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from './navigate-to-manage-profile.provider';
|
|
2
|
-
|
|
2
|
+
export * from './oauth-module-config.provider';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9vYXV0aC9zcmMvbGliL3Byb3ZpZGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL25hdmlnYXRlLXRvLW1hbmFnZS1wcm9maWxlLnByb3ZpZGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9vYXV0aC1tb2R1bGUtY29uZmlnLnByb3ZpZGVyJztcclxuIl19
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { AuthService, AuthGuard, authGuard, ApiInterceptor, PIPE_TO_LOGIN_FN_KEY, CHECK_AUTHENTICATION_STATE_FN_KEY, AbpLocalStorageService, AuthErrorFilterService, noop, } from '@abp/ng.core';
|
|
2
|
+
import { APP_INITIALIZER, makeEnvironmentProviders } from '@angular/core';
|
|
3
|
+
import { HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
4
|
+
import { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc';
|
|
5
|
+
import { AbpOAuthGuard, abpOAuthGuard } from '../guards';
|
|
6
|
+
import { OAuthConfigurationHandler } from '../handlers';
|
|
7
|
+
import { OAuthApiInterceptor } from '../interceptors';
|
|
8
|
+
import { AbpOAuthService, OAuthErrorFilterService } from '../services';
|
|
9
|
+
import { pipeToLogin, checkAccessToken } from '../utils';
|
|
10
|
+
import { NavigateToManageProfileProvider } from './navigate-to-manage-profile.provider';
|
|
11
|
+
export function provideAbpOAuth() {
|
|
12
|
+
const providers = [
|
|
13
|
+
{
|
|
14
|
+
provide: AuthService,
|
|
15
|
+
useClass: AbpOAuthService,
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
provide: AuthGuard,
|
|
19
|
+
useClass: AbpOAuthGuard,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
provide: authGuard,
|
|
23
|
+
useValue: abpOAuthGuard,
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
provide: ApiInterceptor,
|
|
27
|
+
useClass: OAuthApiInterceptor,
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
provide: PIPE_TO_LOGIN_FN_KEY,
|
|
31
|
+
useValue: pipeToLogin,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
provide: CHECK_AUTHENTICATION_STATE_FN_KEY,
|
|
35
|
+
useValue: checkAccessToken,
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
provide: HTTP_INTERCEPTORS,
|
|
39
|
+
useExisting: ApiInterceptor,
|
|
40
|
+
multi: true,
|
|
41
|
+
},
|
|
42
|
+
NavigateToManageProfileProvider,
|
|
43
|
+
{
|
|
44
|
+
provide: APP_INITIALIZER,
|
|
45
|
+
multi: true,
|
|
46
|
+
deps: [OAuthConfigurationHandler],
|
|
47
|
+
useFactory: noop,
|
|
48
|
+
},
|
|
49
|
+
OAuthModule.forRoot().providers,
|
|
50
|
+
{ provide: OAuthStorage, useClass: AbpLocalStorageService },
|
|
51
|
+
{ provide: AuthErrorFilterService, useExisting: OAuthErrorFilterService },
|
|
52
|
+
];
|
|
53
|
+
return makeEnvironmentProviders(providers);
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgtbW9kdWxlLWNvbmZpZy5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL29hdXRoL3NyYy9saWIvcHJvdmlkZXJzL29hdXRoLW1vZHVsZS1jb25maWcucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsU0FBUyxFQUNULGNBQWMsRUFDZCxvQkFBb0IsRUFDcEIsaUNBQWlDLEVBQ2pDLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsSUFBSSxHQUNMLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQVksd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXhGLE1BQU0sVUFBVSxlQUFlO0lBQzdCLE1BQU0sU0FBUyxHQUFHO1FBQ2hCO1lBQ0UsT0FBTyxFQUFFLFdBQVc7WUFDcEIsUUFBUSxFQUFFLGVBQWU7U0FDMUI7UUFDRDtZQUNFLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLFFBQVEsRUFBRSxhQUFhO1NBQ3hCO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsU0FBUztZQUNsQixRQUFRLEVBQUUsYUFBYTtTQUN4QjtRQUNEO1lBQ0UsT0FBTyxFQUFFLGNBQWM7WUFDdkIsUUFBUSxFQUFFLG1CQUFtQjtTQUM5QjtRQUNEO1lBQ0UsT0FBTyxFQUFFLG9CQUFvQjtZQUM3QixRQUFRLEVBQUUsV0FBVztTQUN0QjtRQUNEO1lBQ0UsT0FBTyxFQUFFLGlDQUFpQztZQUMxQyxRQUFRLEVBQUUsZ0JBQWdCO1NBQzNCO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxjQUFjO1lBQzNCLEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRCwrQkFBK0I7UUFDL0I7WUFDRSxPQUFPLEVBQUUsZUFBZTtZQUN4QixLQUFLLEVBQUUsSUFBSTtZQUNYLElBQUksRUFBRSxDQUFDLHlCQUF5QixDQUFDO1lBQ2pDLFVBQVUsRUFBRSxJQUFJO1NBQ2pCO1FBQ0QsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQXVCO1FBQzdDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUU7UUFDM0QsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFO0tBQzFFLENBQUM7SUFFRixPQUFPLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEF1dGhTZXJ2aWNlLFxyXG4gIEF1dGhHdWFyZCxcclxuICBhdXRoR3VhcmQsXHJcbiAgQXBpSW50ZXJjZXB0b3IsXHJcbiAgUElQRV9UT19MT0dJTl9GTl9LRVksXHJcbiAgQ0hFQ0tfQVVUSEVOVElDQVRJT05fU1RBVEVfRk5fS0VZLFxyXG4gIEFicExvY2FsU3RvcmFnZVNlcnZpY2UsXHJcbiAgQXV0aEVycm9yRmlsdGVyU2VydmljZSxcclxuICBub29wLFxyXG59IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgUHJvdmlkZXIsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT0F1dGhNb2R1bGUsIE9BdXRoU3RvcmFnZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xyXG5pbXBvcnQgeyBBYnBPQXV0aEd1YXJkLCBhYnBPQXV0aEd1YXJkIH0gZnJvbSAnLi4vZ3VhcmRzJztcclxuaW1wb3J0IHsgT0F1dGhDb25maWd1cmF0aW9uSGFuZGxlciB9IGZyb20gJy4uL2hhbmRsZXJzJztcclxuaW1wb3J0IHsgT0F1dGhBcGlJbnRlcmNlcHRvciB9IGZyb20gJy4uL2ludGVyY2VwdG9ycyc7XHJcbmltcG9ydCB7IEFicE9BdXRoU2VydmljZSwgT0F1dGhFcnJvckZpbHRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IHBpcGVUb0xvZ2luLCBjaGVja0FjY2Vzc1Rva2VuIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0ZVRvTWFuYWdlUHJvZmlsZVByb3ZpZGVyIH0gZnJvbSAnLi9uYXZpZ2F0ZS10by1tYW5hZ2UtcHJvZmlsZS5wcm92aWRlcic7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFicE9BdXRoKCkge1xyXG4gIGNvbnN0IHByb3ZpZGVycyA9IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQXV0aFNlcnZpY2UsXHJcbiAgICAgIHVzZUNsYXNzOiBBYnBPQXV0aFNlcnZpY2UsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBBdXRoR3VhcmQsXHJcbiAgICAgIHVzZUNsYXNzOiBBYnBPQXV0aEd1YXJkLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogYXV0aEd1YXJkLFxyXG4gICAgICB1c2VWYWx1ZTogYWJwT0F1dGhHdWFyZCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEFwaUludGVyY2VwdG9yLFxyXG4gICAgICB1c2VDbGFzczogT0F1dGhBcGlJbnRlcmNlcHRvcixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IFBJUEVfVE9fTE9HSU5fRk5fS0VZLFxyXG4gICAgICB1c2VWYWx1ZTogcGlwZVRvTG9naW4sXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBDSEVDS19BVVRIRU5USUNBVElPTl9TVEFURV9GTl9LRVksXHJcbiAgICAgIHVzZVZhbHVlOiBjaGVja0FjY2Vzc1Rva2VuLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBBcGlJbnRlcmNlcHRvcixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gICAgTmF2aWdhdGVUb01hbmFnZVByb2ZpbGVQcm92aWRlcixcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgZGVwczogW09BdXRoQ29uZmlndXJhdGlvbkhhbmRsZXJdLFxyXG4gICAgICB1c2VGYWN0b3J5OiBub29wLFxyXG4gICAgfSxcclxuICAgIE9BdXRoTW9kdWxlLmZvclJvb3QoKS5wcm92aWRlcnMgYXMgUHJvdmlkZXJbXSxcclxuICAgIHsgcHJvdmlkZTogT0F1dGhTdG9yYWdlLCB1c2VDbGFzczogQWJwTG9jYWxTdG9yYWdlU2VydmljZSB9LFxyXG4gICAgeyBwcm92aWRlOiBBdXRoRXJyb3JGaWx0ZXJTZXJ2aWNlLCB1c2VFeGlzdGluZzogT0F1dGhFcnJvckZpbHRlclNlcnZpY2UgfSxcclxuICBdO1xyXG5cclxuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKHByb3ZpZGVycyk7XHJcbn1cclxuIl19
|
|
@@ -33,11 +33,11 @@ export class OAuthErrorFilterService extends AbstractAuthErrorFilter {
|
|
|
33
33
|
.map(({ execute }) => execute(event))
|
|
34
34
|
.some(item => item);
|
|
35
35
|
}
|
|
36
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
37
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
36
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthErrorFilterService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
37
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthErrorFilterService, providedIn: 'root' }); }
|
|
38
38
|
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthErrorFilterService, decorators: [{
|
|
40
40
|
type: Injectable,
|
|
41
41
|
args: [{ providedIn: 'root' }]
|
|
42
42
|
}] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGgtZXJyb3ItZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9vYXV0aC9zcmMvbGliL3NlcnZpY2VzL29hdXRoLWVycm9yLWZpbHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSx1QkFBdUIsRUFBbUIsTUFBTSxjQUFjLENBQUM7O0FBR3hFLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSx1QkFHNUM7SUFKRDs7UUFLcUIsYUFBUSxHQUFHLE1BQU0sQ0FBMEMsRUFBRSxDQUFDLENBQUM7UUFDekUsWUFBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7S0FrQy9DO0lBaENDLEdBQUcsQ0FBQyxFQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsR0FBRyxDQUFDLE1BQXdDO1FBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxLQUFLLENBQUMsSUFBK0M7UUFDbkQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQVU7UUFDZixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsR0FBRyxDQUFDLEtBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRTthQUNsQixNQUFNLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO2FBQ3hDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDOzhHQXRDVSx1QkFBdUI7a0hBQXZCLHVCQUF1QixjQURWLE1BQU07OzJGQUNuQix1QkFBdUI7a0JBRG5DLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9BdXRoRXJyb3JFdmVudCB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdEF1dGhFcnJvckZpbHRlciwgQXV0aEVycm9yRmlsdGVyIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBPQXV0aEVycm9yRmlsdGVyU2VydmljZSBleHRlbmRzIEFic3RyYWN0QXV0aEVycm9yRmlsdGVyPFxyXG4gIEF1dGhFcnJvckZpbHRlcjxPQXV0aEVycm9yRXZlbnQ+LFxyXG4gIE9BdXRoRXJyb3JFdmVudFxyXG4+IHtcclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2ZpbHRlcnMgPSBzaWduYWw8QXJyYXk8QXV0aEVycm9yRmlsdGVyPE9BdXRoRXJyb3JFdmVudD4+PihbXSk7XHJcbiAgcmVhZG9ubHkgZmlsdGVycyA9IHRoaXMuX2ZpbHRlcnMuYXNSZWFkb25seSgpO1xyXG5cclxuICBnZXQoaWQ6IHN0cmluZyk6IEF1dGhFcnJvckZpbHRlcjxPQXV0aEVycm9yRXZlbnQ+IHtcclxuICAgIHJldHVybiB0aGlzLl9maWx0ZXJzKCkuZmluZCgoeyBpZDogX2lkIH0pID0+IF9pZCA9PT0gaWQpO1xyXG4gIH1cclxuXHJcbiAgYWRkKGZpbHRlcjogQXV0aEVycm9yRmlsdGVyPE9BdXRoRXJyb3JFdmVudD4pOiB2b2lkIHtcclxuICAgIHRoaXMuX2ZpbHRlcnMudXBkYXRlKGl0ZW1zID0+IFsuLi5pdGVtcywgZmlsdGVyXSk7XHJcbiAgfVxyXG5cclxuICBwYXRjaChpdGVtOiBQYXJ0aWFsPEF1dGhFcnJvckZpbHRlcjxPQXV0aEVycm9yRXZlbnQ+Pik6IHZvaWQge1xyXG4gICAgY29uc3QgX2l0ZW0gPSB0aGlzLmZpbHRlcnMoKS5maW5kKCh7IGlkIH0pID0+IGlkID09PSBpdGVtLmlkKTtcclxuICAgIGlmICghX2l0ZW0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIE9iamVjdC5hc3NpZ24oX2l0ZW0sIGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZpbHRlcnMoKS5maW5kKCh7IGlkOiBfaWQgfSkgPT4gX2lkID09PSBpZCk7XHJcbiAgICBpZiAoIWl0ZW0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX2ZpbHRlcnMudXBkYXRlKGl0ZW1zID0+IGl0ZW1zLmZpbHRlcigoeyBpZDogX2lkIH0pID0+IF9pZCAhPT0gaWQpKTtcclxuICB9XHJcblxyXG4gIHJ1bihldmVudDogT0F1dGhFcnJvckV2ZW50KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJzKClcclxuICAgICAgLmZpbHRlcigoeyBleGVjdXRhYmxlIH0pID0+ICEhZXhlY3V0YWJsZSlcclxuICAgICAgLm1hcCgoeyBleGVjdXRlIH0pID0+IGV4ZWN1dGUoZXZlbnQpKVxyXG4gICAgICAuc29tZShpdGVtID0+IGl0ZW0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -70,13 +70,13 @@ export class AbpOAuthService {
|
|
|
70
70
|
getAccessTokenExpiration() {
|
|
71
71
|
return this.oAuthService.getAccessTokenExpiration();
|
|
72
72
|
}
|
|
73
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
74
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
73
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
74
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthService, providedIn: 'root' }); }
|
|
75
75
|
}
|
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthService, decorators: [{
|
|
77
77
|
type: Injectable,
|
|
78
78
|
args: [{
|
|
79
79
|
providedIn: 'root',
|
|
80
80
|
}]
|
|
81
81
|
}], ctorParameters: () => [{ type: i0.Injector }] });
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL29hdXRoL3NyYy9saWIvc2VydmljZXMvb2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRCxPQUFPLEVBQUUsSUFBSSxFQUFjLGFBQWEsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUduRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQU1uRCxNQUFNLE9BQU8sZUFBZTtJQUkxQixJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLO1FBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBc0IsUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUN0QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFFB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bmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBsYXN0VmFsdWVGcm9tLCBFTVBUWSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFicEF1dGhSZXNwb25zZSwgSUF1dGhTZXJ2aWNlLCBMb2dpblBhcmFtcyB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IEF1dGhGbG93U3RyYXRlZ3kgfSBmcm9tICcuLi9zdHJhdGVnaWVzJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgQVVUSF9GTE9XX1NUUkFURUdZIH0gZnJvbSAnLi4vdG9rZW5zL2F1dGgtZmxvdy1zdHJhdGVneSc7XHJcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xyXG5pbXBvcnQgeyBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBYnBPQXV0aFNlcnZpY2UgaW1wbGVtZW50cyBJQXV0aFNlcnZpY2Uge1xyXG4gIHByaXZhdGUgc3RyYXRlZ3khOiBBdXRoRmxvd1N0cmF0ZWd5O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgb0F1dGhTZXJ2aWNlOiBPQXV0aFNlcnZpY2U7XHJcblxyXG4gIGdldCBvaWRjKCkge1xyXG4gICAgcmV0dXJuIHRoaXMub0F1dGhTZXJ2aWNlLm9pZGM7XHJcbiAgfVxyXG5cclxuICBzZXQgb2lkYyh2YWx1ZSkge1xyXG4gICAgdGhpcy5vQXV0aFNlcnZpY2Uub2lkYyA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzSW50ZXJuYWxBdXRoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RyYXRlZ3kuaXNJbnRlcm5hbEF1dGg7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICB0aGlzLm9BdXRoU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KE9BdXRoU2VydmljZSk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBpbml0KCkge1xyXG4gICAgY29uc3QgZW52aXJvbm1lbnRTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoRW52aXJvbm1lbnRTZXJ2aWNlKTtcclxuXHJcbiAgICBjb25zdCByZXN1bHQkID0gZW52aXJvbm1lbnRTZXJ2aWNlLmdldEVudmlyb25tZW50JCgpLnBpcGUoXHJcbiAgICAgIG1hcChlbnYgPT4gZW52Py5vQXV0aENvbmZpZyksXHJcbiAgICAgIGZpbHRlcihCb29sZWFuKSxcclxuICAgICAgdGFwKG9BdXRoQ29uZmlnID0+IHtcclxuICAgICAgICB0aGlzLnN0cmF0ZWd5ID1cclxuICAgICAgICAgIG9BdXRoQ29uZmlnLnJlc3BvbnNlVHlwZSA9PT0gJ2NvZGUnXHJcbiAgICAgICAgICAgID8gQVVUSF9GTE9XX1NUUkFURUdZLkNvZGUodGhpcy5pbmplY3RvcilcclxuICAgICAgICAgICAgOiBBVVRIX0ZMT1dfU1RSQVRFR1kuUGFzc3dvcmQodGhpcy5pbmplY3Rvcik7XHJcbiAgICAgIH0pLFxyXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gZnJvbSh0aGlzLnN0cmF0ZWd5LmluaXQoKSkpLFxyXG4gICAgICB0YWtlKDEpLFxyXG4gICAgKTtcclxuXHJcbiAgICByZXR1cm4gYXdhaXQgbGFzdFZhbHVlRnJvbShyZXN1bHQkKTtcclxuICB9XHJcblxyXG4gIGxvZ291dChxdWVyeVBhcmFtcz86IFBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBpZiAoIXRoaXMuc3RyYXRlZ3kpIHtcclxuICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnN0cmF0ZWd5LmxvZ291dChxdWVyeVBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBuYXZpZ2F0ZVRvTG9naW4ocXVlcnlQYXJhbXM/OiBQYXJhbXMpIHtcclxuICAgIHRoaXMuc3RyYXRlZ3kubmF2aWdhdGVUb0xvZ2luKHF1ZXJ5UGFyYW1zKTtcclxuICB9XHJcblxyXG4gIGxvZ2luKHBhcmFtczogTG9naW5QYXJhbXMpIHtcclxuICAgIHJldHVybiB0aGlzLnN0cmF0ZWd5LmxvZ2luKHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMub0F1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKTtcclxuICB9XHJcblxyXG4gIGxvZ2luVXNpbmdHcmFudChcclxuICAgIGdyYW50VHlwZTogc3RyaW5nLFxyXG4gICAgcGFyYW1ldGVyczogb2JqZWN0LFxyXG4gICAgaGVhZGVycz86IEh0dHBIZWFkZXJzLFxyXG4gICk6IFByb21pc2U8QWJwQXV0aFJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCB7IGNsaWVudElkOiBjbGllbnRfaWQsIGR1bW15Q2xpZW50U2VjcmV0OiBjbGllbnRfc2VjcmV0IH0gPSB0aGlzLm9BdXRoU2VydmljZTtcclxuICAgIGNvbnN0IGFjY2Vzc190b2tlbiA9IHRoaXMub0F1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCk7XHJcbiAgICBjb25zdCBwID0ge1xyXG4gICAgICBhY2Nlc3NfdG9rZW4sXHJcbiAgICAgIGdyYW50X3R5cGU6IGdyYW50VHlwZSxcclxuICAgICAgY2xpZW50X2lkLFxyXG4gICAgICAuLi5wYXJhbWV0ZXJzLFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAoY2xpZW50X3NlY3JldCkge1xyXG4gICAgICBwWydjbGllbnRfc2VjcmV0J10gPSBjbGllbnRfc2VjcmV0O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLm9BdXRoU2VydmljZS5mZXRjaFRva2VuVXNpbmdHcmFudChncmFudFR5cGUsIHAsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVmcmVzaFRva2VuKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5vQXV0aFNlcnZpY2UuZ2V0UmVmcmVzaFRva2VuKCk7XHJcbiAgfVxyXG5cclxuICBnZXRBY2Nlc3NUb2tlbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMub0F1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCk7XHJcbiAgfVxyXG5cclxuICByZWZyZXNoVG9rZW4oKTogUHJvbWlzZTxBYnBBdXRoUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLm9BdXRoU2VydmljZS5yZWZyZXNoVG9rZW4oKTtcclxuICB9XHJcblxyXG4gIGdldEFjY2Vzc1Rva2VuRXhwaXJhdGlvbigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMub0F1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuRXhwaXJhdGlvbigpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -21,13 +21,13 @@ export class RememberMeService {
|
|
|
21
21
|
const parsedToken = JSON.parse(atob(tokenBody));
|
|
22
22
|
return Boolean(parsedToken[this.#rememberMe]);
|
|
23
23
|
}
|
|
24
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
25
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: RememberMeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
25
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: RememberMeService, providedIn: 'root' }); }
|
|
26
26
|
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: RememberMeService, decorators: [{
|
|
28
28
|
type: Injectable,
|
|
29
29
|
args: [{
|
|
30
30
|
providedIn: 'root',
|
|
31
31
|
}]
|
|
32
32
|
}] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtZW1iZXItbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL29hdXRoL3NyYy9saWIvc2VydmljZXMvcmVtZW1iZXItbWUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS25ELE1BQU0sT0FBTyxpQkFBaUI7SUFIOUI7UUFJVyxnQkFBVyxHQUFHLGFBQWEsQ0FBQztRQUNsQix3QkFBbUIsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztLQW1CekU7SUFwQlUsV0FBVyxDQUFpQjtJQUdyQyxHQUFHLENBQUMsUUFBaUI7UUFDbkIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxHQUFHO1FBQ0QsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFFRCxZQUFZLENBQUMsV0FBbUI7UUFDOUIsTUFBTSxTQUFTLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNoRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQzs4R0FwQlUsaUJBQWlCO2tIQUFqQixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFicExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZW1lbWJlck1lU2VydmljZSB7XHJcbiAgcmVhZG9ubHkgI3JlbWVtYmVyTWUgPSAncmVtZW1iZXJfbWUnO1xyXG4gIHByb3RlY3RlZCByZWFkb25seSBsb2NhbFN0b3JhZ2VTZXJ2aWNlID0gaW5qZWN0KEFicExvY2FsU3RvcmFnZVNlcnZpY2UpO1xyXG5cclxuICBzZXQocmVtZW1iZXI6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXRJdGVtKHRoaXMuI3JlbWVtYmVyTWUsIEpTT04uc3RyaW5naWZ5KHJlbWVtYmVyKSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmUoKSB7XHJcbiAgICB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSh0aGlzLiNyZW1lbWJlck1lKTtcclxuICB9XHJcblxyXG4gIGdldCgpIHtcclxuICAgIHJldHVybiBCb29sZWFuKEpTT04ucGFyc2UodGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0odGhpcy4jcmVtZW1iZXJNZSkgfHwgJ2ZhbHNlJykpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RnJvbVRva2VuKGFjY2Vzc1Rva2VuOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHRva2VuQm9keSA9IGFjY2Vzc1Rva2VuLnNwbGl0KCcuJylbMV0ucmVwbGFjZSgvLS9nLCAnKycpLnJlcGxhY2UoL18vZywgJy8nKTtcclxuICAgIGNvbnN0IHBhcnNlZFRva2VuID0gSlNPTi5wYXJzZShhdG9iKHRva2VuQm9keSkpO1xyXG4gICAgcmV0dXJuIEJvb2xlYW4ocGFyc2VkVG9rZW5bdGhpcy4jcmVtZW1iZXJNZV0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,15 +1,146 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, Injectable,
|
|
3
|
-
import
|
|
2
|
+
import { inject, Injectable, Inject, signal, APP_INITIALIZER, makeEnvironmentProviders, NgModule } from '@angular/core';
|
|
3
|
+
import * as i2 from '@abp/ng.core';
|
|
4
|
+
import { NAVIGATE_TO_MANAGE_PROFILE, EnvironmentService, AuthService, CORE_OPTIONS, IS_EXTERNAL_REQUEST, TENANT_KEY, AbpLocalStorageService, ConfigStateService, HttpErrorReporterService, SessionStateService, noop, AbstractAuthErrorFilter, AuthGuard, authGuard, ApiInterceptor, PIPE_TO_LOGIN_FN_KEY, CHECK_AUTHENTICATION_STATE_FN_KEY, AuthErrorFilterService } from '@abp/ng.core';
|
|
4
5
|
import { HttpHeaders, HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
5
6
|
import * as i1 from 'angular-oauth2-oidc';
|
|
6
7
|
import { OAuthService, OAuthErrorEvent, OAuthInfoEvent, OAuthModule, OAuthStorage } from 'angular-oauth2-oidc';
|
|
7
|
-
import
|
|
8
|
-
import {
|
|
8
|
+
import compare from 'just-compare';
|
|
9
|
+
import { map, filter, finalize, switchMap, tap, take } from 'rxjs/operators';
|
|
9
10
|
import { pipe, of, from, lastValueFrom, EMPTY } from 'rxjs';
|
|
10
|
-
import { switchMap, tap, filter, take, map, finalize } from 'rxjs/operators';
|
|
11
11
|
import { Router } from '@angular/router';
|
|
12
|
-
|
|
12
|
+
|
|
13
|
+
const NavigateToManageProfileProvider = {
|
|
14
|
+
provide: NAVIGATE_TO_MANAGE_PROFILE,
|
|
15
|
+
useFactory: () => {
|
|
16
|
+
const environment = inject(EnvironmentService);
|
|
17
|
+
return () => {
|
|
18
|
+
const env = environment.getEnvironment();
|
|
19
|
+
if (!env.oAuthConfig) {
|
|
20
|
+
console.warn('The oAuthConfig env is missing on environment.ts');
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const { issuer } = env.oAuthConfig;
|
|
24
|
+
const path = issuer.endsWith('/') ? issuer : `${issuer}/`;
|
|
25
|
+
window.open(`${path}Account/Manage?returnUrl=${window.location.href}`, '_self');
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated Use `abpOAuthGuard` *function* instead.
|
|
32
|
+
*/
|
|
33
|
+
class AbpOAuthGuard {
|
|
34
|
+
constructor() {
|
|
35
|
+
this.oAuthService = inject(OAuthService);
|
|
36
|
+
this.authService = inject(AuthService);
|
|
37
|
+
}
|
|
38
|
+
canActivate(route, state) {
|
|
39
|
+
const hasValidAccessToken = this.oAuthService.hasValidAccessToken();
|
|
40
|
+
if (hasValidAccessToken) {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
const params = { returnUrl: state.url };
|
|
44
|
+
this.authService.navigateToLogin(params);
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
48
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthGuard, providedIn: 'root' }); }
|
|
49
|
+
}
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthGuard, decorators: [{
|
|
51
|
+
type: Injectable,
|
|
52
|
+
args: [{
|
|
53
|
+
providedIn: 'root',
|
|
54
|
+
}]
|
|
55
|
+
}] });
|
|
56
|
+
const abpOAuthGuard = (route, state) => {
|
|
57
|
+
const oAuthService = inject(OAuthService);
|
|
58
|
+
const authService = inject(AuthService);
|
|
59
|
+
const hasValidAccessToken = oAuthService.hasValidAccessToken();
|
|
60
|
+
if (hasValidAccessToken) {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
const params = { returnUrl: state.url };
|
|
64
|
+
authService.navigateToLogin(params);
|
|
65
|
+
return false;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
class OAuthConfigurationHandler {
|
|
69
|
+
constructor(oAuthService, environmentService, options) {
|
|
70
|
+
this.oAuthService = oAuthService;
|
|
71
|
+
this.environmentService = environmentService;
|
|
72
|
+
this.options = options;
|
|
73
|
+
this.listenToSetEnvironment();
|
|
74
|
+
}
|
|
75
|
+
listenToSetEnvironment() {
|
|
76
|
+
this.environmentService
|
|
77
|
+
.createOnUpdateStream(state => state)
|
|
78
|
+
.pipe(map(environment => environment.oAuthConfig), filter(config => !compare(config, this.options.environment.oAuthConfig)))
|
|
79
|
+
.subscribe((config) => {
|
|
80
|
+
this.oAuthService.configure(config);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthConfigurationHandler, deps: [{ token: i1.OAuthService }, { token: i2.EnvironmentService }, { token: CORE_OPTIONS }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
84
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthConfigurationHandler, providedIn: 'root' }); }
|
|
85
|
+
}
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthConfigurationHandler, decorators: [{
|
|
87
|
+
type: Injectable,
|
|
88
|
+
args: [{
|
|
89
|
+
providedIn: 'root',
|
|
90
|
+
}]
|
|
91
|
+
}], ctorParameters: () => [{ type: i1.OAuthService }, { type: i2.EnvironmentService }, { type: undefined, decorators: [{
|
|
92
|
+
type: Inject,
|
|
93
|
+
args: [CORE_OPTIONS]
|
|
94
|
+
}] }] });
|
|
95
|
+
|
|
96
|
+
class OAuthApiInterceptor {
|
|
97
|
+
constructor(oAuthService, sessionState, httpWaitService, tenantKey) {
|
|
98
|
+
this.oAuthService = oAuthService;
|
|
99
|
+
this.sessionState = sessionState;
|
|
100
|
+
this.httpWaitService = httpWaitService;
|
|
101
|
+
this.tenantKey = tenantKey;
|
|
102
|
+
}
|
|
103
|
+
intercept(request, next) {
|
|
104
|
+
this.httpWaitService.addRequest(request);
|
|
105
|
+
const isExternalRequest = request.context?.get(IS_EXTERNAL_REQUEST);
|
|
106
|
+
const newRequest = isExternalRequest
|
|
107
|
+
? request
|
|
108
|
+
: request.clone({
|
|
109
|
+
setHeaders: this.getAdditionalHeaders(request.headers),
|
|
110
|
+
});
|
|
111
|
+
return next
|
|
112
|
+
.handle(newRequest)
|
|
113
|
+
.pipe(finalize(() => this.httpWaitService.deleteRequest(request)));
|
|
114
|
+
}
|
|
115
|
+
getAdditionalHeaders(existingHeaders) {
|
|
116
|
+
const headers = {};
|
|
117
|
+
const token = this.oAuthService.getAccessToken();
|
|
118
|
+
if (!existingHeaders?.has('Authorization') && token) {
|
|
119
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
120
|
+
}
|
|
121
|
+
const lang = this.sessionState.getLanguage();
|
|
122
|
+
if (!existingHeaders?.has('Accept-Language') && lang) {
|
|
123
|
+
headers['Accept-Language'] = lang;
|
|
124
|
+
}
|
|
125
|
+
const tenant = this.sessionState.getTenant();
|
|
126
|
+
if (!existingHeaders?.has(this.tenantKey) && tenant?.id) {
|
|
127
|
+
headers[this.tenantKey] = tenant.id;
|
|
128
|
+
}
|
|
129
|
+
headers['X-Requested-With'] = 'XMLHttpRequest';
|
|
130
|
+
return headers;
|
|
131
|
+
}
|
|
132
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthApiInterceptor, deps: [{ token: i1.OAuthService }, { token: i2.SessionStateService }, { token: i2.HttpWaitService }, { token: TENANT_KEY }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
133
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthApiInterceptor, providedIn: 'root' }); }
|
|
134
|
+
}
|
|
135
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthApiInterceptor, decorators: [{
|
|
136
|
+
type: Injectable,
|
|
137
|
+
args: [{
|
|
138
|
+
providedIn: 'root',
|
|
139
|
+
}]
|
|
140
|
+
}], ctorParameters: () => [{ type: i1.OAuthService }, { type: i2.SessionStateService }, { type: i2.HttpWaitService }, { type: undefined, decorators: [{
|
|
141
|
+
type: Inject,
|
|
142
|
+
args: [TENANT_KEY]
|
|
143
|
+
}] }] });
|
|
13
144
|
|
|
14
145
|
const oAuthStorage = localStorage;
|
|
15
146
|
|
|
@@ -55,10 +186,10 @@ class RememberMeService {
|
|
|
55
186
|
const parsedToken = JSON.parse(atob(tokenBody));
|
|
56
187
|
return Boolean(parsedToken[this.#rememberMe]);
|
|
57
188
|
}
|
|
58
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
59
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
189
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: RememberMeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
190
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: RememberMeService, providedIn: 'root' }); }
|
|
60
191
|
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
192
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: RememberMeService, decorators: [{
|
|
62
193
|
type: Injectable,
|
|
63
194
|
args: [{
|
|
64
195
|
providedIn: 'root',
|
|
@@ -366,10 +497,10 @@ class AbpOAuthService {
|
|
|
366
497
|
getAccessTokenExpiration() {
|
|
367
498
|
return this.oAuthService.getAccessTokenExpiration();
|
|
368
499
|
}
|
|
369
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
370
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
500
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
501
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthService, providedIn: 'root' }); }
|
|
371
502
|
}
|
|
372
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
503
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthService, decorators: [{
|
|
373
504
|
type: Injectable,
|
|
374
505
|
args: [{
|
|
375
506
|
providedIn: 'root',
|
|
@@ -408,207 +539,80 @@ class OAuthErrorFilterService extends AbstractAuthErrorFilter {
|
|
|
408
539
|
.map(({ execute }) => execute(event))
|
|
409
540
|
.some(item => item);
|
|
410
541
|
}
|
|
411
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
412
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
542
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthErrorFilterService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
543
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthErrorFilterService, providedIn: 'root' }); }
|
|
413
544
|
}
|
|
414
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
545
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: OAuthErrorFilterService, decorators: [{
|
|
415
546
|
type: Injectable,
|
|
416
547
|
args: [{ providedIn: 'root' }]
|
|
417
548
|
}] });
|
|
418
549
|
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
return next
|
|
463
|
-
.handle(newRequest)
|
|
464
|
-
.pipe(finalize(() => this.httpWaitService.deleteRequest(request)));
|
|
465
|
-
}
|
|
466
|
-
getAdditionalHeaders(existingHeaders) {
|
|
467
|
-
const headers = {};
|
|
468
|
-
const token = this.oAuthService.getAccessToken();
|
|
469
|
-
if (!existingHeaders?.has('Authorization') && token) {
|
|
470
|
-
headers['Authorization'] = `Bearer ${token}`;
|
|
471
|
-
}
|
|
472
|
-
const lang = this.sessionState.getLanguage();
|
|
473
|
-
if (!existingHeaders?.has('Accept-Language') && lang) {
|
|
474
|
-
headers['Accept-Language'] = lang;
|
|
475
|
-
}
|
|
476
|
-
const tenant = this.sessionState.getTenant();
|
|
477
|
-
if (!existingHeaders?.has(this.tenantKey) && tenant?.id) {
|
|
478
|
-
headers[this.tenantKey] = tenant.id;
|
|
479
|
-
}
|
|
480
|
-
headers['X-Requested-With'] = 'XMLHttpRequest';
|
|
481
|
-
return headers;
|
|
482
|
-
}
|
|
483
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OAuthApiInterceptor, deps: [{ token: i1.OAuthService }, { token: i2.SessionStateService }, { token: i2.HttpWaitService }, { token: TENANT_KEY }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
484
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OAuthApiInterceptor, providedIn: 'root' }); }
|
|
550
|
+
function provideAbpOAuth() {
|
|
551
|
+
const providers = [
|
|
552
|
+
{
|
|
553
|
+
provide: AuthService,
|
|
554
|
+
useClass: AbpOAuthService,
|
|
555
|
+
},
|
|
556
|
+
{
|
|
557
|
+
provide: AuthGuard,
|
|
558
|
+
useClass: AbpOAuthGuard,
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
provide: authGuard,
|
|
562
|
+
useValue: abpOAuthGuard,
|
|
563
|
+
},
|
|
564
|
+
{
|
|
565
|
+
provide: ApiInterceptor,
|
|
566
|
+
useClass: OAuthApiInterceptor,
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
provide: PIPE_TO_LOGIN_FN_KEY,
|
|
570
|
+
useValue: pipeToLogin,
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
provide: CHECK_AUTHENTICATION_STATE_FN_KEY,
|
|
574
|
+
useValue: checkAccessToken,
|
|
575
|
+
},
|
|
576
|
+
{
|
|
577
|
+
provide: HTTP_INTERCEPTORS,
|
|
578
|
+
useExisting: ApiInterceptor,
|
|
579
|
+
multi: true,
|
|
580
|
+
},
|
|
581
|
+
NavigateToManageProfileProvider,
|
|
582
|
+
{
|
|
583
|
+
provide: APP_INITIALIZER,
|
|
584
|
+
multi: true,
|
|
585
|
+
deps: [OAuthConfigurationHandler],
|
|
586
|
+
useFactory: noop,
|
|
587
|
+
},
|
|
588
|
+
OAuthModule.forRoot().providers,
|
|
589
|
+
{ provide: OAuthStorage, useClass: AbpLocalStorageService },
|
|
590
|
+
{ provide: AuthErrorFilterService, useExisting: OAuthErrorFilterService },
|
|
591
|
+
];
|
|
592
|
+
return makeEnvironmentProviders(providers);
|
|
485
593
|
}
|
|
486
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OAuthApiInterceptor, decorators: [{
|
|
487
|
-
type: Injectable,
|
|
488
|
-
args: [{
|
|
489
|
-
providedIn: 'root',
|
|
490
|
-
}]
|
|
491
|
-
}], ctorParameters: () => [{ type: i1.OAuthService }, { type: i2.SessionStateService }, { type: i2.HttpWaitService }, { type: undefined, decorators: [{
|
|
492
|
-
type: Inject,
|
|
493
|
-
args: [TENANT_KEY]
|
|
494
|
-
}] }] });
|
|
495
594
|
|
|
496
595
|
/**
|
|
497
|
-
* @deprecated
|
|
596
|
+
* @deprecated AbpOAuthModule is deprecated use `provideAbpOAuth` *function* instead.
|
|
498
597
|
*/
|
|
499
|
-
class AbpOAuthGuard {
|
|
500
|
-
constructor() {
|
|
501
|
-
this.oAuthService = inject(OAuthService);
|
|
502
|
-
this.authService = inject(AuthService);
|
|
503
|
-
}
|
|
504
|
-
canActivate(route, state) {
|
|
505
|
-
const hasValidAccessToken = this.oAuthService.hasValidAccessToken();
|
|
506
|
-
if (hasValidAccessToken) {
|
|
507
|
-
return true;
|
|
508
|
-
}
|
|
509
|
-
const params = { returnUrl: state.url };
|
|
510
|
-
this.authService.navigateToLogin(params);
|
|
511
|
-
return false;
|
|
512
|
-
}
|
|
513
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbpOAuthGuard, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
514
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbpOAuthGuard, providedIn: 'root' }); }
|
|
515
|
-
}
|
|
516
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbpOAuthGuard, decorators: [{
|
|
517
|
-
type: Injectable,
|
|
518
|
-
args: [{
|
|
519
|
-
providedIn: 'root',
|
|
520
|
-
}]
|
|
521
|
-
}] });
|
|
522
|
-
const abpOAuthGuard = (route, state) => {
|
|
523
|
-
const oAuthService = inject(OAuthService);
|
|
524
|
-
const authService = inject(AuthService);
|
|
525
|
-
const hasValidAccessToken = oAuthService.hasValidAccessToken();
|
|
526
|
-
if (hasValidAccessToken) {
|
|
527
|
-
return true;
|
|
528
|
-
}
|
|
529
|
-
const params = { returnUrl: state.url };
|
|
530
|
-
authService.navigateToLogin(params);
|
|
531
|
-
return false;
|
|
532
|
-
};
|
|
533
|
-
|
|
534
|
-
const NavigateToManageProfileProvider = {
|
|
535
|
-
provide: NAVIGATE_TO_MANAGE_PROFILE,
|
|
536
|
-
useFactory: () => {
|
|
537
|
-
const environment = inject(EnvironmentService);
|
|
538
|
-
return () => {
|
|
539
|
-
const env = environment.getEnvironment();
|
|
540
|
-
if (!env.oAuthConfig) {
|
|
541
|
-
console.warn('The oAuthConfig env is missing on environment.ts');
|
|
542
|
-
return;
|
|
543
|
-
}
|
|
544
|
-
const { issuer } = env.oAuthConfig;
|
|
545
|
-
const path = issuer.endsWith('/') ? issuer : `${issuer}/`;
|
|
546
|
-
window.open(`${path}Account/Manage?returnUrl=${window.location.href}`, '_self');
|
|
547
|
-
};
|
|
548
|
-
},
|
|
549
|
-
};
|
|
550
|
-
|
|
551
598
|
class AbpOAuthModule {
|
|
552
599
|
static forRoot() {
|
|
553
600
|
return {
|
|
554
601
|
ngModule: AbpOAuthModule,
|
|
555
|
-
providers: [
|
|
556
|
-
{
|
|
557
|
-
provide: AuthService,
|
|
558
|
-
useClass: AbpOAuthService,
|
|
559
|
-
},
|
|
560
|
-
{
|
|
561
|
-
provide: AuthGuard,
|
|
562
|
-
useClass: AbpOAuthGuard,
|
|
563
|
-
},
|
|
564
|
-
{
|
|
565
|
-
provide: authGuard,
|
|
566
|
-
useValue: abpOAuthGuard,
|
|
567
|
-
},
|
|
568
|
-
{
|
|
569
|
-
provide: ApiInterceptor,
|
|
570
|
-
useClass: OAuthApiInterceptor,
|
|
571
|
-
},
|
|
572
|
-
{
|
|
573
|
-
provide: PIPE_TO_LOGIN_FN_KEY,
|
|
574
|
-
useValue: pipeToLogin,
|
|
575
|
-
},
|
|
576
|
-
{
|
|
577
|
-
provide: CHECK_AUTHENTICATION_STATE_FN_KEY,
|
|
578
|
-
useValue: checkAccessToken,
|
|
579
|
-
},
|
|
580
|
-
{
|
|
581
|
-
provide: HTTP_INTERCEPTORS,
|
|
582
|
-
useExisting: ApiInterceptor,
|
|
583
|
-
multi: true,
|
|
584
|
-
},
|
|
585
|
-
NavigateToManageProfileProvider,
|
|
586
|
-
{
|
|
587
|
-
provide: APP_INITIALIZER,
|
|
588
|
-
multi: true,
|
|
589
|
-
deps: [OAuthConfigurationHandler],
|
|
590
|
-
useFactory: noop,
|
|
591
|
-
},
|
|
592
|
-
OAuthModule.forRoot().providers,
|
|
593
|
-
{ provide: OAuthStorage, useClass: AbpLocalStorageService },
|
|
594
|
-
{ provide: AuthErrorFilterService, useExisting: OAuthErrorFilterService },
|
|
595
|
-
],
|
|
602
|
+
providers: [provideAbpOAuth()],
|
|
596
603
|
};
|
|
597
604
|
}
|
|
598
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
599
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
600
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
605
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
606
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthModule }); }
|
|
607
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthModule }); }
|
|
601
608
|
}
|
|
602
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
603
|
-
type: NgModule
|
|
604
|
-
args: [{
|
|
605
|
-
imports: [CommonModule, OAuthModule],
|
|
606
|
-
}]
|
|
609
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: AbpOAuthModule, decorators: [{
|
|
610
|
+
type: NgModule
|
|
607
611
|
}] });
|
|
608
612
|
|
|
609
613
|
/**
|
|
610
614
|
* Generated bundle index. Do not edit.
|
|
611
615
|
*/
|
|
612
616
|
|
|
613
|
-
export { AUTH_FLOW_STRATEGY, AbpOAuthGuard, AbpOAuthModule, AbpOAuthService, AuthCodeFlowStrategy, AuthFlowStrategy, AuthPasswordFlowStrategy, NavigateToManageProfileProvider, OAuthApiInterceptor, OAuthConfigurationHandler, OAuthErrorFilterService, RememberMeService, abpOAuthGuard, checkAccessToken, clearOAuthStorage, isTokenExpired, oAuthStorage, pipeToLogin, storageFactory };
|
|
617
|
+
export { AUTH_FLOW_STRATEGY, AbpOAuthGuard, AbpOAuthModule, AbpOAuthService, AuthCodeFlowStrategy, AuthFlowStrategy, AuthPasswordFlowStrategy, NavigateToManageProfileProvider, OAuthApiInterceptor, OAuthConfigurationHandler, OAuthErrorFilterService, RememberMeService, abpOAuthGuard, checkAccessToken, clearOAuthStorage, isTokenExpired, oAuthStorage, pipeToLogin, provideAbpOAuth, storageFactory };
|
|
614
618
|
//# sourceMappingURL=abp-ng.oauth.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abp-ng.oauth.mjs","sources":["../../../../packages/oauth/src/lib/utils/oauth-storage.ts","../../../../packages/oauth/src/lib/utils/clear-o-auth-storage.ts","../../../../packages/oauth/src/lib/utils/storage.factory.ts","../../../../packages/oauth/src/lib/services/remember-me.service.ts","../../../../packages/oauth/src/lib/utils/auth-utils.ts","../../../../packages/oauth/src/lib/utils/check-access-token.ts","../../../../packages/oauth/src/lib/strategies/auth-flow-strategy.ts","../../../../packages/oauth/src/lib/strategies/auth-code-flow-strategy.ts","../../../../packages/oauth/src/lib/strategies/auth-password-flow-strategy.ts","../../../../packages/oauth/src/lib/tokens/auth-flow-strategy.ts","../../../../packages/oauth/src/lib/services/oauth.service.ts","../../../../packages/oauth/src/lib/services/oauth-error-filter.service.ts","../../../../packages/oauth/src/lib/handlers/oauth-configuration.handler.ts","../../../../packages/oauth/src/lib/interceptors/api.interceptor.ts","../../../../packages/oauth/src/lib/guards/oauth.guard.ts","../../../../packages/oauth/src/lib/providers/navigate-to-manage-profile.provider.ts","../../../../packages/oauth/src/lib/oauth.module.ts","../../../../packages/oauth/src/abp-ng.oauth.ts"],"sourcesContent":["export const oAuthStorage = localStorage;\r\n","import { OAuthStorage } from 'angular-oauth2-oidc';\r\nimport { oAuthStorage } from './oauth-storage';\r\n\r\nexport function clearOAuthStorage(storage: OAuthStorage = oAuthStorage) {\r\n const keys = [\r\n 'access_token',\r\n 'id_token',\r\n 'refresh_token',\r\n 'nonce',\r\n 'PKCE_verifier',\r\n 'expires_at',\r\n 'id_token_claims_obj',\r\n 'id_token_expires_at',\r\n 'id_token_stored_at',\r\n 'access_token_stored_at',\r\n 'granted_scopes',\r\n 'session_state',\r\n ];\r\n\r\n keys.forEach(key => storage.removeItem(key));\r\n}\r\n","import { OAuthStorage } from 'angular-oauth2-oidc';\r\nimport { oAuthStorage } from './oauth-storage';\r\n\r\nexport function storageFactory(): OAuthStorage {\r\n return oAuthStorage;\r\n}\r\n","import { AbpLocalStorageService } from '@abp/ng.core';\r\nimport { Injectable, inject } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RememberMeService {\r\n readonly #rememberMe = 'remember_me';\r\n protected readonly localStorageService = inject(AbpLocalStorageService);\r\n\r\n set(remember: boolean) {\r\n this.localStorageService.setItem(this.#rememberMe, JSON.stringify(remember));\r\n }\r\n\r\n remove() {\r\n this.localStorageService.removeItem(this.#rememberMe);\r\n }\r\n\r\n get() {\r\n return Boolean(JSON.parse(this.localStorageService.getItem(this.#rememberMe) || 'false'));\r\n }\r\n\r\n getFromToken(accessToken: string) {\r\n const tokenBody = accessToken.split('.')[1].replace(/-/g, '+').replace(/_/g, '/');\r\n const parsedToken = JSON.parse(atob(tokenBody));\r\n return Boolean(parsedToken[this.#rememberMe]);\r\n }\r\n}\r\n","import { Injector } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { pipe } from 'rxjs';\r\nimport { switchMap, tap } from 'rxjs/operators';\r\nimport {\r\n AuthService,\r\n ConfigStateService,\r\n LoginParams,\r\n PipeToLoginFn,\r\n} from '@abp/ng.core';\r\nimport { RememberMeService } from '../services/remember-me.service';\r\n\r\nexport const pipeToLogin: PipeToLoginFn = function (\r\n params: Pick<LoginParams, 'redirectUrl' | 'rememberMe'>,\r\n injector: Injector,\r\n) {\r\n const configState = injector.get(ConfigStateService);\r\n const router = injector.get(Router);\r\n const rememberMeService = injector.get(RememberMeService);\r\n const authService = injector.get(AuthService);\r\n return pipe(\r\n switchMap(() => configState.refreshAppState()),\r\n tap(() => {\r\n rememberMeService.set(\r\n params.rememberMe ||\r\n rememberMeService.get() ||\r\n rememberMeService.getFromToken(authService.getAccessToken())\r\n );\r\n if (params.redirectUrl) router.navigate([params.redirectUrl]);\r\n }),\r\n );\r\n};\r\n\r\n//Ref: https://github.com/manfredsteyer/angular-oauth2-oidc/issues/1214\r\nexport function isTokenExpired(expireDate: number): boolean {\r\n const currentDate = new Date().getTime();\r\n return expireDate < currentDate;\r\n}\r\n","import { Injector } from '@angular/core';\r\nimport { CheckAuthenticationStateFn, ConfigStateService } from '@abp/ng.core';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { clearOAuthStorage } from './clear-o-auth-storage';\r\n\r\nexport const checkAccessToken: CheckAuthenticationStateFn = function (injector: Injector) {\r\n const configState = injector.get(ConfigStateService);\r\n const oAuth = injector.get(OAuthService);\r\n if (oAuth.hasValidAccessToken() && !configState.getDeep('currentUser.id')) {\r\n clearOAuthStorage();\r\n }\r\n};\r\n","import { Injector } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Params, Router } from '@angular/router';\r\n\r\nimport { Observable, of } from 'rxjs';\r\nimport { filter, map, switchMap, take, tap } from 'rxjs/operators';\r\nimport {\r\n AuthConfig,\r\n OAuthErrorEvent,\r\n OAuthService as OAuthService2,\r\n OAuthStorage,\r\n} from 'angular-oauth2-oidc';\r\n\r\nimport {\r\n AbpLocalStorageService,\r\n ConfigStateService,\r\n EnvironmentService,\r\n HttpErrorReporterService,\r\n LoginParams,\r\n SessionStateService,\r\n TENANT_KEY,\r\n} from '@abp/ng.core';\r\n\r\nimport { clearOAuthStorage } from '../utils/clear-o-auth-storage';\r\nimport { oAuthStorage } from '../utils/oauth-storage';\r\nimport { OAuthErrorFilterService } from '../services';\r\nimport { isTokenExpired } from '../utils';\r\nimport { RememberMeService } from '../services/remember-me.service';\r\n\r\nexport abstract class AuthFlowStrategy {\r\n abstract readonly isInternalAuth: boolean;\r\n\r\n protected httpErrorReporter: HttpErrorReporterService;\r\n protected environment: EnvironmentService;\r\n protected configState: ConfigStateService;\r\n protected oAuthService: OAuthService2;\r\n protected oAuthConfig!: AuthConfig;\r\n protected sessionState: SessionStateService;\r\n protected localStorageService: AbpLocalStorageService;\r\n protected rememberMeService: RememberMeService;\r\n protected tenantKey: string;\r\n protected router: Router;\r\n\r\n protected readonly oAuthErrorFilterService: OAuthErrorFilterService;\r\n\r\n abstract checkIfInternalAuth(queryParams?: Params): boolean;\r\n abstract navigateToLogin(queryParams?: Params): void;\r\n abstract logout(queryParams?: Params): Observable<any>;\r\n abstract login(params?: LoginParams | Params): Observable<any>;\r\n\r\n private catchError = (err: HttpErrorResponse) => {\r\n this.httpErrorReporter.reportError(err);\r\n return of(null);\r\n };\r\n\r\n constructor(protected injector: Injector) {\r\n this.httpErrorReporter = injector.get(HttpErrorReporterService);\r\n this.environment = injector.get(EnvironmentService);\r\n this.configState = injector.get(ConfigStateService);\r\n this.oAuthService = injector.get(OAuthService2);\r\n this.sessionState = injector.get(SessionStateService);\r\n this.localStorageService = injector.get(AbpLocalStorageService);\r\n this.oAuthConfig = this.environment.getEnvironment().oAuthConfig || {};\r\n this.tenantKey = injector.get(TENANT_KEY);\r\n this.router = injector.get(Router);\r\n this.oAuthErrorFilterService = injector.get(OAuthErrorFilterService);\r\n this.rememberMeService = injector.get(RememberMeService);\r\n\r\n this.listenToOauthErrors();\r\n }\r\n\r\n async init(): Promise<any> {\r\n if (this.oAuthConfig.clientId) {\r\n const shouldClear = shouldStorageClear(this.oAuthConfig.clientId, oAuthStorage);\r\n if (shouldClear) clearOAuthStorage(oAuthStorage);\r\n }\r\n this.oAuthService.configure(this.oAuthConfig);\r\n this.oAuthService.events\r\n .pipe(filter(event => event.type === 'token_refresh_error'))\r\n .subscribe(() => this.navigateToLogin());\r\n this.navigateToPreviousUrl();\r\n return this.oAuthService\r\n .loadDiscoveryDocument()\r\n .then(() => {\r\n const isTokenExpire = isTokenExpired(this.oAuthService.getAccessTokenExpiration());\r\n if (isTokenExpire && this.oAuthService.getRefreshToken()) {\r\n return this.refreshToken();\r\n }\r\n\r\n return Promise.resolve();\r\n })\r\n .catch(this.catchError);\r\n }\r\n\r\n protected navigateToPreviousUrl(): void {\r\n const { responseType } = this.oAuthConfig;\r\n if (responseType === 'code') {\r\n this.oAuthService.events\r\n .pipe(\r\n filter(event => event.type === 'token_received' && !!this.oAuthService.state),\r\n take(1),\r\n map(() => {\r\n const redirectUri = decodeURIComponent(this.oAuthService.state);\r\n\r\n if (redirectUri && redirectUri !== '/') {\r\n return redirectUri;\r\n }\r\n\r\n return '/';\r\n }),\r\n switchMap(redirectUri =>\r\n this.configState.getOne$('currentUser').pipe(\r\n filter(user => !!user?.isAuthenticated),\r\n tap(() => this.router.navigateByUrl(redirectUri)),\r\n ),\r\n ),\r\n )\r\n .subscribe();\r\n }\r\n }\r\n\r\n protected refreshToken() {\r\n return this.oAuthService.refreshToken().catch(() => clearOAuthStorage());\r\n }\r\n\r\n protected listenToOauthErrors() {\r\n this.oAuthService.events\r\n .pipe(\r\n filter(event => event instanceof OAuthErrorEvent),\r\n tap((err: OAuthErrorEvent) => {\r\n const shouldSkip = this.oAuthErrorFilterService.run(err);\r\n if (!shouldSkip) {\r\n clearOAuthStorage();\r\n }\r\n }),\r\n switchMap(() => this.configState.refreshAppState()),\r\n )\r\n .subscribe();\r\n }\r\n}\r\n\r\nfunction shouldStorageClear(clientId: string, storage: OAuthStorage): boolean {\r\n const key = 'abpOAuthClientId';\r\n if (!storage.getItem(key)) {\r\n storage.setItem(key, clientId);\r\n return false;\r\n }\r\n\r\n const shouldClear = storage.getItem(key) !== clientId;\r\n if (shouldClear) storage.setItem(key, clientId);\r\n return shouldClear;\r\n}\r\n","import { noop } from '@abp/ng.core';\r\nimport { Params } from '@angular/router';\r\nimport { from, of } from 'rxjs';\r\nimport { AuthFlowStrategy } from './auth-flow-strategy';\r\nimport { isTokenExpired } from '../utils';\r\n\r\nexport class AuthCodeFlowStrategy extends AuthFlowStrategy {\r\n readonly isInternalAuth = false;\r\n\r\n async init() {\r\n this.checkRememberMeOption();\r\n\r\n return super\r\n .init()\r\n .then(() => this.oAuthService.tryLogin().catch(noop))\r\n .then(() => this.oAuthService.setupAutomaticSilentRefresh());\r\n }\r\n\r\n private checkRememberMeOption() {\r\n const accessToken = this.oAuthService.getAccessToken();\r\n const isTokenExpire = isTokenExpired(this.oAuthService.getAccessTokenExpiration());\r\n let rememberMe = this.rememberMeService.get();\r\n\r\n if (accessToken && !rememberMe) {\r\n const rememberMeValue = this.rememberMeService.getFromToken(accessToken);\r\n\r\n this.rememberMeService.set(!!rememberMeValue);\r\n }\r\n\r\n rememberMe = this.rememberMeService.get();\r\n if (accessToken && isTokenExpire && !rememberMe) {\r\n this.rememberMeService.remove();\r\n this.oAuthService.logOut();\r\n }\r\n }\r\n\r\n navigateToLogin(queryParams?: Params) {\r\n let additionalState = '';\r\n if (queryParams?.returnUrl) {\r\n additionalState = queryParams.returnUrl;\r\n }\r\n\r\n const cultureParams = this.getCultureParams(queryParams);\r\n this.oAuthService.initCodeFlow(additionalState, cultureParams);\r\n }\r\n\r\n checkIfInternalAuth(queryParams?: Params) {\r\n this.oAuthService.initCodeFlow('', this.getCultureParams(queryParams));\r\n return false;\r\n }\r\n\r\n logout(queryParams?: Params) {\r\n this.rememberMeService.remove();\r\n if (queryParams?.noRedirectToLogoutUrl) {\r\n this.router.navigate(['/']);\r\n return from(this.oAuthService.revokeTokenAndLogout(true));\r\n }\r\n return from(this.oAuthService.revokeTokenAndLogout(this.getCultureParams(queryParams)));\r\n }\r\n\r\n login(queryParams?: Params) {\r\n this.oAuthService.initCodeFlow('', this.getCultureParams(queryParams));\r\n return of(null);\r\n }\r\n\r\n private getCultureParams(queryParams?: Params) {\r\n const lang = this.sessionState.getLanguage();\r\n const culture = { culture: lang, 'ui-culture': lang };\r\n return { ...(lang && culture), ...queryParams };\r\n }\r\n}\r\n","import { filter, switchMap, tap } from 'rxjs/operators';\r\nimport { OAuthInfoEvent } from 'angular-oauth2-oidc';\r\nimport { Params, Router } from '@angular/router';\r\nimport { from, Observable } from 'rxjs';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { AuthFlowStrategy } from './auth-flow-strategy';\r\nimport { isTokenExpired, pipeToLogin } from '../utils/auth-utils';\r\nimport { LoginParams } from '@abp/ng.core';\r\nimport { clearOAuthStorage } from '../utils/clear-o-auth-storage';\r\n\r\nexport class AuthPasswordFlowStrategy extends AuthFlowStrategy {\r\n readonly isInternalAuth = true;\r\n\r\n private listenToTokenExpiration() {\r\n this.oAuthService.events\r\n .pipe(\r\n filter(\r\n event => event instanceof OAuthInfoEvent &&\r\n event.type === 'token_expires' &&\r\n event.info === 'access_token'\r\n ),\r\n )\r\n .subscribe(() => {\r\n if (this.oAuthService.getRefreshToken()) {\r\n this.refreshToken();\r\n } else {\r\n this.oAuthService.logOut();\r\n this.rememberMeService.remove();\r\n this.configState.refreshAppState().subscribe();\r\n }\r\n });\r\n }\r\n\r\n async init() {\r\n this.checkRememberMeOption();\r\n\r\n return super.init().then(() => this.listenToTokenExpiration());\r\n }\r\n\r\n private checkRememberMeOption() {\r\n const accessToken = this.oAuthService.getAccessToken();\r\n const isTokenExpire = isTokenExpired(this.oAuthService.getAccessTokenExpiration());\r\n const rememberMe = this.rememberMeService.get();\r\n if (accessToken && isTokenExpire && !rememberMe) {\r\n this.rememberMeService.remove();\r\n this.oAuthService.logOut();\r\n }\r\n }\r\n\r\n navigateToLogin(queryParams?: Params) {\r\n const router = this.injector.get(Router);\r\n return router.navigate(['/account/login'], { queryParams });\r\n }\r\n\r\n checkIfInternalAuth() {\r\n return true;\r\n }\r\n\r\n login(params: LoginParams): Observable<any> {\r\n const tenant = this.sessionState.getTenant();\r\n\r\n return from(\r\n this.oAuthService.fetchTokenUsingPasswordFlow(\r\n params.username,\r\n params.password,\r\n new HttpHeaders({ ...(tenant && tenant.id && { [this.tenantKey]: tenant.id }) }),\r\n ),\r\n ).pipe(pipeToLogin(params, this.injector));\r\n }\r\n\r\n logout() {\r\n const router = this.injector.get(Router);\r\n const noRedirectToLogoutUrl = true;\r\n return from(this.oAuthService.revokeTokenAndLogout(noRedirectToLogoutUrl)).pipe(\r\n switchMap(() => this.configState.refreshAppState()),\r\n tap(() => {\r\n this.rememberMeService.remove();\r\n router.navigateByUrl('/');\r\n }),\r\n );\r\n }\r\n\r\n protected refreshToken() {\r\n return this.oAuthService.refreshToken().catch(() => {\r\n clearOAuthStorage();\r\n this.rememberMeService.remove();\r\n });\r\n }\r\n}\r\n","import { Injector } from '@angular/core';\r\nimport { AuthCodeFlowStrategy } from '../strategies/auth-code-flow-strategy';\r\nimport { AuthPasswordFlowStrategy } from '../strategies/auth-password-flow-strategy';\r\n\r\nexport const AUTH_FLOW_STRATEGY = {\r\n Code(injector: Injector) {\r\n return new AuthCodeFlowStrategy(injector);\r\n },\r\n Password(injector: Injector) {\r\n return new AuthPasswordFlowStrategy(injector);\r\n },\r\n};\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { Params } from '@angular/router';\r\nimport { from, Observable, lastValueFrom, EMPTY } from 'rxjs';\r\nimport { filter, map, switchMap, take, tap } from 'rxjs/operators';\r\nimport { AbpAuthResponse, IAuthService, LoginParams } from '@abp/ng.core';\r\nimport { AuthFlowStrategy } from '../strategies';\r\nimport { EnvironmentService } from '@abp/ng.core';\r\nimport { AUTH_FLOW_STRATEGY } from '../tokens/auth-flow-strategy';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { HttpHeaders } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpOAuthService implements IAuthService {\r\n private strategy!: AuthFlowStrategy;\r\n private readonly oAuthService: OAuthService;\r\n\r\n get oidc() {\r\n return this.oAuthService.oidc;\r\n }\r\n\r\n set oidc(value) {\r\n this.oAuthService.oidc = value;\r\n }\r\n\r\n get isInternalAuth() {\r\n return this.strategy.isInternalAuth;\r\n }\r\n\r\n constructor(protected injector: Injector) {\r\n this.oAuthService = this.injector.get(OAuthService);\r\n }\r\n\r\n async init() {\r\n const environmentService = this.injector.get(EnvironmentService);\r\n\r\n const result$ = environmentService.getEnvironment$().pipe(\r\n map(env => env?.oAuthConfig),\r\n filter(Boolean),\r\n tap(oAuthConfig => {\r\n this.strategy =\r\n oAuthConfig.responseType === 'code'\r\n ? AUTH_FLOW_STRATEGY.Code(this.injector)\r\n : AUTH_FLOW_STRATEGY.Password(this.injector);\r\n }),\r\n switchMap(() => from(this.strategy.init())),\r\n take(1),\r\n );\r\n\r\n return await lastValueFrom(result$);\r\n }\r\n\r\n logout(queryParams?: Params): Observable<any> {\r\n if (!this.strategy) {\r\n return EMPTY;\r\n }\r\n\r\n return this.strategy.logout(queryParams);\r\n }\r\n\r\n navigateToLogin(queryParams?: Params) {\r\n this.strategy.navigateToLogin(queryParams);\r\n }\r\n\r\n login(params: LoginParams) {\r\n return this.strategy.login(params);\r\n }\r\n\r\n get isAuthenticated(): boolean {\r\n return this.oAuthService.hasValidAccessToken();\r\n }\r\n\r\n loginUsingGrant(\r\n grantType: string,\r\n parameters: object,\r\n headers?: HttpHeaders,\r\n ): Promise<AbpAuthResponse> {\r\n const { clientId: client_id, dummyClientSecret: client_secret } = this.oAuthService;\r\n const access_token = this.oAuthService.getAccessToken();\r\n const p = {\r\n access_token,\r\n grant_type: grantType,\r\n client_id,\r\n ...parameters,\r\n };\r\n\r\n if (client_secret) {\r\n p['client_secret'] = client_secret;\r\n }\r\n\r\n return this.oAuthService.fetchTokenUsingGrant(grantType, p, headers);\r\n }\r\n\r\n getRefreshToken(): string {\r\n return this.oAuthService.getRefreshToken();\r\n }\r\n\r\n getAccessToken(): string {\r\n return this.oAuthService.getAccessToken();\r\n }\r\n\r\n refreshToken(): Promise<AbpAuthResponse> {\r\n return this.oAuthService.refreshToken();\r\n }\r\n\r\n getAccessTokenExpiration(): number {\r\n return this.oAuthService.getAccessTokenExpiration();\r\n }\r\n}\r\n","import { Injectable, signal } from '@angular/core';\r\nimport { OAuthErrorEvent } from 'angular-oauth2-oidc';\r\nimport { AbstractAuthErrorFilter, AuthErrorFilter } from '@abp/ng.core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class OAuthErrorFilterService extends AbstractAuthErrorFilter<\r\n AuthErrorFilter<OAuthErrorEvent>,\r\n OAuthErrorEvent\r\n> {\r\n protected readonly _filters = signal<Array<AuthErrorFilter<OAuthErrorEvent>>>([]);\r\n readonly filters = this._filters.asReadonly();\r\n\r\n get(id: string): AuthErrorFilter<OAuthErrorEvent> {\r\n return this._filters().find(({ id: _id }) => _id === id);\r\n }\r\n\r\n add(filter: AuthErrorFilter<OAuthErrorEvent>): void {\r\n this._filters.update(items => [...items, filter]);\r\n }\r\n\r\n patch(item: Partial<AuthErrorFilter<OAuthErrorEvent>>): void {\r\n const _item = this.filters().find(({ id }) => id === item.id);\r\n if (!_item) {\r\n return;\r\n }\r\n\r\n Object.assign(_item, item);\r\n }\r\n\r\n remove(id: string): void {\r\n const item = this.filters().find(({ id: _id }) => _id === id);\r\n if (!item) {\r\n return;\r\n }\r\n\r\n this._filters.update(items => items.filter(({ id: _id }) => _id !== id));\r\n }\r\n\r\n run(event: OAuthErrorEvent): boolean {\r\n return this.filters()\r\n .filter(({ executable }) => !!executable)\r\n .map(({ execute }) => execute(event))\r\n .some(item => item);\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { AuthConfig, OAuthService } from \"angular-oauth2-oidc\";\r\nimport compare from 'just-compare';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { ABP, EnvironmentService, CORE_OPTIONS } from '@abp/ng.core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class OAuthConfigurationHandler {\r\n constructor(\r\n private oAuthService: OAuthService,\r\n private environmentService: EnvironmentService,\r\n @Inject(CORE_OPTIONS) private options: ABP.Root,\r\n ) {\r\n this.listenToSetEnvironment();\r\n }\r\n\r\n private listenToSetEnvironment() {\r\n this.environmentService\r\n .createOnUpdateStream(state => state)\r\n .pipe(\r\n map(environment => environment.oAuthConfig as AuthConfig),\r\n filter(config => !compare(config, this.options.environment.oAuthConfig)),\r\n )\r\n .subscribe((config) => {\r\n this.oAuthService.configure(config);\r\n });\r\n }\r\n}\r\n","import { HttpHandler, HttpHeaders, HttpRequest } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { finalize } from 'rxjs/operators';\r\nimport {\r\n HttpWaitService,\r\n IApiInterceptor,\r\n IS_EXTERNAL_REQUEST,\r\n SessionStateService,\r\n TENANT_KEY,\r\n} from '@abp/ng.core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class OAuthApiInterceptor implements IApiInterceptor {\r\n constructor(\r\n private oAuthService: OAuthService,\r\n private sessionState: SessionStateService,\r\n private httpWaitService: HttpWaitService,\r\n @Inject(TENANT_KEY) private tenantKey: string,\r\n ) {}\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler) {\r\n this.httpWaitService.addRequest(request);\r\n const isExternalRequest = request.context?.get(IS_EXTERNAL_REQUEST);\r\n const newRequest = isExternalRequest\r\n ? request\r\n : request.clone({\r\n setHeaders: this.getAdditionalHeaders(request.headers),\r\n });\r\n\r\n return next\r\n .handle(newRequest)\r\n .pipe(finalize(() => this.httpWaitService.deleteRequest(request)));\r\n }\r\n\r\n getAdditionalHeaders(existingHeaders?: HttpHeaders) {\r\n const headers = {} as any;\r\n\r\n const token = this.oAuthService.getAccessToken();\r\n if (!existingHeaders?.has('Authorization') && token) {\r\n headers['Authorization'] = `Bearer ${token}`;\r\n }\r\n\r\n const lang = this.sessionState.getLanguage();\r\n if (!existingHeaders?.has('Accept-Language') && lang) {\r\n headers['Accept-Language'] = lang;\r\n }\r\n\r\n const tenant = this.sessionState.getTenant();\r\n if (!existingHeaders?.has(this.tenantKey) && tenant?.id) {\r\n headers[this.tenantKey] = tenant.id;\r\n }\r\n\r\n headers['X-Requested-With'] = 'XMLHttpRequest';\r\n\r\n return headers;\r\n }\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport {\r\n UrlTree,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n CanActivateFn,\r\n} from '@angular/router';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\n\r\nimport { AuthService, IAbpGuard } from '@abp/ng.core';\r\n\r\n/**\r\n * @deprecated Use `abpOAuthGuard` *function* instead.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpOAuthGuard implements IAbpGuard {\r\n protected readonly oAuthService = inject(OAuthService);\r\n protected readonly authService = inject(AuthService);\r\n\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n ): Observable<boolean> | boolean | UrlTree {\r\n const hasValidAccessToken = this.oAuthService.hasValidAccessToken();\r\n if (hasValidAccessToken) {\r\n return true;\r\n }\r\n\r\n const params = { returnUrl: state.url };\r\n this.authService.navigateToLogin(params);\r\n return false;\r\n }\r\n}\r\n\r\nexport const abpOAuthGuard: CanActivateFn = (\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n) => {\r\n const oAuthService = inject(OAuthService);\r\n const authService = inject(AuthService);\r\n\r\n const hasValidAccessToken = oAuthService.hasValidAccessToken();\r\n\r\n if (hasValidAccessToken) {\r\n return true;\r\n }\r\n\r\n const params = { returnUrl: state.url };\r\n authService.navigateToLogin(params);\r\n return false;\r\n};\r\n","import { inject, Provider } from '@angular/core';\r\nimport { EnvironmentService, NAVIGATE_TO_MANAGE_PROFILE } from '@abp/ng.core';\r\n\r\nexport const NavigateToManageProfileProvider: Provider = {\r\n provide: NAVIGATE_TO_MANAGE_PROFILE,\r\n useFactory: () => {\r\n const environment = inject(EnvironmentService);\r\n\r\n return () => {\r\n const env = environment.getEnvironment();\r\n if (!env.oAuthConfig) {\r\n console.warn('The oAuthConfig env is missing on environment.ts');\r\n return;\r\n }\r\n\r\n const { issuer } = env.oAuthConfig;\r\n const path = issuer.endsWith('/') ? issuer : `${issuer}/`;\r\n window.open(`${path}Account/Manage?returnUrl=${window.location.href}`, '_self');\r\n };\r\n },\r\n};\r\n","import { APP_INITIALIZER, ModuleWithProviders, NgModule, Provider } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc';\r\nimport {\r\n AbpLocalStorageService,\r\n ApiInterceptor,\r\n AuthErrorFilterService,\r\n AuthGuard,\r\n authGuard,\r\n AuthService,\r\n CHECK_AUTHENTICATION_STATE_FN_KEY,\r\n noop,\r\n PIPE_TO_LOGIN_FN_KEY,\r\n} from '@abp/ng.core';\r\nimport { AbpOAuthService, OAuthErrorFilterService } from './services';\r\nimport { OAuthConfigurationHandler } from './handlers/oauth-configuration.handler';\r\nimport { OAuthApiInterceptor } from './interceptors/api.interceptor';\r\nimport { AbpOAuthGuard, abpOAuthGuard } from './guards/oauth.guard';\r\nimport { NavigateToManageProfileProvider } from './providers';\r\nimport { checkAccessToken, pipeToLogin } from './utils';\r\n\r\n@NgModule({\r\n imports: [CommonModule, OAuthModule],\r\n})\r\nexport class AbpOAuthModule {\r\n static forRoot(): ModuleWithProviders<AbpOAuthModule> {\r\n return {\r\n ngModule: AbpOAuthModule,\r\n providers: [\r\n {\r\n provide: AuthService,\r\n useClass: AbpOAuthService,\r\n },\r\n {\r\n provide: AuthGuard,\r\n useClass: AbpOAuthGuard,\r\n },\r\n {\r\n provide: authGuard,\r\n useValue: abpOAuthGuard,\r\n },\r\n {\r\n provide: ApiInterceptor,\r\n useClass: OAuthApiInterceptor,\r\n },\r\n {\r\n provide: PIPE_TO_LOGIN_FN_KEY,\r\n useValue: pipeToLogin,\r\n },\r\n {\r\n provide: CHECK_AUTHENTICATION_STATE_FN_KEY,\r\n useValue: checkAccessToken,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useExisting: ApiInterceptor,\r\n multi: true,\r\n },\r\n NavigateToManageProfileProvider,\r\n {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n deps: [OAuthConfigurationHandler],\r\n useFactory: noop,\r\n },\r\n OAuthModule.forRoot().providers as Provider[],\r\n { provide: OAuthStorage, useClass: AbpLocalStorageService },\r\n { provide: AuthErrorFilterService, useExisting: OAuthErrorFilterService },\r\n ],\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["OAuthService2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"abp-ng.oauth.mjs","sources":["../../../../packages/oauth/src/lib/providers/navigate-to-manage-profile.provider.ts","../../../../packages/oauth/src/lib/guards/oauth.guard.ts","../../../../packages/oauth/src/lib/handlers/oauth-configuration.handler.ts","../../../../packages/oauth/src/lib/interceptors/api.interceptor.ts","../../../../packages/oauth/src/lib/utils/oauth-storage.ts","../../../../packages/oauth/src/lib/utils/clear-o-auth-storage.ts","../../../../packages/oauth/src/lib/utils/storage.factory.ts","../../../../packages/oauth/src/lib/services/remember-me.service.ts","../../../../packages/oauth/src/lib/utils/auth-utils.ts","../../../../packages/oauth/src/lib/utils/check-access-token.ts","../../../../packages/oauth/src/lib/strategies/auth-flow-strategy.ts","../../../../packages/oauth/src/lib/strategies/auth-code-flow-strategy.ts","../../../../packages/oauth/src/lib/strategies/auth-password-flow-strategy.ts","../../../../packages/oauth/src/lib/tokens/auth-flow-strategy.ts","../../../../packages/oauth/src/lib/services/oauth.service.ts","../../../../packages/oauth/src/lib/services/oauth-error-filter.service.ts","../../../../packages/oauth/src/lib/providers/oauth-module-config.provider.ts","../../../../packages/oauth/src/lib/oauth.module.ts","../../../../packages/oauth/src/abp-ng.oauth.ts"],"sourcesContent":["import { inject, Provider } from '@angular/core';\r\nimport { EnvironmentService, NAVIGATE_TO_MANAGE_PROFILE } from '@abp/ng.core';\r\n\r\nexport const NavigateToManageProfileProvider: Provider = {\r\n provide: NAVIGATE_TO_MANAGE_PROFILE,\r\n useFactory: () => {\r\n const environment = inject(EnvironmentService);\r\n\r\n return () => {\r\n const env = environment.getEnvironment();\r\n if (!env.oAuthConfig) {\r\n console.warn('The oAuthConfig env is missing on environment.ts');\r\n return;\r\n }\r\n\r\n const { issuer } = env.oAuthConfig;\r\n const path = issuer.endsWith('/') ? issuer : `${issuer}/`;\r\n window.open(`${path}Account/Manage?returnUrl=${window.location.href}`, '_self');\r\n };\r\n },\r\n};\r\n","import { Injectable, inject } from '@angular/core';\r\nimport {\r\n UrlTree,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n CanActivateFn,\r\n} from '@angular/router';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\n\r\nimport { AuthService, IAbpGuard } from '@abp/ng.core';\r\n\r\n/**\r\n * @deprecated Use `abpOAuthGuard` *function* instead.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpOAuthGuard implements IAbpGuard {\r\n protected readonly oAuthService = inject(OAuthService);\r\n protected readonly authService = inject(AuthService);\r\n\r\n canActivate(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n ): Observable<boolean> | boolean | UrlTree {\r\n const hasValidAccessToken = this.oAuthService.hasValidAccessToken();\r\n if (hasValidAccessToken) {\r\n return true;\r\n }\r\n\r\n const params = { returnUrl: state.url };\r\n this.authService.navigateToLogin(params);\r\n return false;\r\n }\r\n}\r\n\r\nexport const abpOAuthGuard: CanActivateFn = (\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot,\r\n) => {\r\n const oAuthService = inject(OAuthService);\r\n const authService = inject(AuthService);\r\n\r\n const hasValidAccessToken = oAuthService.hasValidAccessToken();\r\n\r\n if (hasValidAccessToken) {\r\n return true;\r\n }\r\n\r\n const params = { returnUrl: state.url };\r\n authService.navigateToLogin(params);\r\n return false;\r\n};\r\n","import { Inject, Injectable } from '@angular/core';\r\nimport { AuthConfig, OAuthService } from \"angular-oauth2-oidc\";\r\nimport compare from 'just-compare';\r\nimport { filter, map } from 'rxjs/operators';\r\nimport { ABP, EnvironmentService, CORE_OPTIONS } from '@abp/ng.core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class OAuthConfigurationHandler {\r\n constructor(\r\n private oAuthService: OAuthService,\r\n private environmentService: EnvironmentService,\r\n @Inject(CORE_OPTIONS) private options: ABP.Root,\r\n ) {\r\n this.listenToSetEnvironment();\r\n }\r\n\r\n private listenToSetEnvironment() {\r\n this.environmentService\r\n .createOnUpdateStream(state => state)\r\n .pipe(\r\n map(environment => environment.oAuthConfig as AuthConfig),\r\n filter(config => !compare(config, this.options.environment.oAuthConfig)),\r\n )\r\n .subscribe((config) => {\r\n this.oAuthService.configure(config);\r\n });\r\n }\r\n}\r\n","import { HttpHandler, HttpHeaders, HttpRequest } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { finalize } from 'rxjs/operators';\r\nimport {\r\n HttpWaitService,\r\n IApiInterceptor,\r\n IS_EXTERNAL_REQUEST,\r\n SessionStateService,\r\n TENANT_KEY,\r\n} from '@abp/ng.core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class OAuthApiInterceptor implements IApiInterceptor {\r\n constructor(\r\n private oAuthService: OAuthService,\r\n private sessionState: SessionStateService,\r\n private httpWaitService: HttpWaitService,\r\n @Inject(TENANT_KEY) private tenantKey: string,\r\n ) {}\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler) {\r\n this.httpWaitService.addRequest(request);\r\n const isExternalRequest = request.context?.get(IS_EXTERNAL_REQUEST);\r\n const newRequest = isExternalRequest\r\n ? request\r\n : request.clone({\r\n setHeaders: this.getAdditionalHeaders(request.headers),\r\n });\r\n\r\n return next\r\n .handle(newRequest)\r\n .pipe(finalize(() => this.httpWaitService.deleteRequest(request)));\r\n }\r\n\r\n getAdditionalHeaders(existingHeaders?: HttpHeaders) {\r\n const headers = {} as any;\r\n\r\n const token = this.oAuthService.getAccessToken();\r\n if (!existingHeaders?.has('Authorization') && token) {\r\n headers['Authorization'] = `Bearer ${token}`;\r\n }\r\n\r\n const lang = this.sessionState.getLanguage();\r\n if (!existingHeaders?.has('Accept-Language') && lang) {\r\n headers['Accept-Language'] = lang;\r\n }\r\n\r\n const tenant = this.sessionState.getTenant();\r\n if (!existingHeaders?.has(this.tenantKey) && tenant?.id) {\r\n headers[this.tenantKey] = tenant.id;\r\n }\r\n\r\n headers['X-Requested-With'] = 'XMLHttpRequest';\r\n\r\n return headers;\r\n }\r\n}\r\n","export const oAuthStorage = localStorage;\r\n","import { OAuthStorage } from 'angular-oauth2-oidc';\r\nimport { oAuthStorage } from './oauth-storage';\r\n\r\nexport function clearOAuthStorage(storage: OAuthStorage = oAuthStorage) {\r\n const keys = [\r\n 'access_token',\r\n 'id_token',\r\n 'refresh_token',\r\n 'nonce',\r\n 'PKCE_verifier',\r\n 'expires_at',\r\n 'id_token_claims_obj',\r\n 'id_token_expires_at',\r\n 'id_token_stored_at',\r\n 'access_token_stored_at',\r\n 'granted_scopes',\r\n 'session_state',\r\n ];\r\n\r\n keys.forEach(key => storage.removeItem(key));\r\n}\r\n","import { OAuthStorage } from 'angular-oauth2-oidc';\r\nimport { oAuthStorage } from './oauth-storage';\r\n\r\nexport function storageFactory(): OAuthStorage {\r\n return oAuthStorage;\r\n}\r\n","import { AbpLocalStorageService } from '@abp/ng.core';\r\nimport { Injectable, inject } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RememberMeService {\r\n readonly #rememberMe = 'remember_me';\r\n protected readonly localStorageService = inject(AbpLocalStorageService);\r\n\r\n set(remember: boolean) {\r\n this.localStorageService.setItem(this.#rememberMe, JSON.stringify(remember));\r\n }\r\n\r\n remove() {\r\n this.localStorageService.removeItem(this.#rememberMe);\r\n }\r\n\r\n get() {\r\n return Boolean(JSON.parse(this.localStorageService.getItem(this.#rememberMe) || 'false'));\r\n }\r\n\r\n getFromToken(accessToken: string) {\r\n const tokenBody = accessToken.split('.')[1].replace(/-/g, '+').replace(/_/g, '/');\r\n const parsedToken = JSON.parse(atob(tokenBody));\r\n return Boolean(parsedToken[this.#rememberMe]);\r\n }\r\n}\r\n","import { Injector } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { pipe } from 'rxjs';\r\nimport { switchMap, tap } from 'rxjs/operators';\r\nimport {\r\n AuthService,\r\n ConfigStateService,\r\n LoginParams,\r\n PipeToLoginFn,\r\n} from '@abp/ng.core';\r\nimport { RememberMeService } from '../services/remember-me.service';\r\n\r\nexport const pipeToLogin: PipeToLoginFn = function (\r\n params: Pick<LoginParams, 'redirectUrl' | 'rememberMe'>,\r\n injector: Injector,\r\n) {\r\n const configState = injector.get(ConfigStateService);\r\n const router = injector.get(Router);\r\n const rememberMeService = injector.get(RememberMeService);\r\n const authService = injector.get(AuthService);\r\n return pipe(\r\n switchMap(() => configState.refreshAppState()),\r\n tap(() => {\r\n rememberMeService.set(\r\n params.rememberMe ||\r\n rememberMeService.get() ||\r\n rememberMeService.getFromToken(authService.getAccessToken())\r\n );\r\n if (params.redirectUrl) router.navigate([params.redirectUrl]);\r\n }),\r\n );\r\n};\r\n\r\n//Ref: https://github.com/manfredsteyer/angular-oauth2-oidc/issues/1214\r\nexport function isTokenExpired(expireDate: number): boolean {\r\n const currentDate = new Date().getTime();\r\n return expireDate < currentDate;\r\n}\r\n","import { Injector } from '@angular/core';\r\nimport { CheckAuthenticationStateFn, ConfigStateService } from '@abp/ng.core';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { clearOAuthStorage } from './clear-o-auth-storage';\r\n\r\nexport const checkAccessToken: CheckAuthenticationStateFn = function (injector: Injector) {\r\n const configState = injector.get(ConfigStateService);\r\n const oAuth = injector.get(OAuthService);\r\n if (oAuth.hasValidAccessToken() && !configState.getDeep('currentUser.id')) {\r\n clearOAuthStorage();\r\n }\r\n};\r\n","import { Injector } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Params, Router } from '@angular/router';\r\n\r\nimport { Observable, of } from 'rxjs';\r\nimport { filter, map, switchMap, take, tap } from 'rxjs/operators';\r\nimport {\r\n AuthConfig,\r\n OAuthErrorEvent,\r\n OAuthService as OAuthService2,\r\n OAuthStorage,\r\n} from 'angular-oauth2-oidc';\r\n\r\nimport {\r\n AbpLocalStorageService,\r\n ConfigStateService,\r\n EnvironmentService,\r\n HttpErrorReporterService,\r\n LoginParams,\r\n SessionStateService,\r\n TENANT_KEY,\r\n} from '@abp/ng.core';\r\n\r\nimport { clearOAuthStorage } from '../utils/clear-o-auth-storage';\r\nimport { oAuthStorage } from '../utils/oauth-storage';\r\nimport { OAuthErrorFilterService } from '../services';\r\nimport { isTokenExpired } from '../utils';\r\nimport { RememberMeService } from '../services/remember-me.service';\r\n\r\nexport abstract class AuthFlowStrategy {\r\n abstract readonly isInternalAuth: boolean;\r\n\r\n protected httpErrorReporter: HttpErrorReporterService;\r\n protected environment: EnvironmentService;\r\n protected configState: ConfigStateService;\r\n protected oAuthService: OAuthService2;\r\n protected oAuthConfig!: AuthConfig;\r\n protected sessionState: SessionStateService;\r\n protected localStorageService: AbpLocalStorageService;\r\n protected rememberMeService: RememberMeService;\r\n protected tenantKey: string;\r\n protected router: Router;\r\n\r\n protected readonly oAuthErrorFilterService: OAuthErrorFilterService;\r\n\r\n abstract checkIfInternalAuth(queryParams?: Params): boolean;\r\n abstract navigateToLogin(queryParams?: Params): void;\r\n abstract logout(queryParams?: Params): Observable<any>;\r\n abstract login(params?: LoginParams | Params): Observable<any>;\r\n\r\n private catchError = (err: HttpErrorResponse) => {\r\n this.httpErrorReporter.reportError(err);\r\n return of(null);\r\n };\r\n\r\n constructor(protected injector: Injector) {\r\n this.httpErrorReporter = injector.get(HttpErrorReporterService);\r\n this.environment = injector.get(EnvironmentService);\r\n this.configState = injector.get(ConfigStateService);\r\n this.oAuthService = injector.get(OAuthService2);\r\n this.sessionState = injector.get(SessionStateService);\r\n this.localStorageService = injector.get(AbpLocalStorageService);\r\n this.oAuthConfig = this.environment.getEnvironment().oAuthConfig || {};\r\n this.tenantKey = injector.get(TENANT_KEY);\r\n this.router = injector.get(Router);\r\n this.oAuthErrorFilterService = injector.get(OAuthErrorFilterService);\r\n this.rememberMeService = injector.get(RememberMeService);\r\n\r\n this.listenToOauthErrors();\r\n }\r\n\r\n async init(): Promise<any> {\r\n if (this.oAuthConfig.clientId) {\r\n const shouldClear = shouldStorageClear(this.oAuthConfig.clientId, oAuthStorage);\r\n if (shouldClear) clearOAuthStorage(oAuthStorage);\r\n }\r\n this.oAuthService.configure(this.oAuthConfig);\r\n this.oAuthService.events\r\n .pipe(filter(event => event.type === 'token_refresh_error'))\r\n .subscribe(() => this.navigateToLogin());\r\n this.navigateToPreviousUrl();\r\n return this.oAuthService\r\n .loadDiscoveryDocument()\r\n .then(() => {\r\n const isTokenExpire = isTokenExpired(this.oAuthService.getAccessTokenExpiration());\r\n if (isTokenExpire && this.oAuthService.getRefreshToken()) {\r\n return this.refreshToken();\r\n }\r\n\r\n return Promise.resolve();\r\n })\r\n .catch(this.catchError);\r\n }\r\n\r\n protected navigateToPreviousUrl(): void {\r\n const { responseType } = this.oAuthConfig;\r\n if (responseType === 'code') {\r\n this.oAuthService.events\r\n .pipe(\r\n filter(event => event.type === 'token_received' && !!this.oAuthService.state),\r\n take(1),\r\n map(() => {\r\n const redirectUri = decodeURIComponent(this.oAuthService.state);\r\n\r\n if (redirectUri && redirectUri !== '/') {\r\n return redirectUri;\r\n }\r\n\r\n return '/';\r\n }),\r\n switchMap(redirectUri =>\r\n this.configState.getOne$('currentUser').pipe(\r\n filter(user => !!user?.isAuthenticated),\r\n tap(() => this.router.navigateByUrl(redirectUri)),\r\n ),\r\n ),\r\n )\r\n .subscribe();\r\n }\r\n }\r\n\r\n protected refreshToken() {\r\n return this.oAuthService.refreshToken().catch(() => clearOAuthStorage());\r\n }\r\n\r\n protected listenToOauthErrors() {\r\n this.oAuthService.events\r\n .pipe(\r\n filter(event => event instanceof OAuthErrorEvent),\r\n tap((err: OAuthErrorEvent) => {\r\n const shouldSkip = this.oAuthErrorFilterService.run(err);\r\n if (!shouldSkip) {\r\n clearOAuthStorage();\r\n }\r\n }),\r\n switchMap(() => this.configState.refreshAppState()),\r\n )\r\n .subscribe();\r\n }\r\n}\r\n\r\nfunction shouldStorageClear(clientId: string, storage: OAuthStorage): boolean {\r\n const key = 'abpOAuthClientId';\r\n if (!storage.getItem(key)) {\r\n storage.setItem(key, clientId);\r\n return false;\r\n }\r\n\r\n const shouldClear = storage.getItem(key) !== clientId;\r\n if (shouldClear) storage.setItem(key, clientId);\r\n return shouldClear;\r\n}\r\n","import { noop } from '@abp/ng.core';\r\nimport { Params } from '@angular/router';\r\nimport { from, of } from 'rxjs';\r\nimport { AuthFlowStrategy } from './auth-flow-strategy';\r\nimport { isTokenExpired } from '../utils';\r\n\r\nexport class AuthCodeFlowStrategy extends AuthFlowStrategy {\r\n readonly isInternalAuth = false;\r\n\r\n async init() {\r\n this.checkRememberMeOption();\r\n\r\n return super\r\n .init()\r\n .then(() => this.oAuthService.tryLogin().catch(noop))\r\n .then(() => this.oAuthService.setupAutomaticSilentRefresh());\r\n }\r\n\r\n private checkRememberMeOption() {\r\n const accessToken = this.oAuthService.getAccessToken();\r\n const isTokenExpire = isTokenExpired(this.oAuthService.getAccessTokenExpiration());\r\n let rememberMe = this.rememberMeService.get();\r\n\r\n if (accessToken && !rememberMe) {\r\n const rememberMeValue = this.rememberMeService.getFromToken(accessToken);\r\n\r\n this.rememberMeService.set(!!rememberMeValue);\r\n }\r\n\r\n rememberMe = this.rememberMeService.get();\r\n if (accessToken && isTokenExpire && !rememberMe) {\r\n this.rememberMeService.remove();\r\n this.oAuthService.logOut();\r\n }\r\n }\r\n\r\n navigateToLogin(queryParams?: Params) {\r\n let additionalState = '';\r\n if (queryParams?.returnUrl) {\r\n additionalState = queryParams.returnUrl;\r\n }\r\n\r\n const cultureParams = this.getCultureParams(queryParams);\r\n this.oAuthService.initCodeFlow(additionalState, cultureParams);\r\n }\r\n\r\n checkIfInternalAuth(queryParams?: Params) {\r\n this.oAuthService.initCodeFlow('', this.getCultureParams(queryParams));\r\n return false;\r\n }\r\n\r\n logout(queryParams?: Params) {\r\n this.rememberMeService.remove();\r\n if (queryParams?.noRedirectToLogoutUrl) {\r\n this.router.navigate(['/']);\r\n return from(this.oAuthService.revokeTokenAndLogout(true));\r\n }\r\n return from(this.oAuthService.revokeTokenAndLogout(this.getCultureParams(queryParams)));\r\n }\r\n\r\n login(queryParams?: Params) {\r\n this.oAuthService.initCodeFlow('', this.getCultureParams(queryParams));\r\n return of(null);\r\n }\r\n\r\n private getCultureParams(queryParams?: Params) {\r\n const lang = this.sessionState.getLanguage();\r\n const culture = { culture: lang, 'ui-culture': lang };\r\n return { ...(lang && culture), ...queryParams };\r\n }\r\n}\r\n","import { filter, switchMap, tap } from 'rxjs/operators';\r\nimport { OAuthInfoEvent } from 'angular-oauth2-oidc';\r\nimport { Params, Router } from '@angular/router';\r\nimport { from, Observable } from 'rxjs';\r\nimport { HttpHeaders } from '@angular/common/http';\r\nimport { AuthFlowStrategy } from './auth-flow-strategy';\r\nimport { isTokenExpired, pipeToLogin } from '../utils/auth-utils';\r\nimport { LoginParams } from '@abp/ng.core';\r\nimport { clearOAuthStorage } from '../utils/clear-o-auth-storage';\r\n\r\nexport class AuthPasswordFlowStrategy extends AuthFlowStrategy {\r\n readonly isInternalAuth = true;\r\n\r\n private listenToTokenExpiration() {\r\n this.oAuthService.events\r\n .pipe(\r\n filter(\r\n event => event instanceof OAuthInfoEvent &&\r\n event.type === 'token_expires' &&\r\n event.info === 'access_token'\r\n ),\r\n )\r\n .subscribe(() => {\r\n if (this.oAuthService.getRefreshToken()) {\r\n this.refreshToken();\r\n } else {\r\n this.oAuthService.logOut();\r\n this.rememberMeService.remove();\r\n this.configState.refreshAppState().subscribe();\r\n }\r\n });\r\n }\r\n\r\n async init() {\r\n this.checkRememberMeOption();\r\n\r\n return super.init().then(() => this.listenToTokenExpiration());\r\n }\r\n\r\n private checkRememberMeOption() {\r\n const accessToken = this.oAuthService.getAccessToken();\r\n const isTokenExpire = isTokenExpired(this.oAuthService.getAccessTokenExpiration());\r\n const rememberMe = this.rememberMeService.get();\r\n if (accessToken && isTokenExpire && !rememberMe) {\r\n this.rememberMeService.remove();\r\n this.oAuthService.logOut();\r\n }\r\n }\r\n\r\n navigateToLogin(queryParams?: Params) {\r\n const router = this.injector.get(Router);\r\n return router.navigate(['/account/login'], { queryParams });\r\n }\r\n\r\n checkIfInternalAuth() {\r\n return true;\r\n }\r\n\r\n login(params: LoginParams): Observable<any> {\r\n const tenant = this.sessionState.getTenant();\r\n\r\n return from(\r\n this.oAuthService.fetchTokenUsingPasswordFlow(\r\n params.username,\r\n params.password,\r\n new HttpHeaders({ ...(tenant && tenant.id && { [this.tenantKey]: tenant.id }) }),\r\n ),\r\n ).pipe(pipeToLogin(params, this.injector));\r\n }\r\n\r\n logout() {\r\n const router = this.injector.get(Router);\r\n const noRedirectToLogoutUrl = true;\r\n return from(this.oAuthService.revokeTokenAndLogout(noRedirectToLogoutUrl)).pipe(\r\n switchMap(() => this.configState.refreshAppState()),\r\n tap(() => {\r\n this.rememberMeService.remove();\r\n router.navigateByUrl('/');\r\n }),\r\n );\r\n }\r\n\r\n protected refreshToken() {\r\n return this.oAuthService.refreshToken().catch(() => {\r\n clearOAuthStorage();\r\n this.rememberMeService.remove();\r\n });\r\n }\r\n}\r\n","import { Injector } from '@angular/core';\r\nimport { AuthCodeFlowStrategy } from '../strategies/auth-code-flow-strategy';\r\nimport { AuthPasswordFlowStrategy } from '../strategies/auth-password-flow-strategy';\r\n\r\nexport const AUTH_FLOW_STRATEGY = {\r\n Code(injector: Injector) {\r\n return new AuthCodeFlowStrategy(injector);\r\n },\r\n Password(injector: Injector) {\r\n return new AuthPasswordFlowStrategy(injector);\r\n },\r\n};\r\n","import { Injectable, Injector } from '@angular/core';\r\nimport { Params } from '@angular/router';\r\nimport { from, Observable, lastValueFrom, EMPTY } from 'rxjs';\r\nimport { filter, map, switchMap, take, tap } from 'rxjs/operators';\r\nimport { AbpAuthResponse, IAuthService, LoginParams } from '@abp/ng.core';\r\nimport { AuthFlowStrategy } from '../strategies';\r\nimport { EnvironmentService } from '@abp/ng.core';\r\nimport { AUTH_FLOW_STRATEGY } from '../tokens/auth-flow-strategy';\r\nimport { OAuthService } from 'angular-oauth2-oidc';\r\nimport { HttpHeaders } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AbpOAuthService implements IAuthService {\r\n private strategy!: AuthFlowStrategy;\r\n private readonly oAuthService: OAuthService;\r\n\r\n get oidc() {\r\n return this.oAuthService.oidc;\r\n }\r\n\r\n set oidc(value) {\r\n this.oAuthService.oidc = value;\r\n }\r\n\r\n get isInternalAuth() {\r\n return this.strategy.isInternalAuth;\r\n }\r\n\r\n constructor(protected injector: Injector) {\r\n this.oAuthService = this.injector.get(OAuthService);\r\n }\r\n\r\n async init() {\r\n const environmentService = this.injector.get(EnvironmentService);\r\n\r\n const result$ = environmentService.getEnvironment$().pipe(\r\n map(env => env?.oAuthConfig),\r\n filter(Boolean),\r\n tap(oAuthConfig => {\r\n this.strategy =\r\n oAuthConfig.responseType === 'code'\r\n ? AUTH_FLOW_STRATEGY.Code(this.injector)\r\n : AUTH_FLOW_STRATEGY.Password(this.injector);\r\n }),\r\n switchMap(() => from(this.strategy.init())),\r\n take(1),\r\n );\r\n\r\n return await lastValueFrom(result$);\r\n }\r\n\r\n logout(queryParams?: Params): Observable<any> {\r\n if (!this.strategy) {\r\n return EMPTY;\r\n }\r\n\r\n return this.strategy.logout(queryParams);\r\n }\r\n\r\n navigateToLogin(queryParams?: Params) {\r\n this.strategy.navigateToLogin(queryParams);\r\n }\r\n\r\n login(params: LoginParams) {\r\n return this.strategy.login(params);\r\n }\r\n\r\n get isAuthenticated(): boolean {\r\n return this.oAuthService.hasValidAccessToken();\r\n }\r\n\r\n loginUsingGrant(\r\n grantType: string,\r\n parameters: object,\r\n headers?: HttpHeaders,\r\n ): Promise<AbpAuthResponse> {\r\n const { clientId: client_id, dummyClientSecret: client_secret } = this.oAuthService;\r\n const access_token = this.oAuthService.getAccessToken();\r\n const p = {\r\n access_token,\r\n grant_type: grantType,\r\n client_id,\r\n ...parameters,\r\n };\r\n\r\n if (client_secret) {\r\n p['client_secret'] = client_secret;\r\n }\r\n\r\n return this.oAuthService.fetchTokenUsingGrant(grantType, p, headers);\r\n }\r\n\r\n getRefreshToken(): string {\r\n return this.oAuthService.getRefreshToken();\r\n }\r\n\r\n getAccessToken(): string {\r\n return this.oAuthService.getAccessToken();\r\n }\r\n\r\n refreshToken(): Promise<AbpAuthResponse> {\r\n return this.oAuthService.refreshToken();\r\n }\r\n\r\n getAccessTokenExpiration(): number {\r\n return this.oAuthService.getAccessTokenExpiration();\r\n }\r\n}\r\n","import { Injectable, signal } from '@angular/core';\r\nimport { OAuthErrorEvent } from 'angular-oauth2-oidc';\r\nimport { AbstractAuthErrorFilter, AuthErrorFilter } from '@abp/ng.core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class OAuthErrorFilterService extends AbstractAuthErrorFilter<\r\n AuthErrorFilter<OAuthErrorEvent>,\r\n OAuthErrorEvent\r\n> {\r\n protected readonly _filters = signal<Array<AuthErrorFilter<OAuthErrorEvent>>>([]);\r\n readonly filters = this._filters.asReadonly();\r\n\r\n get(id: string): AuthErrorFilter<OAuthErrorEvent> {\r\n return this._filters().find(({ id: _id }) => _id === id);\r\n }\r\n\r\n add(filter: AuthErrorFilter<OAuthErrorEvent>): void {\r\n this._filters.update(items => [...items, filter]);\r\n }\r\n\r\n patch(item: Partial<AuthErrorFilter<OAuthErrorEvent>>): void {\r\n const _item = this.filters().find(({ id }) => id === item.id);\r\n if (!_item) {\r\n return;\r\n }\r\n\r\n Object.assign(_item, item);\r\n }\r\n\r\n remove(id: string): void {\r\n const item = this.filters().find(({ id: _id }) => _id === id);\r\n if (!item) {\r\n return;\r\n }\r\n\r\n this._filters.update(items => items.filter(({ id: _id }) => _id !== id));\r\n }\r\n\r\n run(event: OAuthErrorEvent): boolean {\r\n return this.filters()\r\n .filter(({ executable }) => !!executable)\r\n .map(({ execute }) => execute(event))\r\n .some(item => item);\r\n }\r\n}\r\n","import {\r\n AuthService,\r\n AuthGuard,\r\n authGuard,\r\n ApiInterceptor,\r\n PIPE_TO_LOGIN_FN_KEY,\r\n CHECK_AUTHENTICATION_STATE_FN_KEY,\r\n AbpLocalStorageService,\r\n AuthErrorFilterService,\r\n noop,\r\n} from '@abp/ng.core';\r\nimport { APP_INITIALIZER, Provider, makeEnvironmentProviders } from '@angular/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { OAuthModule, OAuthStorage } from 'angular-oauth2-oidc';\r\nimport { AbpOAuthGuard, abpOAuthGuard } from '../guards';\r\nimport { OAuthConfigurationHandler } from '../handlers';\r\nimport { OAuthApiInterceptor } from '../interceptors';\r\nimport { AbpOAuthService, OAuthErrorFilterService } from '../services';\r\nimport { pipeToLogin, checkAccessToken } from '../utils';\r\nimport { NavigateToManageProfileProvider } from './navigate-to-manage-profile.provider';\r\n\r\nexport function provideAbpOAuth() {\r\n const providers = [\r\n {\r\n provide: AuthService,\r\n useClass: AbpOAuthService,\r\n },\r\n {\r\n provide: AuthGuard,\r\n useClass: AbpOAuthGuard,\r\n },\r\n {\r\n provide: authGuard,\r\n useValue: abpOAuthGuard,\r\n },\r\n {\r\n provide: ApiInterceptor,\r\n useClass: OAuthApiInterceptor,\r\n },\r\n {\r\n provide: PIPE_TO_LOGIN_FN_KEY,\r\n useValue: pipeToLogin,\r\n },\r\n {\r\n provide: CHECK_AUTHENTICATION_STATE_FN_KEY,\r\n useValue: checkAccessToken,\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useExisting: ApiInterceptor,\r\n multi: true,\r\n },\r\n NavigateToManageProfileProvider,\r\n {\r\n provide: APP_INITIALIZER,\r\n multi: true,\r\n deps: [OAuthConfigurationHandler],\r\n useFactory: noop,\r\n },\r\n OAuthModule.forRoot().providers as Provider[],\r\n { provide: OAuthStorage, useClass: AbpLocalStorageService },\r\n { provide: AuthErrorFilterService, useExisting: OAuthErrorFilterService },\r\n ];\r\n\r\n return makeEnvironmentProviders(providers);\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { provideAbpOAuth } from './providers';\r\n\r\n/**\r\n * @deprecated AbpOAuthModule is deprecated use `provideAbpOAuth` *function* instead.\r\n */\r\n@NgModule()\r\nexport class AbpOAuthModule {\r\n static forRoot(): ModuleWithProviders<AbpOAuthModule> {\r\n return {\r\n ngModule: AbpOAuthModule,\r\n providers: [provideAbpOAuth()],\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["OAuthService2"],"mappings":"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"}
|
package/lib/oauth.module.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { ModuleWithProviders } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated AbpOAuthModule is deprecated use `provideAbpOAuth` *function* instead.
|
|
5
|
+
*/
|
|
5
6
|
export declare class AbpOAuthModule {
|
|
6
7
|
static forRoot(): ModuleWithProviders<AbpOAuthModule>;
|
|
7
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<AbpOAuthModule, never>;
|
|
8
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AbpOAuthModule, never,
|
|
9
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AbpOAuthModule, never, never, never>;
|
|
9
10
|
static ɵinj: i0.ɵɵInjectorDeclaration<AbpOAuthModule>;
|
|
10
11
|
}
|
package/lib/providers/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function provideAbpOAuth(): import("@angular/core").EnvironmentProviders;
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abp/ng.oauth",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.3.0-rc.2",
|
|
4
4
|
"homepage": "https://abp.io",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/abpframework/abp.git"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@abp/ng.core": "~8.
|
|
11
|
-
"@abp/utils": "~8.
|
|
10
|
+
"@abp/ng.core": "~8.3.0-rc.2",
|
|
11
|
+
"@abp/utils": "~8.3.0-rc.2",
|
|
12
12
|
"angular-oauth2-oidc": "^17.0.0",
|
|
13
13
|
"just-clone": "^6.0.0",
|
|
14
14
|
"just-compare": "^2.0.0",
|