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

jshao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/main by this push:
     new c00ff157f [#4664] fix(server): Add the missing annotations fo access 
control interfaces (#4665)
c00ff157f is described below

commit c00ff157f5dee94e46f9144cc8f4b6d5a58f3847
Author: roryqi <[email protected]>
AuthorDate: Mon Aug 26 11:44:20 2024 +0800

    [#4664] fix(server): Add the missing annotations fo access control 
interfaces (#4665)
    
    ### What changes were proposed in this pull request?
    Add the missing annotations for access control interfaces.
    Fix the document by the way.
    
    ### Why are the changes needed?
    
    Fix: #4664
    
    ### Does this PR introduce _any_ user-facing change?
    No.
    
    ### How was this patch tested?
    By hand.
---
 conf/gravitino.conf.template                         |  6 ++++++
 docs/security/access-control.md                      | 20 ++++++++++----------
 .../gravitino/server/authorization/NameBindings.java |  2 ++
 .../server/web/rest/PermissionOperations.java        |  2 ++
 .../gravitino/server/web/rest/RoleOperations.java    |  2 ++
 5 files changed, 22 insertions(+), 10 deletions(-)

diff --git a/conf/gravitino.conf.template b/conf/gravitino.conf.template
index 0894b7ab5..9b1c2512c 100644
--- a/conf/gravitino.conf.template
+++ b/conf/gravitino.conf.template
@@ -59,6 +59,12 @@ gravitino.entity.store.relational.jdbcPassword = gravitino
 # The interval in milliseconds to evict the catalog cache
 gravitino.catalog.cache.evictionIntervalMs = 3600000
 
+# THE CONFIGURATION FOR authorization
+# Whether Gravitino enable authorization or not
+gravitino.authorization.enable = false
+# The admins of Gravitino service, multiple admins are spitted by comma.
+gravitino.authorization.serviceAdmins = anonymous
+
 # THE CONFIGURATION FOR AUXILIARY SERVICE
 # Auxiliary service names, separate by ','
 gravitino.auxService.names = iceberg-rest
diff --git a/docs/security/access-control.md b/docs/security/access-control.md
index 37b2714da..51e607d25 100644
--- a/docs/security/access-control.md
+++ b/docs/security/access-control.md
@@ -244,7 +244,7 @@ The related configuration is as follows.
 | Configuration item                       | Description                       
                                     | Default value | Required                 
        | Since Version |
 
|------------------------------------------|------------------------------------------------------------------------|---------------|----------------------------------|---------------|
 | `gravitino.authorization.enable`         | Whether Gravitino enable 
authorization or not.                         | false         | No              
                 | 0.5.0         |
-| `gravitino.authorization.serviceAdmins`  | The admins of Gravitino service, 
Multiple admins are spitted by comma. | (none)        | Yes if enables the 
authorization | 0.5.0         |
+| `gravitino.authorization.serviceAdmins`  | The admins of Gravitino service, 
multiple admins are spitted by comma. | (none)        | Yes if enables the 
authorization | 0.5.0         |
 
 
 ## User Operation
@@ -259,7 +259,7 @@ You should add the user to your metalake before you use the 
authorization.
 ```shell
 curl -X POST -H "Accept: application/vnd.gravitino.v1+json" \
 -H "Content-Type: application/json" -d '{
-  "name": "user1",
+  "name": "user1"
 }' http://localhost:8090/api/metalakes/test/users
 ```
 
@@ -335,7 +335,7 @@ You should add the group to your metalake before you use 
the authorization.
 ```shell
 curl -X POST -H "Accept: application/vnd.gravitino.v1+json" \
 -H "Content-Type: application/json" -d '{
-  "name": "group1",
+  "name": "group1"
 }' http://localhost:8090/api/metalakes/test/groups
 ```
 
@@ -412,7 +412,7 @@ You can create a role by given properties.
 curl -X POST -H "Accept: application/vnd.gravitino.v1+json" \
 -H "Content-Type: application/json" -d '{
    "name": "role1",
-   "properties": {"k1", "v1"}
+   "properties": {"k1": "v1"},
    "securableObjects": [
           {
              "fullName": "catalog1.schema1.table1",
@@ -459,7 +459,7 @@ You can get a role by its name.
 
 ```shell
 curl -X GET -H "Accept: application/vnd.gravitino.v1+json" \
--H "Content-Type: application/json" -d 
http://localhost:8090/api/metalakes/test/roles/role1
+-H "Content-Type: application/json"  
http://localhost:8090/api/metalakes/test/roles/role1
 ```
 
 </TabItem>
@@ -511,7 +511,7 @@ You can grant specific roles to a user.
 curl -X PUT -H "Accept: application/vnd.gravitino.v1+json" \
 -H "Content-Type: application/json" -d '{
     "roleNames": ["role1"]
-}'http://localhost:8090/api/metalakes/test/permissions/users/user1/grant
+}' http://localhost:8090/api/metalakes/test/permissions/users/user1/grant
 ```
 
 </TabItem>
@@ -536,7 +536,7 @@ You can revoke specific roles from a user.
 curl -X PUT -H "Accept: application/vnd.gravitino.v1+json" \
 -H "Content-Type: application/json" -d '{
     "roleNames": ["role1"]
-}'http://localhost:8090/api/metalakes/test/permissions/users/user1/revoke
+}' http://localhost:8090/api/metalakes/test/permissions/users/user1/revoke
 ```
 
 </TabItem>
@@ -562,7 +562,7 @@ You can grant specific roles to a group.
 curl -X PUT -H "Accept: application/vnd.gravitino.v1+json" \
 -H "Content-Type: application/json" -d '{
     "roleNames": ["role1"]
-}'http://localhost:8090/api/metalakes/test/permissions/groups/group1/grant
+}' http://localhost:8090/api/metalakes/test/permissions/groups/group1/grant
 ```
 
 </TabItem>
@@ -587,7 +587,7 @@ You can revoke specific roles from a group.
 curl -X PUT -H "Accept: application/vnd.gravitino.v1+json" \
 -H "Content-Type: application/json" -d '{
     "roleNames": ["role1"]
-}'http://localhost:8090/api/metalakes/test/permissions/groups/group1/revoke
+}' http://localhost:8090/api/metalakes/test/permissions/groups/group1/revoke
 ```
 
 </TabItem>
@@ -642,7 +642,7 @@ curl -X PUT -H "Accept: application/vnd.gravitino.v1+json" \
 -H "Content-Type: application/json" -d '{
     "name": "user1",
     "type": "USER"
-}'http://localhost:8090/api/metalakes/test/owners/table/catalog1.schema1.table1
+}' 
http://localhost:8090/api/metalakes/test/owners/table/catalog1.schema1.table1
 ```
 
 </TabItem>
diff --git 
a/server-common/src/main/java/org/apache/gravitino/server/authorization/NameBindings.java
 
b/server-common/src/main/java/org/apache/gravitino/server/authorization/NameBindings.java
index abc6bd51d..5184fa042 100644
--- 
a/server-common/src/main/java/org/apache/gravitino/server/authorization/NameBindings.java
+++ 
b/server-common/src/main/java/org/apache/gravitino/server/authorization/NameBindings.java
@@ -24,8 +24,10 @@ import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 import javax.ws.rs.NameBinding;
 
+/* This class is used for Jersey filters to bind operations with the filters 
which need. */
 public class NameBindings {
 
+  /* This annotation will bind all access control related operations */
   @NameBinding
   @Target({ElementType.TYPE, ElementType.METHOD})
   @Retention(RetentionPolicy.RUNTIME)
diff --git 
a/server/src/main/java/org/apache/gravitino/server/web/rest/PermissionOperations.java
 
b/server/src/main/java/org/apache/gravitino/server/web/rest/PermissionOperations.java
index 7613d89ec..089cf72df 100644
--- 
a/server/src/main/java/org/apache/gravitino/server/web/rest/PermissionOperations.java
+++ 
b/server/src/main/java/org/apache/gravitino/server/web/rest/PermissionOperations.java
@@ -40,8 +40,10 @@ import org.apache.gravitino.dto.util.DTOConverters;
 import org.apache.gravitino.lock.LockType;
 import org.apache.gravitino.lock.TreeLockUtils;
 import org.apache.gravitino.metrics.MetricNames;
+import org.apache.gravitino.server.authorization.NameBindings;
 import org.apache.gravitino.server.web.Utils;
 
[email protected]
 @Path("/metalakes/{metalake}/permissions")
 public class PermissionOperations {
 
diff --git 
a/server/src/main/java/org/apache/gravitino/server/web/rest/RoleOperations.java 
b/server/src/main/java/org/apache/gravitino/server/web/rest/RoleOperations.java
index c67b4bd2b..f2ed13f7d 100644
--- 
a/server/src/main/java/org/apache/gravitino/server/web/rest/RoleOperations.java
+++ 
b/server/src/main/java/org/apache/gravitino/server/web/rest/RoleOperations.java
@@ -50,10 +50,12 @@ import 
org.apache.gravitino.exceptions.NoSuchMetadataObjectException;
 import org.apache.gravitino.lock.LockType;
 import org.apache.gravitino.lock.TreeLockUtils;
 import org.apache.gravitino.metrics.MetricNames;
+import org.apache.gravitino.server.authorization.NameBindings;
 import org.apache.gravitino.server.web.Utils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
[email protected]
 @Path("/metalakes/{metalake}/roles")
 public class RoleOperations {
   private static final Logger LOG = 
LoggerFactory.getLogger(RoleOperations.class);

Reply via email to