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)