diff --git a/wsmaster/che-core-api-factory/src/main/java/org/eclipse/che/api/factory/server/FactoryService.java b/wsmaster/che-core-api-factory/src/main/java/org/eclipse/che/api/factory/server/FactoryService.java index 839780c865..7283462b49 100644 --- a/wsmaster/che-core-api-factory/src/main/java/org/eclipse/che/api/factory/server/FactoryService.java +++ b/wsmaster/che-core-api-factory/src/main/java/org/eclipse/che/api/factory/server/FactoryService.java @@ -151,8 +151,10 @@ public class FactoryService extends Service { FactoryParametersResolver factoryParametersResolver = factoryParametersResolverHolder.getFactoryParametersResolver( singletonMap(URL_PARAMETER_NAME, url)); - personalAccessTokenManager.getAndStore( - factoryParametersResolver.parseFactoryUrl(url).getProviderUrl()); + if (!authorisationRequestManager.isStored(factoryParametersResolver.getProviderName())) { + personalAccessTokenManager.getAndStore( + factoryParametersResolver.parseFactoryUrl(url).getProviderUrl()); + } } catch (ScmCommunicationException | ScmConfigurationPersistenceException | UnknownScmProviderException diff --git a/wsmaster/che-core-api-factory/src/test/java/org/eclipse/che/api/factory/server/FactoryServiceTest.java b/wsmaster/che-core-api-factory/src/test/java/org/eclipse/che/api/factory/server/FactoryServiceTest.java index c5bfba12f5..0f9fd72867 100644 --- a/wsmaster/che-core-api-factory/src/test/java/org/eclipse/che/api/factory/server/FactoryServiceTest.java +++ b/wsmaster/che-core-api-factory/src/test/java/org/eclipse/che/api/factory/server/FactoryServiceTest.java @@ -269,6 +269,7 @@ public class FactoryServiceTest { final FactoryParametersResolverHolder dummyHolder = spy(factoryParametersResolverHolder); FactoryParametersResolver factoryParametersResolver = mock(FactoryParametersResolver.class); doReturn(factoryParametersResolver).when(dummyHolder).getFactoryParametersResolver(anyMap()); + when(authorisationRequestManager.isStored(any())).thenReturn(true); service = new FactoryService( acceptValidator,