Skip to content

Commit 130c772

Browse files
committed
Get rid of the redundant multiuser module
Signed-off-by: ivinokur <[email protected]> Signed-off-by: Ihor Vinokut <[email protected]>
1 parent 7377097 commit 130c772

File tree

362 files changed

+85
-30735
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

362 files changed

+85
-30735
lines changed

assembly/assembly-wsmaster-war/pom.xml

Lines changed: 0 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,6 @@
3535
<groupId>ch.qos.logback</groupId>
3636
<artifactId>logback-classic</artifactId>
3737
</dependency>
38-
<dependency>
39-
<groupId>com.auth0</groupId>
40-
<artifactId>jwks-rsa</artifactId>
41-
</dependency>
4238
<dependency>
4339
<groupId>com.google.guava</groupId>
4440
<artifactId>guava</artifactId>
@@ -67,10 +63,6 @@
6763
<groupId>io.jaegertracing</groupId>
6864
<artifactId>jaeger-tracerresolver</artifactId>
6965
</dependency>
70-
<dependency>
71-
<groupId>io.jsonwebtoken</groupId>
72-
<artifactId>jjwt-api</artifactId>
73-
</dependency>
7466
<dependency>
7567
<groupId>io.jsonwebtoken</groupId>
7668
<artifactId>jjwt-impl</artifactId>
@@ -235,82 +227,6 @@
235227
<groupId>org.eclipse.che.infrastructure</groupId>
236228
<artifactId>infrastructure-openshift</artifactId>
237229
</dependency>
238-
<dependency>
239-
<groupId>org.eclipse.che.infrastructure</groupId>
240-
<artifactId>infrastructure-permission</artifactId>
241-
</dependency>
242-
<dependency>
243-
<groupId>org.eclipse.che.multiuser</groupId>
244-
<artifactId>che-multiuser-api-authentication-commons</artifactId>
245-
</dependency>
246-
<dependency>
247-
<groupId>org.eclipse.che.multiuser</groupId>
248-
<artifactId>che-multiuser-api-authorization</artifactId>
249-
</dependency>
250-
<dependency>
251-
<groupId>org.eclipse.che.multiuser</groupId>
252-
<artifactId>che-multiuser-api-authorization-impl</artifactId>
253-
</dependency>
254-
<dependency>
255-
<groupId>org.eclipse.che.multiuser</groupId>
256-
<artifactId>che-multiuser-api-permission</artifactId>
257-
</dependency>
258-
<dependency>
259-
<groupId>org.eclipse.che.multiuser</groupId>
260-
<artifactId>che-multiuser-api-workspace-activity</artifactId>
261-
</dependency>
262-
<dependency>
263-
<groupId>org.eclipse.che.multiuser</groupId>
264-
<artifactId>che-multiuser-keycloak-server</artifactId>
265-
</dependency>
266-
<dependency>
267-
<groupId>org.eclipse.che.multiuser</groupId>
268-
<artifactId>che-multiuser-keycloak-token-provider</artifactId>
269-
</dependency>
270-
<dependency>
271-
<groupId>org.eclipse.che.multiuser</groupId>
272-
<artifactId>che-multiuser-machine-authentication</artifactId>
273-
</dependency>
274-
<dependency>
275-
<groupId>org.eclipse.che.multiuser</groupId>
276-
<artifactId>che-multiuser-oidc</artifactId>
277-
</dependency>
278-
<dependency>
279-
<groupId>org.eclipse.che.multiuser</groupId>
280-
<artifactId>che-multiuser-permission-devfile</artifactId>
281-
</dependency>
282-
<dependency>
283-
<groupId>org.eclipse.che.multiuser</groupId>
284-
<artifactId>che-multiuser-permission-logger</artifactId>
285-
</dependency>
286-
<dependency>
287-
<groupId>org.eclipse.che.multiuser</groupId>
288-
<artifactId>che-multiuser-permission-resource</artifactId>
289-
</dependency>
290-
<dependency>
291-
<groupId>org.eclipse.che.multiuser</groupId>
292-
<artifactId>che-multiuser-permission-system</artifactId>
293-
</dependency>
294-
<dependency>
295-
<groupId>org.eclipse.che.multiuser</groupId>
296-
<artifactId>che-multiuser-permission-user</artifactId>
297-
</dependency>
298-
<dependency>
299-
<groupId>org.eclipse.che.multiuser</groupId>
300-
<artifactId>che-multiuser-permission-workspace</artifactId>
301-
</dependency>
302-
<dependency>
303-
<groupId>org.eclipse.che.multiuser</groupId>
304-
<artifactId>che-multiuser-permission-workspace-activity</artifactId>
305-
</dependency>
306-
<dependency>
307-
<groupId>org.eclipse.che.multiuser</groupId>
308-
<artifactId>che-multiuser-personal-account</artifactId>
309-
</dependency>
310-
<dependency>
311-
<groupId>org.eclipse.che.multiuser</groupId>
312-
<artifactId>che-multiuser-sql-schema</artifactId>
313-
</dependency>
314230
<dependency>
315231
<groupId>org.eclipse.persistence</groupId>
316232
<artifactId>org.eclipse.persistence.core</artifactId>

assembly/assembly-wsmaster-war/src/main/java/org/eclipse/che/api/deploy/WsMasterModule.java

Lines changed: 11 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,13 @@
1313

1414
import static com.google.inject.matcher.Matchers.subclassesOf;
1515
import static org.eclipse.che.inject.Matchers.names;
16-
import static org.eclipse.che.multiuser.api.permission.server.SystemDomain.SYSTEM_DOMAIN_ACTIONS;
1716

18-
import com.auth0.jwk.JwkProvider;
1917
import com.google.inject.AbstractModule;
2018
import com.google.inject.TypeLiteral;
2119
import com.google.inject.assistedinject.FactoryModuleBuilder;
2220
import com.google.inject.multibindings.MapBinder;
2321
import com.google.inject.multibindings.Multibinder;
2422
import com.google.inject.name.Names;
25-
import io.jsonwebtoken.JwtParser;
26-
import io.jsonwebtoken.SigningKeyResolver;
2723
import java.util.HashMap;
2824
import java.util.Map;
2925
import org.eclipse.che.api.core.notification.RemoteSubscriptionStorage;
@@ -67,6 +63,7 @@
6763
import org.eclipse.che.api.workspace.server.WorkspaceStatusCache;
6864
import org.eclipse.che.api.workspace.server.devfile.DevfileModule;
6965
import org.eclipse.che.api.workspace.server.hc.ServersCheckerFactory;
66+
import org.eclipse.che.api.workspace.server.jpa.WorkspaceJpaModule;
7067
import org.eclipse.che.api.workspace.server.spi.provision.InternalEnvironmentProvisioner;
7168
import org.eclipse.che.api.workspace.server.spi.provision.MachineNameProvisioner;
7269
import org.eclipse.che.api.workspace.server.spi.provision.env.AgentAuthEnableEnvVarProvider;
@@ -82,22 +79,11 @@
8279
import org.eclipse.che.api.workspace.server.spi.provision.env.WorkspaceIdEnvVarProvider;
8380
import org.eclipse.che.api.workspace.server.spi.provision.env.WorkspaceNameEnvVarProvider;
8481
import org.eclipse.che.api.workspace.server.spi.provision.env.WorkspaceNamespaceNameEnvVarProvider;
82+
import org.eclipse.che.api.workspace.server.token.MachineTokenProvider;
8583
import org.eclipse.che.api.workspace.server.wsplugins.ChePluginsApplier;
8684
import org.eclipse.che.commons.observability.deploy.ExecutorWrapperModule;
8785
import org.eclipse.che.core.tracing.metrics.TracingMetricsModule;
8886
import org.eclipse.che.inject.DynaModule;
89-
import org.eclipse.che.multiuser.api.authentication.commons.token.HeaderRequestTokenExtractor;
90-
import org.eclipse.che.multiuser.api.authentication.commons.token.RequestTokenExtractor;
91-
import org.eclipse.che.multiuser.api.permission.server.PermissionChecker;
92-
import org.eclipse.che.multiuser.api.permission.server.PermissionCheckerImpl;
93-
import org.eclipse.che.multiuser.api.workspace.activity.MultiUserWorkspaceActivityModule;
94-
import org.eclipse.che.multiuser.machine.authentication.server.MachineAuthModule;
95-
import org.eclipse.che.multiuser.oidc.OIDCInfo;
96-
import org.eclipse.che.multiuser.oidc.OIDCInfoProvider;
97-
import org.eclipse.che.multiuser.oidc.OIDCJwkProvider;
98-
import org.eclipse.che.multiuser.oidc.OIDCJwtParserProvider;
99-
import org.eclipse.che.multiuser.oidc.OIDCSigningKeyResolver;
100-
import org.eclipse.che.multiuser.permission.user.UserServicePermissionsFilter;
10187
import org.eclipse.che.security.PBKDF2PasswordEncryptor;
10288
import org.eclipse.che.security.PasswordEncryptor;
10389
import org.eclipse.che.security.oauth.EmbeddedOAuthAPI;
@@ -108,6 +94,7 @@
10894
import org.eclipse.che.workspace.infrastructure.kubernetes.KubernetesInfrastructure;
10995
import org.eclipse.che.workspace.infrastructure.kubernetes.environment.KubernetesEnvironment;
11096
import org.eclipse.che.workspace.infrastructure.kubernetes.multiuser.oauth.KubernetesOidcProviderConfigFactory;
97+
import org.eclipse.che.workspace.infrastructure.kubernetes.multiuser.oauth.RequestTokenExtractor;
11198
import org.eclipse.che.workspace.infrastructure.kubernetes.server.secure.SecureServerExposer;
11299
import org.eclipse.che.workspace.infrastructure.kubernetes.server.secure.SecureServerExposerFactory;
113100
import org.eclipse.che.workspace.infrastructure.kubernetes.server.secure.jwtproxy.PassThroughProxySecureServerExposer;
@@ -120,7 +107,7 @@
120107
import org.eclipse.che.workspace.infrastructure.openshift.OpenShiftInfraModule;
121108
import org.eclipse.che.workspace.infrastructure.openshift.OpenShiftInfrastructure;
122109
import org.eclipse.che.workspace.infrastructure.openshift.environment.OpenShiftEnvironment;
123-
import org.eclipse.che.workspace.infrastructure.openshift.multiuser.oauth.KeycloakProviderConfigFactory;
110+
import org.eclipse.che.workspace.infrastructure.openshift.multiuser.oauth.HeaderRequestTokenExtractor;
124111
import org.eclipse.persistence.config.PersistenceUnitProperties;
125112

126113
/** @author andrew00x */
@@ -324,9 +311,6 @@ private void configureMultiUserMode(
324311
if (OpenShiftInfrastructure.NAME.equals(infrastructure)
325312
|| KubernetesInfrastructure.NAME.equals(infrastructure)) {
326313
install(new ReplicationModule(persistenceProperties));
327-
bind(
328-
org.eclipse.che.multiuser.permission.workspace.infra.kubernetes
329-
.BrokerServicePermissionFilter.class);
330314
configureJwtProxySecureProvisioner(infrastructure);
331315
} else {
332316
bind(RemoteSubscriptionStorage.class)
@@ -337,70 +321,24 @@ private void configureMultiUserMode(
337321
.to(org.eclipse.che.api.workspace.server.DefaultWorkspaceStatusCache.class);
338322
}
339323

340-
if (Boolean.parseBoolean(System.getenv("CHE_AUTH_NATIVEUSER"))) {
341-
bind(KubernetesClientConfigFactory.class).to(KubernetesOidcProviderConfigFactory.class);
342-
} else if (OpenShiftInfrastructure.NAME.equals(infrastructure)) {
343-
bind(KubernetesClientConfigFactory.class).to(KeycloakProviderConfigFactory.class);
344-
}
324+
bind(KubernetesClientConfigFactory.class).to(KubernetesOidcProviderConfigFactory.class);
345325

346326
persistenceProperties.put(
347327
PersistenceUnitProperties.EXCEPTION_HANDLER_CLASS,
348328
"org.eclipse.che.core.db.postgresql.jpa.eclipselink.PostgreSqlExceptionHandler");
349329

350-
install(
351-
new org.eclipse.che.multiuser.permission.workspace.server.WorkspaceApiPermissionsModule());
352-
install(
353-
new org.eclipse.che.multiuser.permission.workspace.server.jpa
354-
.MultiuserWorkspaceJpaModule());
355-
install(new MultiUserWorkspaceActivityModule());
356-
install(
357-
new org.eclipse.che.multiuser.permission.devfile.server.jpa
358-
.MultiuserUserDevfileJpaModule());
359-
install(
360-
new org.eclipse.che.multiuser.permission.devfile.server.UserDevfileApiPermissionsModule());
361-
362-
// Permission filters
363-
bind(org.eclipse.che.multiuser.permission.system.SystemServicePermissionsFilter.class);
364-
bind(org.eclipse.che.multiuser.permission.system.JvmServicePermissionsFilter.class);
365-
bind(
366-
org.eclipse.che.multiuser.permission.system.SystemEventsSubscriptionPermissionsCheck.class);
367-
368-
Multibinder<String> binder =
369-
Multibinder.newSetBinder(binder(), String.class, Names.named(SYSTEM_DOMAIN_ACTIONS));
370-
binder.addBinding().toInstance(UserServicePermissionsFilter.MANAGE_USERS_ACTION);
371-
bind(org.eclipse.che.multiuser.permission.user.UserProfileServicePermissionsFilter.class);
372-
bind(org.eclipse.che.multiuser.permission.user.UserServicePermissionsFilter.class);
373-
bind(org.eclipse.che.multiuser.permission.logger.LoggerServicePermissionsFilter.class);
374-
375-
bind(org.eclipse.che.multiuser.permission.workspace.activity.ActivityPermissionsFilter.class);
376-
377-
bind(
378-
org.eclipse.che.multiuser.permission.resource.filters.ResourceServicePermissionsFilter
379-
.class);
380-
bind(
381-
org.eclipse.che.multiuser.permission.resource.filters
382-
.FreeResourcesLimitServicePermissionsFilter.class);
383-
384-
if (Boolean.parseBoolean(System.getenv("CHE_AUTH_NATIVEUSER"))) {
385-
bind(RequestTokenExtractor.class).to(HeaderRequestTokenExtractor.class);
386-
if (KubernetesInfrastructure.NAME.equals(infrastructure)) {
387-
bind(OIDCInfo.class).toProvider(OIDCInfoProvider.class).asEagerSingleton();
388-
bind(SigningKeyResolver.class).to(OIDCSigningKeyResolver.class);
389-
bind(JwtParser.class).toProvider(OIDCJwtParserProvider.class);
390-
bind(JwkProvider.class).toProvider(OIDCJwkProvider.class);
391-
}
392-
bind(TokenValidator.class).to(NotImplementedTokenValidator.class);
393-
bind(ProfileDao.class).to(JpaProfileDao.class);
394-
bind(OAuthAPI.class).to(EmbeddedOAuthAPI.class).asEagerSingleton();
395-
}
330+
bind(RequestTokenExtractor.class).to(HeaderRequestTokenExtractor.class);
331+
bind(ProfileDao.class).to(JpaProfileDao.class);
332+
bind(OAuthAPI.class).to(EmbeddedOAuthAPI.class).asEagerSingleton();
396333

397-
install(new MachineAuthModule());
334+
install(new WorkspaceJpaModule());
335+
bind(TokenValidator.class).to(NotImplementedTokenValidator.class);
336+
bind(MachineTokenProvider.class).to(MachineTokenProvider.EmptyMachineTokenProvider.class);
398337

399338
// User and profile - use profile from keycloak and other stuff is JPA
400339
bind(PasswordEncryptor.class).to(PBKDF2PasswordEncryptor.class);
401340
bind(UserDao.class).to(JpaUserDao.class);
402341
bind(PreferenceDao.class).to(JpaPreferenceDao.class);
403-
bind(PermissionChecker.class).to(PermissionCheckerImpl.class);
404342

405343
bindConstant().annotatedWith(Names.named("che.agents.auth_enabled")).to(true);
406344
}

assembly/assembly-wsmaster-war/src/main/java/org/eclipse/che/api/deploy/WsMasterServletModule.java

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2012-2021 Red Hat, Inc.
2+
* Copyright (c) 2012-2025 Red Hat, Inc.
33
* This program and the accompanying materials are made
44
* available under the terms of the Eclipse Public License 2.0
55
* which is available at https://www.eclipse.org/legal/epl-2.0/
@@ -17,10 +17,8 @@
1717
import org.eclipse.che.commons.logback.filter.RequestIdLoggerFilter;
1818
import org.eclipse.che.inject.ConfigurationException;
1919
import org.eclipse.che.inject.DynaModule;
20-
import org.eclipse.che.multiuser.keycloak.server.deploy.KeycloakServletModule;
21-
import org.eclipse.che.multiuser.machine.authentication.server.MachineLoginFilter;
22-
import org.eclipse.che.multiuser.oidc.filter.OidcTokenInitializationFilter;
2320
import org.eclipse.che.workspace.infrastructure.kubernetes.KubernetesInfrastructure;
21+
import org.eclipse.che.workspace.infrastructure.kubernetes.multiuser.oauth.OidcTokenInitializationFilter;
2422
import org.eclipse.che.workspace.infrastructure.openshift.OpenShiftInfrastructure;
2523
import org.eclipse.che.workspace.infrastructure.openshift.multiuser.oauth.OpenshiftTokenInitializationFilter;
2624
import org.everrest.guice.servlet.GuiceEverrestServlet;
@@ -47,14 +45,7 @@ protected void configureServlets() {
4745
// Matching group SHOULD contain forward slash.
4846
serveRegex("^(?!/websocket.?)(.*)")
4947
.with(GuiceEverrestServlet.class, ImmutableMap.of("openapi.context.id", "org.eclipse.che"));
50-
51-
if (Boolean.parseBoolean(System.getenv("CHE_AUTH_NATIVEUSER"))) {
52-
LOG.info("Running in native-user mode ...");
53-
configureNativeUserMode();
54-
} else {
55-
LOG.info("Running in classic multi-user mode ...");
56-
configureMultiUserMode();
57-
}
48+
configureNativeUserMode();
5849

5950
if (Boolean.valueOf(System.getenv("CHE_METRICS_ENABLED"))) {
6051
install(new org.eclipse.che.core.metrics.MetricsServletModule());
@@ -71,11 +62,6 @@ private boolean isCheCorsEnabled() {
7162
}
7263
}
7364

74-
private void configureMultiUserMode() {
75-
filterRegex(".*").through(MachineLoginFilter.class);
76-
install(new KeycloakServletModule());
77-
}
78-
7965
private void configureNativeUserMode() {
8066
final String infrastructure = System.getenv("CHE_INFRASTRUCTURE_ACTIVE");
8167
if (OpenShiftInfrastructure.NAME.equals(infrastructure)) {

assembly/assembly-wsmaster-war/src/main/webapp/WEB-INF/web.xml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!--
33
4-
Copyright (c) 2012-2021 Red Hat, Inc.
4+
Copyright (c) 2012-2025 Red Hat, Inc.
55
This program and the accompanying materials are made
66
available under the terms of the Eclipse Public License 2.0
77
which is available at https://www.eclipse.org/legal/epl-2.0/
@@ -36,8 +36,4 @@
3636
<resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type>
3737
</resource-env-ref>
3838

39-
<listener>
40-
<listener-class>org.eclipse.che.multiuser.api.authentication.commons.DestroySessionListener</listener-class>
41-
</listener>
42-
4339
</web-app>

0 commit comments

Comments
 (0)