Vamsee Yarlagadda created SENTRY-1582:
-----------------------------------------
Summary: Comments to clarify the intent of string manipulation
methods in SentryStore.java
Key: SENTRY-1582
URL: https://issues.apache.org/jira/browse/SENTRY-1582
Project: Sentry
Issue Type: Improvement
Components: Sentry
Affects Versions: 1.8.0, sentry-ha-redesign
Reporter: Vamsee Yarlagadda
Assignee: Vamsee Yarlagadda
Attachments: SENTRY-1582.v1.patch
The SentryStore.toSentryPrivilege() function:
{code}
private TSentryPrivilege toSentryPrivilege(TSentryAuthorizable tAuthorizable)
throws SentryInvalidInputException {
TSentryPrivilege tSentryPrivilege = new TSentryPrivilege();
tSentryPrivilege.setDbName(fromNULLCol(tAuthorizable.getDb()));
tSentryPrivilege.setServerName(fromNULLCol(tAuthorizable.getServer()));
tSentryPrivilege.setTableName(fromNULLCol(tAuthorizable.getTable()));
tSentryPrivilege.setColumnName(fromNULLCol(tAuthorizable.getColumn()));
tSentryPrivilege.setURI(fromNULLCol(tAuthorizable.getUri()));
PrivilegeScope scope;
if (!isNULL(tSentryPrivilege.getColumnName())) {
scope = PrivilegeScope.COLUMN;
} else if (!isNULL(tSentryPrivilege.getTableName())) {
scope = PrivilegeScope.TABLE;
} else if (!isNULL(tSentryPrivilege.getDbName())) {
scope = PrivilegeScope.DATABASE;
} else if (!isNULL(tSentryPrivilege.getURI())) {
scope = PrivilegeScope.URI;
} else {
scope = PrivilegeScope.SERVER;
}
tSentryPrivilege.setPrivilegeScope(scope.name());
tSentryPrivilege.setAction(AccessConstants.ALL);
return tSentryPrivilege;
}
{code}
Note that it blindly copies all fields from the source, replacing null with
empty strings and both itself and other consumers downstream do not know which
fields were actually set and which were not. Instead it should just clone
fields that were set.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)