diff --git a/security/src/main/java/org/apache/sqoop/security/authorization/AuthorizationEngine.java b/security/src/main/java/org/apache/sqoop/security/authorization/AuthorizationEngine.java index 091d1c4f..36e0092e 100644 --- a/security/src/main/java/org/apache/sqoop/security/authorization/AuthorizationEngine.java +++ b/security/src/main/java/org/apache/sqoop/security/authorization/AuthorizationEngine.java @@ -33,18 +33,14 @@ public class AuthorizationEngine { - private static String getResourceName(MResource.TYPE resourceType, long resourceId) { - Repository repository = RepositoryManager.getInstance().getRepository(); - - switch (resourceType) { - case CONNECTOR: - return repository.findConnector(resourceId).getUniqueName(); - case LINK: - return repository.findLink(resourceId).getName(); - case JOB: - return repository.findJob(resourceId).getName(); + private static String getResourceName(Object resource) { + if (resource instanceof MConnector) { + return ((MConnector)resource).getUniqueName(); + } else if (resource instanceof MLink) { + return ((MLink)resource).getName(); + } else if (resource instanceof MJob) { + return ((MJob)resource).getName(); } - return null; } @@ -56,7 +52,7 @@ public static List filterResource(final String @Override public boolean apply(T input) { try { - String name = getResourceName(type, input.getPersistenceId()); + String name = getResourceName(input); checkPrivilege(doUserName, getPrivilege(type, name, MPrivilege.ACTION.READ)); // add valid resource return true;