Arjun Mishra created SENTRY-2278:
------------------------------------
Summary: SentryPolicyServiceClientDefaultImpl
setupSentryAuthorizable methods always returns a single TSentryAuthorizable for
a list of authorizable
Key: SENTRY-2278
URL: https://issues.apache.org/jira/browse/SENTRY-2278
Project: Sentry
Issue Type: Bug
Components: Sentry
Affects Versions: 2.1.0
Reporter: Arjun Mishra
Assignee: Arjun Mishra
Fix For: 2.1.0
Looking at the current implementation of
SentryPolicyServiceClientDefaultImpl#setupSentryAuthorizable we get a list of
authorizables but only have a single instance of TSentryAuthorizable which
wrongly overwrites values in the for loop
{noformat}
public static TSentryAuthorizable setupSentryAuthorizable(
List<? extends Authorizable> authorizable) {
TSentryAuthorizable tSentryAuthorizable = new TSentryAuthorizable();
for (Authorizable authzble : authorizable) {
if (authzble.getTypeName().equalsIgnoreCase(
DBModelAuthorizable.AuthorizableType.Server.toString())) {
tSentryAuthorizable.setServer(authzble.getName());
} else if (authzble.getTypeName().equalsIgnoreCase(
DBModelAuthorizable.AuthorizableType.URI.toString())) {
tSentryAuthorizable.setUri(authzble.getName());
} else if (authzble.getTypeName().equalsIgnoreCase(
DBModelAuthorizable.AuthorizableType.Db.toString())) {
tSentryAuthorizable.setDb(authzble.getName());
} else if (authzble.getTypeName().equalsIgnoreCase(
DBModelAuthorizable.AuthorizableType.Table.toString())) {
tSentryAuthorizable.setTable(authzble.getName());
} else if (authzble.getTypeName().equalsIgnoreCase(
DBModelAuthorizable.AuthorizableType.Column.toString())) {
tSentryAuthorizable.setColumn(authzble.getName());
}
}
return tSentryAuthorizable;
}
{noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)