chore: Decommissioning Organization, Resource, Permission, Keycloak, SSH, Activity services

Signed-off-by: Ilya Buziuk <ibuziuk@redhat.com>
pull/386/head
Ilya Buziuk 2022-11-09 12:00:39 +01:00 committed by Ilya Buziuk
parent cf508f009c
commit 5c8658724f
9 changed files with 9 additions and 82 deletions

View File

@ -251,18 +251,10 @@
<groupId>org.eclipse.che.multiuser</groupId> <groupId>org.eclipse.che.multiuser</groupId>
<artifactId>che-multiuser-api-authorization-impl</artifactId> <artifactId>che-multiuser-api-authorization-impl</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.eclipse.che.multiuser</groupId>
<artifactId>che-multiuser-api-organization</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.eclipse.che.multiuser</groupId> <groupId>org.eclipse.che.multiuser</groupId>
<artifactId>che-multiuser-api-permission</artifactId> <artifactId>che-multiuser-api-permission</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.eclipse.che.multiuser</groupId>
<artifactId>che-multiuser-api-resource</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.eclipse.che.multiuser</groupId> <groupId>org.eclipse.che.multiuser</groupId>
<artifactId>che-multiuser-api-workspace-activity</artifactId> <artifactId>che-multiuser-api-workspace-activity</artifactId>
@ -275,10 +267,6 @@
<groupId>org.eclipse.che.multiuser</groupId> <groupId>org.eclipse.che.multiuser</groupId>
<artifactId>che-multiuser-keycloak-token-provider</artifactId> <artifactId>che-multiuser-keycloak-token-provider</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.eclipse.che.multiuser</groupId>
<artifactId>che-multiuser-keycloak-user-remover</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.eclipse.che.multiuser</groupId> <groupId>org.eclipse.che.multiuser</groupId>
<artifactId>che-multiuser-machine-authentication</artifactId> <artifactId>che-multiuser-machine-authentication</artifactId>

View File

@ -83,25 +83,19 @@ import org.eclipse.che.core.db.DBTermination;
import org.eclipse.che.core.db.schema.SchemaInitializer; import org.eclipse.che.core.db.schema.SchemaInitializer;
import org.eclipse.che.core.tracing.metrics.TracingMetricsModule; import org.eclipse.che.core.tracing.metrics.TracingMetricsModule;
import org.eclipse.che.inject.DynaModule; import org.eclipse.che.inject.DynaModule;
import org.eclipse.che.multiuser.api.authentication.commons.token.ChainedTokenExtractor;
import org.eclipse.che.multiuser.api.authentication.commons.token.HeaderRequestTokenExtractor; import org.eclipse.che.multiuser.api.authentication.commons.token.HeaderRequestTokenExtractor;
import org.eclipse.che.multiuser.api.authentication.commons.token.RequestTokenExtractor; import org.eclipse.che.multiuser.api.authentication.commons.token.RequestTokenExtractor;
import org.eclipse.che.multiuser.api.permission.server.AdminPermissionInitializer; import org.eclipse.che.multiuser.api.permission.server.AdminPermissionInitializer;
import org.eclipse.che.multiuser.api.permission.server.PermissionChecker; import org.eclipse.che.multiuser.api.permission.server.PermissionChecker;
import org.eclipse.che.multiuser.api.permission.server.PermissionCheckerImpl; import org.eclipse.che.multiuser.api.permission.server.PermissionCheckerImpl;
import org.eclipse.che.multiuser.api.workspace.activity.MultiUserWorkspaceActivityModule; import org.eclipse.che.multiuser.api.workspace.activity.MultiUserWorkspaceActivityModule;
import org.eclipse.che.multiuser.keycloak.server.deploy.KeycloakModule;
import org.eclipse.che.multiuser.keycloak.server.deploy.KeycloakUserRemoverModule;
import org.eclipse.che.multiuser.machine.authentication.server.MachineAuthModule; import org.eclipse.che.multiuser.machine.authentication.server.MachineAuthModule;
import org.eclipse.che.multiuser.oidc.OIDCInfo; import org.eclipse.che.multiuser.oidc.OIDCInfo;
import org.eclipse.che.multiuser.oidc.OIDCInfoProvider; import org.eclipse.che.multiuser.oidc.OIDCInfoProvider;
import org.eclipse.che.multiuser.oidc.OIDCJwkProvider; import org.eclipse.che.multiuser.oidc.OIDCJwkProvider;
import org.eclipse.che.multiuser.oidc.OIDCJwtParserProvider; import org.eclipse.che.multiuser.oidc.OIDCJwtParserProvider;
import org.eclipse.che.multiuser.oidc.OIDCSigningKeyResolver; import org.eclipse.che.multiuser.oidc.OIDCSigningKeyResolver;
import org.eclipse.che.multiuser.organization.api.OrganizationApiModule;
import org.eclipse.che.multiuser.organization.api.OrganizationJpaModule;
import org.eclipse.che.multiuser.permission.user.UserServicePermissionsFilter; import org.eclipse.che.multiuser.permission.user.UserServicePermissionsFilter;
import org.eclipse.che.multiuser.resource.api.ResourceModule;
import org.eclipse.che.security.PBKDF2PasswordEncryptor; import org.eclipse.che.security.PBKDF2PasswordEncryptor;
import org.eclipse.che.security.PasswordEncryptor; import org.eclipse.che.security.PasswordEncryptor;
import org.eclipse.che.security.oauth.EmbeddedOAuthAPI; import org.eclipse.che.security.oauth.EmbeddedOAuthAPI;
@ -190,7 +184,6 @@ public class WsMasterModule extends AbstractModule {
install(new org.eclipse.che.api.factory.server.bitbucket.BitbucketModule()); install(new org.eclipse.che.api.factory.server.bitbucket.BitbucketModule());
bind(org.eclipse.che.api.core.rest.ApiInfoService.class); bind(org.eclipse.che.api.core.rest.ApiInfoService.class);
bind(org.eclipse.che.api.ssh.server.SshService.class);
bind(org.eclipse.che.api.user.server.UserService.class); bind(org.eclipse.che.api.user.server.UserService.class);
bind(org.eclipse.che.api.user.server.ProfileService.class); bind(org.eclipse.che.api.user.server.ProfileService.class);
bind(org.eclipse.che.api.user.server.PreferencesService.class); bind(org.eclipse.che.api.user.server.PreferencesService.class);
@ -204,6 +197,7 @@ public class WsMasterModule extends AbstractModule {
bind(org.eclipse.che.api.workspace.server.WorkspaceService.class); bind(org.eclipse.che.api.workspace.server.WorkspaceService.class);
bind(org.eclipse.che.api.devfile.server.DevfileService.class); bind(org.eclipse.che.api.devfile.server.DevfileService.class);
bind(org.eclipse.che.api.devfile.server.UserDevfileEntityProvider.class); bind(org.eclipse.che.api.devfile.server.UserDevfileEntityProvider.class);
install(new FactoryModuleBuilder().build(ServersCheckerFactory.class)); install(new FactoryModuleBuilder().build(ServersCheckerFactory.class));
Multibinder<InternalEnvironmentProvisioner> internalEnvironmentProvisioners = Multibinder<InternalEnvironmentProvisioner> internalEnvironmentProvisioners =
@ -356,7 +350,7 @@ public class WsMasterModule extends AbstractModule {
bind(DataSource.class).toProvider(org.eclipse.che.core.db.JndiDataSourceProvider.class); bind(DataSource.class).toProvider(org.eclipse.che.core.db.JndiDataSourceProvider.class);
install(new org.eclipse.che.multiuser.api.permission.server.jpa.SystemPermissionsJpaModule()); install(new org.eclipse.che.multiuser.api.permission.server.jpa.SystemPermissionsJpaModule());
install(new org.eclipse.che.multiuser.api.permission.server.PermissionsModule());
install( install(
new org.eclipse.che.multiuser.permission.workspace.server.WorkspaceApiPermissionsModule()); new org.eclipse.che.multiuser.permission.workspace.server.WorkspaceApiPermissionsModule());
install( install(
@ -391,10 +385,6 @@ public class WsMasterModule extends AbstractModule {
org.eclipse.che.multiuser.permission.resource.filters org.eclipse.che.multiuser.permission.resource.filters
.FreeResourcesLimitServicePermissionsFilter.class); .FreeResourcesLimitServicePermissionsFilter.class);
install(new ResourceModule());
install(new OrganizationApiModule());
install(new OrganizationJpaModule());
if (Boolean.parseBoolean(System.getenv("CHE_AUTH_NATIVEUSER"))) { if (Boolean.parseBoolean(System.getenv("CHE_AUTH_NATIVEUSER"))) {
bind(RequestTokenExtractor.class).to(HeaderRequestTokenExtractor.class); bind(RequestTokenExtractor.class).to(HeaderRequestTokenExtractor.class);
if (KubernetesInfrastructure.NAME.equals(infrastructure)) { if (KubernetesInfrastructure.NAME.equals(infrastructure)) {
@ -406,10 +396,6 @@ public class WsMasterModule extends AbstractModule {
bind(TokenValidator.class).to(NotImplementedTokenValidator.class); bind(TokenValidator.class).to(NotImplementedTokenValidator.class);
bind(ProfileDao.class).to(JpaProfileDao.class); bind(ProfileDao.class).to(JpaProfileDao.class);
bind(OAuthAPI.class).to(EmbeddedOAuthAPI.class); bind(OAuthAPI.class).to(EmbeddedOAuthAPI.class);
} else {
install(new KeycloakModule());
install(new KeycloakUserRemoverModule());
bind(RequestTokenExtractor.class).to(ChainedTokenExtractor.class);
} }
bind(AdminPermissionInitializer.class).asEagerSingleton(); bind(AdminPermissionInitializer.class).asEagerSingleton();

View File

@ -1,6 +1,6 @@
<!-- <!--
Copyright (c) 2012-2021 Red Hat, Inc. Copyright (c) 2012-2022 Red Hat, Inc.
This program and the accompanying materials are made This program and the accompanying materials are made
available under the terms of the Eclipse Public License 2.0 available under the terms of the Eclipse Public License 2.0
which is available at https://www.eclipse.org/legal/epl-2.0/ which is available at https://www.eclipse.org/legal/epl-2.0/

View File

@ -64,24 +64,6 @@ che.limits.user.workspaces.count=-1
# stop a running workspace to activate another. # stop a running workspace to activate another.
che.limits.user.workspaces.run.count=1 che.limits.user.workspaces.run.count=1
### Organizations workspace limits
# The total amount of RAM that a single organization (team) is allowed to allocate
# to running workspaces. An organization owner can allocate this RAM however they
# see fit across the team's workspaces.
che.limits.organization.workspaces.ram=-1
# The maximum number of workspaces that an organization is allowed to own. The
# organization will be presented with an error message if they try to create
# additional workspaces. This applies to the total number of both running
# and stopped workspaces.
che.limits.organization.workspaces.count=-1
# The maximum number of running workspaces that a single organization is allowed to have.
# If the organization has reached this threshold, and they try to start an
# additional workspace, they will be presented with an error message. The
# organization will need to stop a running workspace to activate another.
che.limits.organization.workspaces.run.count=-1
### Multi-user-specific OpenShift infrastructure configuration ### Multi-user-specific OpenShift infrastructure configuration
@ -157,22 +139,6 @@ che.keycloak.use_fixed_redirect_urls=false
# Runtime Exception `wii` will be thrown, if this property isn't set properly. # Runtime Exception `wii` will be thrown, if this property isn't set properly.
che.oauth.service_mode=delegated che.oauth.service_mode=delegated
# Configuration for enabling removing user from Keycloak server on removing user from Che database.
# It's disabled by default. You can enable it in special cases when deleting a user in Che database
# should execute removing related-user from Keycloak.
# For it to work correctly, you need to set an administrator username ${che.keycloak.admin_username} and password
# ${che.keycloak.admin_password}.
che.keycloak.cascade_user_removal_enabled=false
# Keycloak administrator username. It will be used for deleting user from Keycloak on removing user
# from Che database. Using it makes sense only if ${che.keycloak.cascade_user_removal_enabled} is
# set to 'true'.
che.keycloak.admin_username=NULL
# Keycloak administrator password. Will be used for deleting user from Keycloak on removing user
# from Che database. Using it makes sense only if ${che.keycloak.cascade_user_removal_enabled} is
# set to 'true'
che.keycloak.admin_password=NULL
# User name adjustment configuration. Che needs to use the usernames as part of Kubernetes object names and labels. # User name adjustment configuration. Che needs to use the usernames as part of Kubernetes object names and labels.
# Therefore there are stricter requirements on their format than the identity providers usually # Therefore there are stricter requirements on their format than the identity providers usually

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2012-2021 Red Hat, Inc. * Copyright (c) 2012-2022 Red Hat, Inc.
* This program and the accompanying materials are made * This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0 * available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/ * which is available at https://www.eclipse.org/legal/epl-2.0/
@ -28,7 +28,6 @@ import org.eclipse.che.multiuser.organization.api.permissions.OrganizationResour
import org.eclipse.che.multiuser.organization.api.permissions.OrganizationalAccountPermissionsChecker; import org.eclipse.che.multiuser.organization.api.permissions.OrganizationalAccountPermissionsChecker;
import org.eclipse.che.multiuser.organization.api.resource.DefaultOrganizationResourcesProvider; import org.eclipse.che.multiuser.organization.api.resource.DefaultOrganizationResourcesProvider;
import org.eclipse.che.multiuser.organization.api.resource.OrganizationResourceLockKeyProvider; import org.eclipse.che.multiuser.organization.api.resource.OrganizationResourceLockKeyProvider;
import org.eclipse.che.multiuser.organization.api.resource.OrganizationResourcesDistributionService;
import org.eclipse.che.multiuser.organization.api.resource.OrganizationalAccountAvailableResourcesProvider; import org.eclipse.che.multiuser.organization.api.resource.OrganizationalAccountAvailableResourcesProvider;
import org.eclipse.che.multiuser.organization.api.resource.SuborganizationResourcesProvider; import org.eclipse.che.multiuser.organization.api.resource.SuborganizationResourcesProvider;
import org.eclipse.che.multiuser.organization.spi.impl.OrganizationImpl; import org.eclipse.che.multiuser.organization.spi.impl.OrganizationImpl;
@ -41,7 +40,7 @@ import org.eclipse.che.multiuser.resource.api.free.DefaultResourcesProvider;
public class OrganizationApiModule extends AbstractModule { public class OrganizationApiModule extends AbstractModule {
@Override @Override
protected void configure() { protected void configure() {
bind(OrganizationService.class);
bind(OrganizationPermissionsFilter.class); bind(OrganizationPermissionsFilter.class);
bind(OrganizationRemoteSubscriptionPermissionsChecks.class); bind(OrganizationRemoteSubscriptionPermissionsChecks.class);
bind(RemoveOrganizationOnLastUserRemovedEventSubscriber.class).asEagerSingleton(); bind(RemoveOrganizationOnLastUserRemovedEventSubscriber.class).asEagerSingleton();
@ -66,7 +65,6 @@ public class OrganizationApiModule extends AbstractModule {
.addBinding() .addBinding()
.to(OrganizationalAccountPermissionsChecker.class); .to(OrganizationalAccountPermissionsChecker.class);
bind(OrganizationResourcesDistributionService.class);
bind(OrganizationResourceDistributionServicePermissionsFilter.class); bind(OrganizationResourceDistributionServicePermissionsFilter.class);
bind(OrganizationEventsWebsocketBroadcaster.class).asEagerSingleton(); bind(OrganizationEventsWebsocketBroadcaster.class).asEagerSingleton();

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2012-2018 Red Hat, Inc. * Copyright (c) 2012-2022 Red Hat, Inc.
* This program and the accompanying materials are made * This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0 * available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/ * which is available at https://www.eclipse.org/legal/epl-2.0/
@ -27,7 +27,7 @@ import org.eclipse.che.multiuser.api.permission.server.jsonrpc.RemoteSubscriptio
public class PermissionsModule extends AbstractModule { public class PermissionsModule extends AbstractModule {
@Override @Override
protected void configure() { protected void configure() {
bind(PermissionsService.class);
bind(SetPermissionsFilter.class); bind(SetPermissionsFilter.class);
bind(RemovePermissionsFilter.class); bind(RemovePermissionsFilter.class);
bind(GetPermissionsFilter.class); bind(GetPermissionsFilter.class);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2012-2018 Red Hat, Inc. * Copyright (c) 2012-2022 Red Hat, Inc.
* This program and the accompanying materials are made * This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0 * available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/ * which is available at https://www.eclipse.org/legal/epl-2.0/
@ -17,14 +17,12 @@ import com.google.inject.multibindings.Multibinder;
import org.eclipse.che.api.workspace.server.WorkspaceManager; import org.eclipse.che.api.workspace.server.WorkspaceManager;
import org.eclipse.che.multiuser.api.permission.server.account.AccountPermissionsChecker; import org.eclipse.che.multiuser.api.permission.server.account.AccountPermissionsChecker;
import org.eclipse.che.multiuser.resource.api.free.DefaultResourcesProvider; import org.eclipse.che.multiuser.resource.api.free.DefaultResourcesProvider;
import org.eclipse.che.multiuser.resource.api.free.FreeResourcesLimitService;
import org.eclipse.che.multiuser.resource.api.free.FreeResourcesProvider; import org.eclipse.che.multiuser.resource.api.free.FreeResourcesProvider;
import org.eclipse.che.multiuser.resource.api.type.RamResourceType; import org.eclipse.che.multiuser.resource.api.type.RamResourceType;
import org.eclipse.che.multiuser.resource.api.type.ResourceType; import org.eclipse.che.multiuser.resource.api.type.ResourceType;
import org.eclipse.che.multiuser.resource.api.type.RuntimeResourceType; import org.eclipse.che.multiuser.resource.api.type.RuntimeResourceType;
import org.eclipse.che.multiuser.resource.api.type.TimeoutResourceType; import org.eclipse.che.multiuser.resource.api.type.TimeoutResourceType;
import org.eclipse.che.multiuser.resource.api.type.WorkspaceResourceType; import org.eclipse.che.multiuser.resource.api.type.WorkspaceResourceType;
import org.eclipse.che.multiuser.resource.api.usage.ResourceService;
import org.eclipse.che.multiuser.resource.api.usage.tracker.RamResourceUsageTracker; import org.eclipse.che.multiuser.resource.api.usage.tracker.RamResourceUsageTracker;
import org.eclipse.che.multiuser.resource.api.usage.tracker.RuntimeResourceUsageTracker; import org.eclipse.che.multiuser.resource.api.usage.tracker.RuntimeResourceUsageTracker;
import org.eclipse.che.multiuser.resource.api.usage.tracker.WorkspaceResourceUsageTracker; import org.eclipse.che.multiuser.resource.api.usage.tracker.WorkspaceResourceUsageTracker;
@ -36,9 +34,6 @@ import org.eclipse.che.multiuser.resource.spi.jpa.JpaFreeResourcesLimitDao;
public class ResourceModule extends AbstractModule { public class ResourceModule extends AbstractModule {
@Override @Override
protected void configure() { protected void configure() {
bind(ResourceService.class);
bind(FreeResourcesLimitService.class);
bind(FreeResourcesLimitDao.class).to(JpaFreeResourcesLimitDao.class); bind(FreeResourcesLimitDao.class).to(JpaFreeResourcesLimitDao.class);
bind(JpaFreeResourcesLimitDao.RemoveFreeResourcesLimitSubscriber.class).asEagerSingleton(); bind(JpaFreeResourcesLimitDao.RemoveFreeResourcesLimitSubscriber.class).asEagerSingleton();

View File

@ -14,8 +14,6 @@ package org.eclipse.che.multiuser.api.workspace.activity;
import com.google.inject.AbstractModule; import com.google.inject.AbstractModule;
import org.eclipse.che.api.workspace.activity.JpaWorkspaceActivityDao; import org.eclipse.che.api.workspace.activity.JpaWorkspaceActivityDao;
import org.eclipse.che.api.workspace.activity.WorkspaceActivityDao; import org.eclipse.che.api.workspace.activity.WorkspaceActivityDao;
import org.eclipse.che.api.workspace.activity.WorkspaceActivityManager;
import org.eclipse.che.api.workspace.activity.WorkspaceActivityService;
/** /**
* Implementation of * Implementation of
@ -26,8 +24,6 @@ public class MultiUserWorkspaceActivityModule extends AbstractModule {
@Override @Override
protected void configure() { protected void configure() {
bind(WorkspaceActivityService.class);
bind(WorkspaceActivityDao.class).to(JpaWorkspaceActivityDao.class); bind(WorkspaceActivityDao.class).to(JpaWorkspaceActivityDao.class);
bind(WorkspaceActivityManager.class).to(MultiUserWorkspaceActivityManager.class);
} }
} }

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2012-2021 Red Hat, Inc. * Copyright (c) 2012-2022 Red Hat, Inc.
* This program and the accompanying materials are made * This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0 * available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/ * which is available at https://www.eclipse.org/legal/epl-2.0/
@ -19,7 +19,6 @@ import org.eclipse.che.api.core.rest.HttpJsonRequestFactory;
import org.eclipse.che.api.user.server.TokenValidator; import org.eclipse.che.api.user.server.TokenValidator;
import org.eclipse.che.api.user.server.spi.ProfileDao; import org.eclipse.che.api.user.server.spi.ProfileDao;
import org.eclipse.che.multiuser.api.account.personal.PersonalAccountUserManager; import org.eclipse.che.multiuser.api.account.personal.PersonalAccountUserManager;
import org.eclipse.che.multiuser.keycloak.server.KeycloakConfigurationService;
import org.eclipse.che.multiuser.keycloak.server.KeycloakOIDCInfoProvider; import org.eclipse.che.multiuser.keycloak.server.KeycloakOIDCInfoProvider;
import org.eclipse.che.multiuser.keycloak.server.KeycloakSigningKeyResolver; import org.eclipse.che.multiuser.keycloak.server.KeycloakSigningKeyResolver;
import org.eclipse.che.multiuser.keycloak.server.KeycloakTokenValidator; import org.eclipse.che.multiuser.keycloak.server.KeycloakTokenValidator;
@ -37,7 +36,6 @@ public class KeycloakModule extends AbstractModule {
bind(HttpJsonRequestFactory.class) bind(HttpJsonRequestFactory.class)
.to(org.eclipse.che.multiuser.keycloak.server.KeycloakHttpJsonRequestFactory.class); .to(org.eclipse.che.multiuser.keycloak.server.KeycloakHttpJsonRequestFactory.class);
bind(TokenValidator.class).to(KeycloakTokenValidator.class); bind(TokenValidator.class).to(KeycloakTokenValidator.class);
bind(KeycloakConfigurationService.class);
bind(ProfileDao.class).to(KeycloakProfileDao.class); bind(ProfileDao.class).to(KeycloakProfileDao.class);
bind(JwkProvider.class).toProvider(OIDCJwkProvider.class); bind(JwkProvider.class).toProvider(OIDCJwkProvider.class);