diff --git a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/helpers/restApiUtils/connections/OAuth2AuthorizationCode.java b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/helpers/restApiUtils/connections/OAuth2AuthorizationCode.java index de33f917ac..e3dd90b31b 100644 --- a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/helpers/restApiUtils/connections/OAuth2AuthorizationCode.java +++ b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/helpers/restApiUtils/connections/OAuth2AuthorizationCode.java @@ -12,7 +12,6 @@ import lombok.AccessLevel; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import org.bson.internal.Base64; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; @@ -33,6 +32,7 @@ import java.net.URI; import java.time.Clock; import java.time.Duration; import java.time.Instant; +import java.util.Base64; import java.util.Map; import static com.appsmith.external.models.OAuth2.RefreshTokenClientCredentialsLocation.BODY; @@ -116,7 +116,7 @@ public class OAuth2AuthorizationCode extends APIConnection implements UpdatableC if (HEADER.equals(oAuth2.getRefreshTokenClientCredentialsLocation())) { byte[] clientCredentials = (oAuth2.getClientId() + ":" + oAuth2.getClientSecret()).getBytes(); - final String authorizationHeader = "Basic " + Base64.encode(clientCredentials); + final String authorizationHeader = "Basic " + Base64.getEncoder().encodeToString(clientCredentials); webClientBuilder.defaultHeader("Authorization", authorizationHeader); } diff --git a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/helpers/restApiUtils/connections/OAuth2ClientCredentials.java b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/helpers/restApiUtils/connections/OAuth2ClientCredentials.java index f5be70bd4f..6d5330e4f5 100644 --- a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/helpers/restApiUtils/connections/OAuth2ClientCredentials.java +++ b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/helpers/restApiUtils/connections/OAuth2ClientCredentials.java @@ -13,7 +13,6 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.extern.slf4j.Slf4j; -import org.bson.internal.Base64; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; @@ -34,6 +33,7 @@ import java.net.URI; import java.time.Clock; import java.time.Duration; import java.time.Instant; +import java.util.Base64; import java.util.Map; @Setter @@ -97,7 +97,7 @@ public class OAuth2ClientCredentials extends APIConnection implements UpdatableC if (Boolean.TRUE.equals(oAuth2.getIsAuthorizationHeader())) { byte[] clientCredentials = (oAuth2.getClientId() + ":" + oAuth2.getClientSecret()).getBytes(); - final String authorizationHeader = "Basic " + Base64.encode(clientCredentials); + final String authorizationHeader = "Basic " + Base64.getEncoder().encodeToString(clientCredentials); webClientBuilder.defaultHeader("Authorization", authorizationHeader); } diff --git a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/helpers/restApiUtils/helpers/RestAPIActivateUtils.java b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/helpers/restApiUtils/helpers/RestAPIActivateUtils.java index bd4e655adb..b7e64771ce 100644 --- a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/helpers/restApiUtils/helpers/RestAPIActivateUtils.java +++ b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/helpers/restApiUtils/helpers/RestAPIActivateUtils.java @@ -18,7 +18,6 @@ import com.fasterxml.jackson.databind.node.ObjectNode; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.security.Keys; import lombok.NoArgsConstructor; -import org.bson.internal.Base64; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatusCode; @@ -40,6 +39,7 @@ import java.net.URI; import java.nio.charset.StandardCharsets; import java.time.Duration; import java.time.Instant; +import java.util.Base64; import java.util.Date; import java.util.List; import java.util.Set; @@ -147,12 +147,12 @@ public class RestAPIActivateUtils { } else if (MediaType.IMAGE_GIF.equals(contentType) || MediaType.IMAGE_JPEG.equals(contentType) || MediaType.IMAGE_PNG.equals(contentType)) { - String encode = Base64.encode(body); + String encode = Base64.getEncoder().encodeToString(body); result.setBody(encode); responseDataType = ResponseDataType.IMAGE; } else if (BINARY_DATA_TYPES.contains(contentType.toString())) { - String encode = Base64.encode(body); + String encode = Base64.getEncoder().encodeToString(body); result.setBody(encode); responseDataType = ResponseDataType.BINARY; } else { diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/AuthenticationServiceCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/AuthenticationServiceCEImpl.java index 573589ab9a..ff52df46a8 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/AuthenticationServiceCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/AuthenticationServiceCEImpl.java @@ -36,7 +36,6 @@ import com.appsmith.server.solutions.PagePermission; import com.appsmith.util.WebClientUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.bson.internal.Base64; import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; import org.springframework.http.server.reactive.ServerHttpRequest; @@ -54,6 +53,7 @@ import java.net.URI; import java.net.URISyntaxException; import java.time.Instant; import java.util.Arrays; +import java.util.Base64; import java.util.HashSet; import java.util.Map; import java.util.Set; @@ -249,7 +249,8 @@ public class AuthenticationServiceCEImpl implements AuthenticationServiceCE { } } else if (Boolean.TRUE.equals(oAuth2.getIsAuthorizationHeader())) { byte[] clientCredentials = (oAuth2.getClientId() + ":" + oAuth2.getClientSecret()).getBytes(); - final String authorizationHeader = "Basic " + Base64.encode(clientCredentials); + final String authorizationHeader = + "Basic " + Base64.getEncoder().encodeToString(clientCredentials); builder.defaultHeader("Authorization", authorizationHeader); } else { return Mono.error( diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/PolicySolutionCE.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/PolicySolutionCE.java index 8be5b320c5..8b6b6bc85e 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/PolicySolutionCE.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/PolicySolutionCE.java @@ -20,8 +20,6 @@ public interface PolicySolutionCE { T removePoliciesFromExistingObject(Map policyMap, T obj); - Map generatePolicyFromPermission(Set permissions, String username); - Map generatePolicyFromPermissionGroupForObject(PermissionGroup permissionGroup, String objectId); Map generatePolicyFromPermissionWithPermissionGroup( diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/PolicySolutionCEImpl.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/PolicySolutionCEImpl.java index d6b1d71827..a5a7b09d78 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/PolicySolutionCEImpl.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/solutions/ce/PolicySolutionCEImpl.java @@ -24,13 +24,11 @@ import com.appsmith.server.solutions.DatasourcePermission; import com.appsmith.server.solutions.PagePermission; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections.CollectionUtils; import org.springframework.util.StringUtils; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -120,35 +118,6 @@ public class PolicySolutionCEImpl implements PolicySolutionCE { return obj; } - /** - * Given a set of AclPermissions, generate all policies (including policies from lateral permissions) for the user. - * - * @param permissions - * @param user - * @return - */ - public Map generatePolicyFromPermission(Set permissions, User user) { - return generatePolicyFromPermission(permissions, user.getUsername()); - } - - @Override - public Map generatePolicyFromPermission(Set permissions, String username) { - return permissions.stream() - .map(perm -> { - // Create a policy for the invited user using the permission as per the role - Policy policyWithCurrentPermission = Policy.builder() - .permission(perm.getValue()) - .users(Set.of(username)) - .build(); - // Generate any and all lateral policies that might come with the current permission - Set policiesForUser = policyGenerator.getLateralPolicies(perm, Set.of(username), null); - policiesForUser.add(policyWithCurrentPermission); - return policiesForUser; - }) - .flatMap(Collection::stream) - .collect(Collectors.toMap(Policy::getPermission, Function.identity())); - } - @Override public Map generatePolicyFromPermissionGroupForObject( PermissionGroup permissionGroup, String objectId) { @@ -205,26 +174,6 @@ public class PolicySolutionCEImpl implements PolicySolutionCE { .collect(Collectors.toMap(Policy::getPermission, Function.identity())); } - public Flux updateWithNewPoliciesToDatasourcesByWorkspaceId( - String workspaceId, Map newPoliciesMap, boolean addPolicyToObject) { - - return datasourceRepository - // fetch datasources with execute permissions so that app viewers can invite other app viewers - .findAllByWorkspaceId(workspaceId, datasourcePermission.getExecutePermission()) - // In case we have come across a datasource for this workspace that the current user is not allowed to - // manage, move on. - .switchIfEmpty(Mono.empty()) - .map(datasource -> { - if (addPolicyToObject) { - return addPoliciesToExistingObject(newPoliciesMap, datasource); - } else { - return removePoliciesFromExistingObject(newPoliciesMap, datasource); - } - }) - .collectList() - .flatMapMany(updatedDatasources -> datasourceRepository.saveAll(updatedDatasources)); - } - public Flux updateWithNewPoliciesToDatasourcesByDatasourceIds( Set ids, Map datasourcePolicyMap, boolean addPolicyToObject) { @@ -399,17 +348,4 @@ public class PolicySolutionCEImpl implements PolicySolutionCE { .stream() .collect(Collectors.toMap(Policy::getPermission, Function.identity())); } - - public Set findUsernamesWithPermission(Set policies, AclPermission permission) { - if (CollectionUtils.isNotEmpty(policies) && permission != null) { - final String permissionString = permission.getValue(); - for (Policy policy : policies) { - if (permissionString.equals(policy.getPermission())) { - return policy.getUsers(); - } - } - } - - return Collections.emptySet(); - } }