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

morningman pushed a commit to branch branch-2.0
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.0 by this push:
     new 97a5b0de2ca [fix](auth)fix show load priv bug (#41723) (#42109)
97a5b0de2ca is described below

commit 97a5b0de2ca9279fff3b3d708c6983796fef5bd1
Author: zhangdong <493738...@qq.com>
AuthorDate: Wed Nov 6 14:57:40 2024 +0800

    [fix](auth)fix show load priv bug (#41723) (#42109)
    
    pick: https://github.com/apache/doris/pull/41723
---
 .../src/main/java/org/apache/doris/load/loadv2/BulkLoadJob.java     | 6 ++++++
 fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadJob.java  | 4 +---
 .../src/main/java/org/apache/doris/load/loadv2/LoadManager.java     | 6 ++++++
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BulkLoadJob.java 
b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BulkLoadJob.java
index e6cf238dd61..b15d21c2722 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BulkLoadJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/BulkLoadJob.java
@@ -140,6 +140,8 @@ public abstract class BulkLoadJob extends LoadJob {
             bulkLoadJob.setComment(stmt.getComment());
             bulkLoadJob.setJobProperties(stmt.getProperties());
             bulkLoadJob.checkAndSetDataSourceInfo((Database) db, 
stmt.getDataDescriptions());
+            // In the construction method, there may not be table information 
yet
+            bulkLoadJob.rebuildAuthorizationInfo();
             return bulkLoadJob;
         } catch (MetaNotFoundException e) {
             throw new DdlException(e.getMessage());
@@ -172,6 +174,10 @@ public abstract class BulkLoadJob extends LoadJob {
         return new AuthorizationInfo(database.getFullName(), getTableNames());
     }
 
+    public void rebuildAuthorizationInfo() throws MetaNotFoundException {
+        this.authorizationInfo = gatherAuthInfo();
+    }
+
     @Override
     public Set<String> getTableNamesForShow() {
         Optional<Database> db = Env.getCurrentInternalCatalog().getDb(dbId);
diff --git a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadJob.java 
b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadJob.java
index 2e3b0e6e868..de2fa86aebc 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadJob.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadJob.java
@@ -602,7 +602,7 @@ public abstract class LoadJob extends 
AbstractTxnStateChangeCallback implements
         }
     }
 
-    private void checkAuth(String command) throws DdlException {
+    public void checkAuth(String command) throws DdlException {
         if (authorizationInfo == null) {
             // use the old method to check priv
             checkAuthWithoutAuthInfo(command);
@@ -754,8 +754,6 @@ public abstract class LoadJob extends 
AbstractTxnStateChangeCallback implements
     public List<Comparable> getShowInfo() throws DdlException {
         readLock();
         try {
-            // check auth
-            checkAuth("SHOW LOAD");
             List<Comparable> jobInfo = Lists.newArrayList();
             // jobId
             jobInfo.add(id);
diff --git 
a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadManager.java 
b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadManager.java
index e6cd4e77149..2c3bfd5201c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadManager.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/load/loadv2/LoadManager.java
@@ -611,6 +611,12 @@ public class LoadManager implements Writable {
                     if (!states.contains(loadJob.getState())) {
                         continue;
                     }
+                    // check auth
+                    try {
+                        loadJob.checkAuth("show load");
+                    } catch (DdlException e) {
+                        continue;
+                    }
                     // add load job info
                     loadJobInfos.add(loadJob.getShowInfo());
                 } catch (RuntimeException | DdlException e) {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to