This is an automated email from the ASF dual-hosted git repository.

apucher pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new 3772b55dc4 enable readonly access to controller UI for users without 
table restrictions (#10329)
3772b55dc4 is described below

commit 3772b55dc4c35673762a182b2ee650469560aa97
Author: Alexander Pucher <[email protected]>
AuthorDate: Fri Feb 24 19:15:37 2023 -0800

    enable readonly access to controller UI for users without table 
restrictions (#10329)
---
 .../api/resources/PinotControllerAuthResource.java       |  3 ++-
 .../main/java/org/apache/pinot/tools/AuthQuickstart.java | 16 ++++++++++------
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git 
a/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotControllerAuthResource.java
 
b/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotControllerAuthResource.java
index 77b77479ca..52e518cfed 100644
--- 
a/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotControllerAuthResource.java
+++ 
b/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotControllerAuthResource.java
@@ -28,6 +28,7 @@ import io.swagger.annotations.Authorization;
 import io.swagger.annotations.SecurityDefinition;
 import io.swagger.annotations.SwaggerDefinition;
 import javax.inject.Inject;
+import javax.ws.rs.DefaultValue;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
@@ -72,7 +73,7 @@ public class PinotControllerAuthResource {
       @ApiResponse(code = 500, message = "Verification error")
   })
   public boolean verify(@ApiParam(value = "Table name without type") 
@QueryParam("tableName") String tableName,
-      @ApiParam(value = "API access type") @QueryParam("accessType") 
AccessType accessType,
+      @ApiParam(value = "API access type") @DefaultValue("READ") 
@QueryParam("accessType") AccessType accessType,
       @ApiParam(value = "Endpoint URL") @QueryParam("endpointUrl") String 
endpointUrl) {
     AccessControl accessControl = _accessControlFactory.create();
     return accessControl.hasAccess(tableName, accessType, _httpHeaders, 
endpointUrl);
diff --git 
a/pinot-tools/src/main/java/org/apache/pinot/tools/AuthQuickstart.java 
b/pinot-tools/src/main/java/org/apache/pinot/tools/AuthQuickstart.java
index 2642bbbb19..e4eaa89715 100644
--- a/pinot-tools/src/main/java/org/apache/pinot/tools/AuthQuickstart.java
+++ b/pinot-tools/src/main/java/org/apache/pinot/tools/AuthQuickstart.java
@@ -47,19 +47,23 @@ public class AuthQuickstart extends Quickstart {
     properties.put("pinot.controller.segment.fetcher.auth.token", "Basic 
YWRtaW46dmVyeXNlY3JldA==");
     properties.put("controller.admin.access.control.factory.class",
         
"org.apache.pinot.controller.api.access.BasicAuthAccessControlFactory");
-    properties.put("controller.admin.access.control.principals", "admin, 
user");
+    properties.put("controller.admin.access.control.principals", "admin, user, 
service, tableonly");
     
properties.put("controller.admin.access.control.principals.admin.password", 
"verysecret");
+    
properties.put("controller.admin.access.control.principals.service.password", 
"verysecrettoo");
     properties.put("controller.admin.access.control.principals.user.password", 
"secret");
-    properties.put("controller.admin.access.control.principals.user.tables", 
"baseballStats");
-    
properties.put("controller.admin.access.control.principals.user.permissions", 
"read");
+    
properties.put("controller.admin.access.control.principals.user.permissions", 
"READ");
+    
properties.put("controller.admin.access.control.principals.tableonly.password", 
"secrettoo");
+    
properties.put("controller.admin.access.control.principals.tableonly.permissions",
 "READ");
+    
properties.put("controller.admin.access.control.principals.tableonly.tables", 
"baseballStats");
 
     // broker
     properties.put("pinot.broker.access.control.class", 
"org.apache.pinot.broker.broker.BasicAuthAccessControlFactory");
-    properties.put("pinot.broker.access.control.principals", "admin, user");
+    properties.put("pinot.broker.access.control.principals", "admin, user, 
service, tableonly");
     properties.put("pinot.broker.access.control.principals.admin.password", 
"verysecret");
+    properties.put("pinot.broker.access.control.principals.service.password", 
"verysecrettoo");
     properties.put("pinot.broker.access.control.principals.user.password", 
"secret");
-    properties.put("pinot.broker.access.control.principals.user.tables", 
"baseballStats");
-    properties.put("pinot.broker.access.control.principals.user.permissions", 
"read");
+    
properties.put("pinot.broker.access.control.principals.tableonly.password", 
"secrettoo");
+    properties.put("pinot.broker.access.control.principals.tableonly.tables", 
"baseballStats");
 
     // server
     properties.put("pinot.server.segment.fetcher.auth.token", "Basic 
YWRtaW46dmVyeXNlY3JldA==");


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to