Dian Fu created HADOOP-11337:
--------------------------------

             Summary: KeyAuthorizationKeyProvider#doAccessCheck should throw 
exception when metadata for the specified key is null
                 Key: HADOOP-11337
                 URL: https://issues.apache.org/jira/browse/HADOOP-11337
             Project: Hadoop Common
          Issue Type: Bug
            Reporter: Dian Fu


In {{KeyAuthorizationKeyProvider#getMetadata}}, if firstly call 
{{KeyAuthorizationKeyProvider#doAccessCheck}} to check if client has the 
permission to do this operation. However, if the metadata is null when 
{{KeyAuthorizationKeyProvider#doAccessCheck}} is called and becomes not null 
after {{KeyAuthorizationKeyProvider#doAccessCheck}} called, key based ACL check 
will be skipped. It should throw an exception if metadata is null in 
{{KeyAuthorizationKeyProvider#doAccessCheck}}.
{code}
  public Metadata getMetadata(String name) throws IOException {
    doAccessCheck(name, KeyOpType.READ);
    return provider.getMetadata(name);
  }

  private void doAccessCheck(String keyName, KeyOpType opType) throws
      IOException {
    Metadata metadata = provider.getMetadata(keyName);
    if (metadata != null) {
      String aclName = metadata.getAttributes().get(KEY_ACL_NAME);
      checkAccess((aclName == null) ? keyName : aclName, getUser(), opType);
    }
  }
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to