From 09837c32be1563142eb93626c2e4eafac1bc355d Mon Sep 17 00:00:00 2001 From: Max Shaposhnik Date: Thu, 13 Jul 2017 11:56:10 +0300 Subject: [PATCH] Revert "Revert "Fix patch with master"" This reverts commit 5fb9d0bb4227388638520b16069032d1cf07cea4. --- assembly/assembly-main/pom.xml | 2 +- assembly2/assembly-wsmaster-war/pom.xml | 12 +++++ .../patches/src/app/index.module.ts.patch | 6 +-- .../che-plugin-docker-machine/pom.xml | 4 ++ .../machine/DockerInstanceRuntimeInfo.java | 2 + .../docker/machine/MachineProviderImpl.java | 14 +++++ .../machine/MachineProviderImplTest.java | 6 ++- .../maven-server/maven-server-impl/pom.xml | 52 +++++++++---------- pom.xml | 10 ++++ wsagent/che-core-api-languageserver/pom.xml | 20 +++---- wsmaster/pom.xml | 2 + 11 files changed, 89 insertions(+), 41 deletions(-) diff --git a/assembly/assembly-main/pom.xml b/assembly/assembly-main/pom.xml index 8ceefc74d3..bcd6530902 100644 --- a/assembly/assembly-main/pom.xml +++ b/assembly/assembly-main/pom.xml @@ -104,7 +104,7 @@ false false - ${project.basedir}/src/assembly/assembly.xml + ${project.basedir}/src/assembly/assembly.xml eclipse-che-${project.version} posix diff --git a/assembly2/assembly-wsmaster-war/pom.xml b/assembly2/assembly-wsmaster-war/pom.xml index f1c438a856..08a0d7ebb8 100644 --- a/assembly2/assembly-wsmaster-war/pom.xml +++ b/assembly2/assembly-wsmaster-war/pom.xml @@ -32,6 +32,18 @@ assembly-wsmaster-war war + + org.eclipse.che.core + che-core-api-workspace + + + org.eclipse.che.core + che-core-api-workspace + + + org.eclipse.che.core + che-machine-authentication + org.eclipse.che.plugin che-plugin-keycloak-server diff --git a/assembly2/dashboard/src/main/patches/src/app/index.module.ts.patch b/assembly2/dashboard/src/main/patches/src/app/index.module.ts.patch index efef6b2305..d803c8a92e 100644 --- a/assembly2/dashboard/src/main/patches/src/app/index.module.ts.patch +++ b/assembly2/dashboard/src/main/patches/src/app/index.module.ts.patch @@ -1,8 +1,8 @@ --- src/app/index.module.ts +++ src/app/index.module.ts -@@ -32,12 +32,36 @@ - import {StacksConfig} from './stacks/stacks-config'; - import {DemoComponentsCtrl} from './demo-components/demo-components.controller'; +@@ -36,12 +36,36 @@ + import {CheBranding} from '../components/branding/che-branding.factory'; + import {ChePreferences} from '../components/api/che-preferences.factory'; - +import * as Keycloak from '../components/keycloak/keycloak'; + diff --git a/plugins/plugin-docker/che-plugin-docker-machine/pom.xml b/plugins/plugin-docker/che-plugin-docker-machine/pom.xml index cc1021e807..eb12010b9a 100644 --- a/plugins/plugin-docker/che-plugin-docker-machine/pom.xml +++ b/plugins/plugin-docker/che-plugin-docker-machine/pom.xml @@ -93,6 +93,10 @@ org.eclipse.che.core che-core-commons-schedule + + org.eclipse.che.core + che-machine-authentication + org.eclipse.che.plugin che-plugin-docker-client diff --git a/plugins/plugin-docker/che-plugin-docker-machine/src/main/java/org/eclipse/che/plugin/docker/machine/DockerInstanceRuntimeInfo.java b/plugins/plugin-docker/che-plugin-docker-machine/src/main/java/org/eclipse/che/plugin/docker/machine/DockerInstanceRuntimeInfo.java index bb1ad21831..99feaf6e42 100644 --- a/plugins/plugin-docker/che-plugin-docker-machine/src/main/java/org/eclipse/che/plugin/docker/machine/DockerInstanceRuntimeInfo.java +++ b/plugins/plugin-docker/che-plugin-docker-machine/src/main/java/org/eclipse/che/plugin/docker/machine/DockerInstanceRuntimeInfo.java @@ -84,6 +84,8 @@ public class DockerInstanceRuntimeInfo implements MachineRuntimeInfo { */ public static final String USER_TOKEN = "USER_TOKEN"; + public static final String MACHINE_TOKEN = "MACHINE_TOKEN"; + private final ContainerInfo info; private final Map serversConf; private final String internalHost; diff --git a/plugins/plugin-docker/che-plugin-docker-machine/src/main/java/org/eclipse/che/plugin/docker/machine/MachineProviderImpl.java b/plugins/plugin-docker/che-plugin-docker-machine/src/main/java/org/eclipse/che/plugin/docker/machine/MachineProviderImpl.java index 5fd1681a89..9fdd1252c9 100644 --- a/plugins/plugin-docker/che-plugin-docker-machine/src/main/java/org/eclipse/che/plugin/docker/machine/MachineProviderImpl.java +++ b/plugins/plugin-docker/che-plugin-docker-machine/src/main/java/org/eclipse/che/plugin/docker/machine/MachineProviderImpl.java @@ -76,6 +76,7 @@ import org.eclipse.che.plugin.docker.client.params.network.ConnectContainerToNet import org.eclipse.che.plugin.docker.client.params.network.CreateNetworkParams; import org.eclipse.che.plugin.docker.client.params.network.RemoveNetworkParams; import org.eclipse.che.plugin.docker.machine.node.DockerNode; +import org.eclipse.che.machine.authentication.server.MachineTokenRegistry; import org.slf4j.Logger; import javax.inject.Inject; @@ -149,6 +150,7 @@ public class MachineProviderImpl implements MachineInstanceProvider { private final DockerInstanceStopDetector dockerInstanceStopDetector; private final RequestTransmitter transmitter; private final JsonRpcEndpointToMachineNameHolder jsonRpcEndpointToMachineNameHolder; + private final MachineTokenRegistry machineTokenRegistry; private final boolean doForcePullImage; private final boolean privilegedMode; private final int pidsLimit; @@ -179,6 +181,7 @@ public class MachineProviderImpl implements MachineInstanceProvider { DockerInstanceStopDetector dockerInstanceStopDetector, RequestTransmitter transmitter, JsonRpcEndpointToMachineNameHolder jsonRpcEndpointToMachineNameHolder, + MachineTokenRegistry machineTokenRegistry, @Named("machine.docker.dev_machine.machine_servers") Set devMachineServers, @Named("machine.docker.machine_servers") Set allMachinesServers, @Named("machine.docker.dev_machine.machine_volumes") Set devMachineSystemVolumes, @@ -204,6 +207,7 @@ public class MachineProviderImpl implements MachineInstanceProvider { this.docker = dockerProvider.get(); this.dockerCredentials = dockerCredentials; this.dockerMachineFactory = dockerMachineFactory; + this.machineTokenRegistry = machineTokenRegistry; this.dockerInstanceStopDetector = dockerInstanceStopDetector; this.transmitter = transmitter; this.doForcePullImage = doForcePullImage; @@ -658,6 +662,7 @@ public class MachineProviderImpl implements MachineInstanceProvider { env = new HashMap<>(devMachineEnvVariables); env.put(DockerInstanceRuntimeInfo.USER_TOKEN, getUserToken(workspaceId)); + env.put(DockerInstanceRuntimeInfo.MACHINE_TOKEN, getMachineToken(workspaceId)); } else { portsToExpose = commonMachinePortsToExpose; env = new HashMap<>(commonMachineEnvVariables); @@ -788,6 +793,15 @@ public class MachineProviderImpl implements MachineInstanceProvider { return EnvironmentContext.getCurrent().getSubject().getToken(); } + protected String getMachineToken(String wsId) { + String userToken = null; + try { + userToken = machineTokenRegistry.getOrCreateToken(EnvironmentContext.getCurrent().getSubject().getUserId(), wsId); + } catch (NotFoundException ignore) { + } + return MoreObjects.firstNonNull(userToken, ""); + } + /** * Returns set that contains all non empty and non nullable values from specified set */ diff --git a/plugins/plugin-docker/che-plugin-docker-machine/src/test/java/org/eclipse/che/plugin/docker/machine/MachineProviderImplTest.java b/plugins/plugin-docker/che-plugin-docker-machine/src/test/java/org/eclipse/che/plugin/docker/machine/MachineProviderImplTest.java index e2d728eeae..34ccfbf9c4 100644 --- a/plugins/plugin-docker/che-plugin-docker-machine/src/test/java/org/eclipse/che/plugin/docker/machine/MachineProviderImplTest.java +++ b/plugins/plugin-docker/che-plugin-docker-machine/src/test/java/org/eclipse/che/plugin/docker/machine/MachineProviderImplTest.java @@ -44,6 +44,7 @@ import org.eclipse.che.plugin.docker.client.params.RemoveImageParams; import org.eclipse.che.plugin.docker.client.params.StartContainerParams; import org.eclipse.che.plugin.docker.client.params.TagParams; import org.eclipse.che.plugin.docker.machine.node.DockerNode; +import org.eclipse.che.machine.authentication.server.MachineTokenRegistry; import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.testng.MockitoTestNGListener; @@ -143,6 +144,9 @@ public class MachineProviderImplTest { @Mock private RecipeRetriever recipeRetriever; + @Mock + private MachineTokenRegistry tokenRegistry; + @Mock private WindowsPathEscaper pathEscaper; @@ -1784,6 +1788,7 @@ public class MachineProviderImplTest { dockerInstanceStopDetector, transmitter, jsonRpcEndpointToMachineNameHolder, + tokenRegistry, devMachineServers, allMachineServers, devMachineVolumes, @@ -1807,7 +1812,6 @@ public class MachineProviderImplTest { emptyMap())); doNothing().when(provider).readContainerLogsInSeparateThread(anyString(), anyString(), anyString(), any(LineConsumer.class)); - return provider; } } diff --git a/plugins/plugin-maven/maven-server/maven-server-impl/pom.xml b/plugins/plugin-maven/maven-server/maven-server-impl/pom.xml index 26d23daeba..5c15b8dff7 100644 --- a/plugins/plugin-maven/maven-server/maven-server-impl/pom.xml +++ b/plugins/plugin-maven/maven-server/maven-server-impl/pom.xml @@ -246,31 +246,31 @@ - integration - - false - - - - - org.apache.maven.plugins - maven-failsafe-plugin - - - - integration-test - verify - - - - - - **/maven/server/** - - - - - - + integration + + false + + + + + org.apache.maven.plugins + maven-failsafe-plugin + + + + integration-test + verify + + + + + + **/maven/server/** + + + + + + diff --git a/pom.xml b/pom.xml index 3457c455cb..2ecb509306 100644 --- a/pom.xml +++ b/pom.xml @@ -528,6 +528,16 @@ che-ide-core ${che.version} + + org.eclipse.che.core + che-machine-authentication + ${che.version} + + + org.eclipse.che.core + che-machine-authentication-shared + ${che.version} + org.eclipse.che.core che-wsagent-core diff --git a/wsagent/che-core-api-languageserver/pom.xml b/wsagent/che-core-api-languageserver/pom.xml index 8931d79d0e..1e6d7000b9 100644 --- a/wsagent/che-core-api-languageserver/pom.xml +++ b/wsagent/che-core-api-languageserver/pom.xml @@ -29,10 +29,10 @@ com.google.code.gson gson - - com.google.guava - guava - + + com.google.guava + guava + com.google.inject guice @@ -137,12 +137,12 @@ **/JsonUtil.java **/DtoConversionTest.java **/LanguageDescription.java - **/ServerCapabilitiesOverlay.java - **/DocumentFilter.java - **/CheLanguageClient.java - **/LanguageServerDescription.java - **/LSOperation.java - **/OperationUtil.java + **/ServerCapabilitiesOverlay.java + **/DocumentFilter.java + **/CheLanguageClient.java + **/LanguageServerDescription.java + **/LSOperation.java + **/OperationUtil.java diff --git a/wsmaster/pom.xml b/wsmaster/pom.xml index 92e45bca5b..d90d17dbed 100644 --- a/wsmaster/pom.xml +++ b/wsmaster/pom.xml @@ -44,5 +44,7 @@ integration-tests che-core-api-system che-core-api-system-shared + che-machine-authentication-shared + che-machine-authentication