chore: Remove unused methods using deprecated Policy.users field (#29495)

Also switched to stdlib's `Base64`.
This commit is contained in:
Shrikant Sharat Kandula 2023-12-13 13:41:45 +05:30 committed by GitHub
parent 4515a85ade
commit 76d40d8bd5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 10 additions and 75 deletions

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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 {

View File

@ -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(

View File

@ -20,8 +20,6 @@ public interface PolicySolutionCE {
<T extends BaseDomain> T removePoliciesFromExistingObject(Map<String, Policy> policyMap, T obj);
Map<String, Policy> generatePolicyFromPermission(Set<AclPermission> permissions, String username);
Map<String, Policy> generatePolicyFromPermissionGroupForObject(PermissionGroup permissionGroup, String objectId);
Map<String, Policy> generatePolicyFromPermissionWithPermissionGroup(

View File

@ -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<String, Policy> generatePolicyFromPermission(Set<AclPermission> permissions, User user) {
return generatePolicyFromPermission(permissions, user.getUsername());
}
@Override
public Map<String, Policy> generatePolicyFromPermission(Set<AclPermission> 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<Policy> 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<String, Policy> generatePolicyFromPermissionGroupForObject(
PermissionGroup permissionGroup, String objectId) {
@ -205,26 +174,6 @@ public class PolicySolutionCEImpl implements PolicySolutionCE {
.collect(Collectors.toMap(Policy::getPermission, Function.identity()));
}
public Flux<Datasource> updateWithNewPoliciesToDatasourcesByWorkspaceId(
String workspaceId, Map<String, Policy> 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<Datasource> updateWithNewPoliciesToDatasourcesByDatasourceIds(
Set<String> ids, Map<String, Policy> datasourcePolicyMap, boolean addPolicyToObject) {
@ -399,17 +348,4 @@ public class PolicySolutionCEImpl implements PolicySolutionCE {
.stream()
.collect(Collectors.toMap(Policy::getPermission, Function.identity()));
}
public Set<String> findUsernamesWithPermission(Set<Policy> 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();
}
}