From e01f1ea97dfe9ffa950b90537833377fd73f6b2a Mon Sep 17 00:00:00 2001 From: Amedeo Lepore Date: Tue, 19 Dec 2023 15:02:16 +0100 Subject: [PATCH] [AAE-18459] Fix invalidateSession is called when auth is not initilized by js-api (#9152) * [AAE-18459] Replace all placeholders if the configuration key is an object * [AAE-18459] don't invalidate session if authentication is not handled by js-api --- .../lib/app-config/app-config.service.spec.ts | 16 ++++++++++++++++ .../src/lib/app-config/app-config.service.ts | 6 +++--- lib/js-api/src/alfrescoApi.ts | 2 +- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/lib/core/src/lib/app-config/app-config.service.spec.ts b/lib/core/src/lib/app-config/app-config.service.spec.ts index a6b045da5fb..7ec1b98f959 100644 --- a/lib/core/src/lib/app-config/app-config.service.spec.ts +++ b/lib/core/src/lib/app-config/app-config.service.spec.ts @@ -198,4 +198,20 @@ describe('AppConfigService', () => { expect(fakeCallBack).toHaveBeenCalled(); }); + it('should replace all the configuration placeholders if the provided key is an object', () => { + appConfigService.config.objectKey = { + firstUrl: '{protocol}//{hostname}{:port}', + secondUrl: '{protocol}//{hostname}{:port}', + thirdUrl: '{protocol}//{hostname}{:port}' + }; + spyOn(appConfigService, 'getLocationHostname').and.returnValue('localhost'); + spyOn(appConfigService, 'getLocationPort').and.returnValue(':8080'); + spyOn(appConfigService, 'getLocationProtocol').and.returnValue('http:'); + + expect(appConfigService.get('objectKey').firstUrl).toEqual('http://localhost:8080'); + expect(appConfigService.get('objectKey').secondUrl).toEqual('http://localhost:8080'); + expect(appConfigService.get('objectKey').thirdUrl).toEqual('http://localhost:8080'); + }); + + }); diff --git a/lib/core/src/lib/app-config/app-config.service.ts b/lib/core/src/lib/app-config/app-config.service.ts index 314522a5add..c0e0606f6bc 100644 --- a/lib/core/src/lib/app-config/app-config.service.ts +++ b/lib/core/src/lib/app-config/app-config.service.ts @@ -123,9 +123,9 @@ export class AppConfigService { } if (typeof result === 'object') { - result = JSON.parse(JSON.stringify(result).replace('{hostname}', this.getLocationHostname())); - result = JSON.parse(JSON.stringify(result).replace('{:port}', this.getLocationPort(':'))); - result = JSON.parse(JSON.stringify(result).replace('{protocol}', this.getLocationProtocol())); + result = JSON.parse(JSON.stringify(result).replace(/{hostname}/g, this.getLocationHostname())); + result = JSON.parse(JSON.stringify(result).replace(/{:port}/g, this.getLocationPort(':'))); + result = JSON.parse(JSON.stringify(result).replace(/{protocol}/g, this.getLocationProtocol())); } if (result === undefined) { diff --git a/lib/js-api/src/alfrescoApi.ts b/lib/js-api/src/alfrescoApi.ts index 33daa63b0f6..f46975c506b 100644 --- a/lib/js-api/src/alfrescoApi.ts +++ b/lib/js-api/src/alfrescoApi.ts @@ -207,7 +207,7 @@ export class AlfrescoApi implements Emitter, AlfrescoApiType { /**@private? */ errorHandler(error: { status?: number }) { - if (error.status === 401) { + if (this.config.oauthInit && error.status === 401) { this.invalidateSession(); }