[ 
https://issues.apache.org/jira/browse/HIVE-7295?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14044947#comment-14044947
 ] 

Xiaobing Zhou commented on HIVE-7295:
-------------------------------------

Thanks [~cnauroth]. 

Since this is Windows specific, we can use this code snippet for work-around.

 if (user.equals(stat.getOwner())) {
        if (dirPerms.getUserAction().implies(action)) {
          continue;
        }
      }

if (ArrayUtils.contains(groups, stat.getGroup())) {
        if (dirPerms.getGroupAction().implies(action)) {
          continue;
        }
      }

 if (dirPerms.getOtherAction().implies(action)) {
        continue;
      }

//windows specific add-on
if (Shell.WINDOWS) {
        if (ArrayUtils.contains(groups, stat.getOwner())) { //stat.getOwner 
returns administrators 
          if (dirPerms.getUserAction().implies(action)) {
            continue;
          }
        }
      }


This passes all failed test cases affected, even if login user is a member of 
admin group.

   

> FileStatus.getOwner on Windows returns name of group the user belongs to, 
> instead of user name expected, fails many authorization related unit tests
> ----------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-7295
>                 URL: https://issues.apache.org/jira/browse/HIVE-7295
>             Project: Hive
>          Issue Type: Bug
>          Components: Authorization, HCatalog, Security, Windows
>    Affects Versions: 0.13.0
>         Environment: Windows Server 2008 R2
>            Reporter: Xiaobing Zhou
>            Priority: Critical
>
> Unit test in TestHdfsAuthorizationProvider, e.g. 
> org.apache.hcatalog.security.TestHdfsAuthorizationProvider.testTableOps. 
> fails to run.
> Running org.apache.hcatalog.security.TestHdfsAuthorizationProvider
> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 15.799 sec 
> <<< FAILURE! - in org.apache.hcatalog.security.TestHdfsAuthorizationProvider
> testTableOps(org.apache.hcatalog.security.TestHdfsAuthorizationProvider)  
> Time elapsed: 15.546 sec  <<< FAILURE!
> junit.framework.AssertionFailedError: FAILED: AuthorizationException 
> org.apache.hadoop.security.AccessControlException: action WRITE not permitted 
> on path pfile:/Users/xz
> hou/hworks/workspace/hwx-hive-ws/hive/hcatalog/core/target/warehouse for user 
> xzhou expected:<0> but was:<40000>
>         at junit.framework.Assert.fail(Assert.java:50)
>         at junit.framework.Assert.failNotEquals(Assert.java:287)
>         at junit.framework.Assert.assertEquals(Assert.java:67)
>         at junit.framework.Assert.assertEquals(Assert.java:199)
>         at 
> org.apache.hcatalog.security.TestHdfsAuthorizationProvider.exec(TestHdfsAuthorizationProvider.java:172)
>         at 
> org.apache.hcatalog.security.TestHdfsAuthorizationProvider.testTableOps(TestHdfsAuthorizationProvider.java:307)
>         



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to