Browse Source

minor refactor

iliax 1 year ago
parent
commit
35679af9bd

+ 5 - 9
kafka-ui-api/src/main/java/com/provectus/kafka/ui/model/rbac/AccessContext.java

@@ -16,11 +16,12 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 import java.util.stream.Collectors;
-import lombok.Value;
 import org.springframework.security.access.AccessDeniedException;
 
-@Value
-public class AccessContext {
+public record AccessContext(String cluster,
+                            List<ResourceAccess> accesses,
+                            String operationName,
+                            @Nullable Object operationParams) {
 
   public interface ResourceAccess {
     // will be used for audit, should be serializable via json object mapper
@@ -65,17 +66,12 @@ public class AccessContext {
     }
   }
 
-  String cluster;
-  List<ResourceAccess> accesses;
-  String operationName;
-  Object operationParams;
-
   public static AccessContextBuilder builder() {
     return new AccessContextBuilder();
   }
 
   public boolean isAccessible(List<Permission> allUserPermissions) {
-    return getAccesses().stream()
+    return accesses().stream()
         .allMatch(resourceAccess -> resourceAccess.isAccessible(allUserPermissions));
   }
 

+ 1 - 1
kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/audit/AuditRecord.java

@@ -40,7 +40,7 @@ record AuditRecord(String timestamp,
     }
 
     static List<AuditResource> getAccessedResources(AccessContext ctx) {
-      return ctx.getAccesses().stream()
+      return ctx.accesses().stream()
           .map(r -> create(r.requestedActions(), r.resourceType(), r.resourceId()))
           .toList();
     }

+ 2 - 2
kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/audit/AuditService.java

@@ -214,8 +214,8 @@ public class AuditService implements Closeable {
 
   private void sendAuditRecord(AccessContext ctx, AuthenticatedUser user, @Nullable Throwable th) {
     try {
-      if (ctx.getCluster() != null) {
-        var writer = auditWriters.get(ctx.getCluster());
+      if (ctx.cluster() != null) {
+        var writer = auditWriters.get(ctx.cluster());
         if (writer != null) {
           writer.write(ctx, user, th);
         }

+ 3 - 3
kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/audit/AuditWriter.java

@@ -65,10 +65,10 @@ record AuditWriter(String clusterName,
     return new AuditRecord(
         DateTimeFormatter.ISO_INSTANT.format(Instant.now()),
         user.principal(),
-        ctx.getCluster(), //can be null, if it is application-level action
+        ctx.cluster(), //can be null, if it is application-level action
         AuditResource.getAccessedResources(ctx),
-        ctx.getOperationName(),
-        ctx.getOperationParams(),
+        ctx.operationName(),
+        ctx.operationParams(),
         th == null ? OperationResult.successful() : OperationResult.error(th)
     );
   }

+ 1 - 1
kafka-ui-api/src/main/java/com/provectus/kafka/ui/service/rbac/AccessControlService.java

@@ -105,7 +105,7 @@ public class AccessControlService {
   }
 
   private boolean isAccessible(AuthenticatedUser user, AccessContext context) {
-    if (context.getCluster() != null && !isClusterAccessible(context.getCluster(), user)) {
+    if (context.cluster() != null && !isClusterAccessible(context.cluster(), user)) {
       return false;
     }