You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by jo...@apache.org on 2020/01/10 04:01:24 UTC

[incubator-dolphinscheduler] branch dev-1.2.1 updated: update method checkDownloadPermission in order to fix issues 1770 (#1794)

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

journey pushed a commit to branch dev-1.2.1
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git


The following commit(s) were added to refs/heads/dev-1.2.1 by this push:
     new ba859c9  update method checkDownloadPermission in order to fix issues 1770 (#1794)
ba859c9 is described below

commit ba859c9d0fe56ffd831d5661fa63be95f3d8670c
Author: lgcareer <18...@163.com>
AuthorDate: Fri Jan 10 12:01:17 2020 +0800

    update method checkDownloadPermission in order to fix issues 1770 (#1794)
    
    * add check download resource permission in order to fix issues 1770
    
    * update method checkDownloadPermission in order to fix issues 1770
    
    * update method listUnauthorizedResource in order to fix issues 1770
---
 .../src/main/java/org/apache/dolphinscheduler/dao/ProcessDao.java   | 6 +++---
 .../dolphinscheduler/server/worker/runner/TaskScheduleThread.java   | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/ProcessDao.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/ProcessDao.java
index 33fd21d..d80c9c5 100644
--- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/ProcessDao.java
+++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/ProcessDao.java
@@ -1774,10 +1774,10 @@ public class ProcessDao {
     public List<String> listUnauthorizedResource(int userId,String[] resNames){
         List<String> resultList = new ArrayList<String>();
 
-        List<String> originResList = Arrays.asList(resNames);
-        List<Resource> authorizedResourceList = resourceMapper.listAuthorizedResource(userId, resNames);
+        if(ArrayUtils.isNotEmpty(resNames)){
+            List<String> originResList = Arrays.asList(resNames);
+            List<Resource> authorizedResourceList = resourceMapper.listAuthorizedResource(userId, resNames);
 
-        if(CollectionUtils.isNotEmpty(authorizedResourceList)){
             List<String> authorizedResNames = authorizedResourceList.stream().map(t -> t.getAlias()).collect(toList());
             resultList = originResList.stream().filter(item -> !authorizedResNames.contains(item)).collect(toList());
         }
diff --git a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/runner/TaskScheduleThread.java b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/runner/TaskScheduleThread.java
index 27521d3..0ef6c1d 100644
--- a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/runner/TaskScheduleThread.java
+++ b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/runner/TaskScheduleThread.java
@@ -342,7 +342,7 @@ public class TaskScheduleThread implements Runnable {
             // get user type in order to judge whether the user is admin
             User user = processDao.getUserById(userId);
             if (user.getUserType() != UserType.ADMIN_USER){
-                List<String> unauthorizedResource = processDao.listUnauthorizedResource(userId, (String[]) projectRes.toArray());
+                List<String> unauthorizedResource = processDao.listUnauthorizedResource(userId, projectRes.toArray(new String[projectRes.size()]));
                 // if exist unauthorized resource
                 if(CollectionUtils.isNotEmpty(unauthorizedResource)){
                     logger.error("user {} didn't has download permission of resource file: {}", user.getUserName(), unauthorizedResource.toString());