http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4d04a09c/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java
 
b/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java
new file mode 100644
index 0000000..f10453c
--- /dev/null
+++ 
b/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java
@@ -0,0 +1,201 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ranger.security.context;
+
+/**
+ * This class holds list of APIs available in the system. 
+ * This Class needs to be updated when writing new API in any of the REST.
+ */
+public class RangerAPIList {
+
+       /**
+        * List of APIs for AssetREST
+        */
+       public static final String GET_X_ASSET = "AssetREST.getXAsset";
+       public static final String CREATE_X_ASSET = "AssetREST.createXAsset";
+       public static final String UPDATE_X_ASSET = "AssetREST.updateXAsset";
+       public static final String DELETE_X_ASSET = "AssetREST.deleteXAsset";
+       public static final String TEST_CONFIG = "AssetREST.testConfig";
+       public static final String SEARCH_X_ASSETS = "AssetREST.searchXAssets";
+       public static final String COUNT_X_ASSETS = "AssetREST.countXAssets";
+       public static final String GET_X_RESOURCE = "AssetREST.getXResource";
+       public static final String CREATE_X_RESOURCE = 
"AssetREST.createXResource";
+       public static final String UPDATE_X_RESOURCE = 
"AssetREST.updateXResource";
+       public static final String DELETE_X_RESOURCE = 
"AssetREST.deleteXResource";
+       public static final String SEARCH_X_RESOURCES = 
"AssetREST.searchXResources";
+       public static final String COUNT_X_RESOURCES = 
"AssetREST.countXResources";
+       public static final String GET_X_CRED_STORE = 
"AssetREST.getXCredentialStore";
+       public static final String CREATE_X_CRED_STORE = 
"AssetREST.createXCredentialStore";
+       public static final String UPDATE_X_CRED_STORE = 
"AssetREST.updateXCredentialStore";
+       public static final String DELETE_X_CRED_STORE = 
"AssetREST.deleteXCredentialStore";
+       public static final String SEARCH_X_CRED_STORE = 
"AssetREST.searchXCredentialStores";
+       public static final String COUNT_X_CRED_STORE = 
"AssetREST.countXCredentialStores";
+       public static final String GET_X_RESOURCE_FILE = 
"AssetREST.getXResourceFile";
+       public static final String GET_RESOURCE_JSON = 
"AssetREST.getResourceJSON";
+       public static final String SEARCH_X_POLICY_EXPORT_AUDITS = 
"AssetREST.searchXPolicyExportAudits";
+       public static final String GET_REPORT_LOGS = "AssetREST.getReportLogs";
+       public static final String GET_TRANSACTION_REPORT = 
"AssetREST.getTransactionReport";
+       public static final String GET_ACCESS_LOGS = "AssetREST.getAccessLogs";
+       public static final String GRANT_PERMISSION = 
"AssetREST.grantPermission";
+       public static final String REVOKE_PERMISSION = 
"AssetREST.revokePermission";
+
+       /**
+        * List of APIs for ServiceREST
+        */
+       public static final String CREATE_SERVICE_DEF = 
"ServiceREST.createServiceDef";
+       public static final String UPDATE_SERVICE_DEF = 
"ServiceREST.updateServiceDef";
+       public static final String DELETE_SERVICE_DEF = 
"ServiceREST.deleteServiceDef";
+       public static final String GET_SERVICE_DEF = 
"ServiceREST.getServiceDef";
+       public static final String GET_SERVICE_DEF_BY_NAME = 
"ServiceREST.getServiceDefByName";
+       public static final String GET_SERVICE_DEFS = 
"ServiceREST.getServiceDefs";
+       public static final String CREATE_SERVICE = "ServiceREST.createService";
+       public static final String UPDATE_SERVICE = "ServiceREST.updateService";
+       public static final String DELETE_SERVICE = "ServiceREST.deleteService";
+       public static final String GET_SERVICE = "ServiceREST.getService";
+       public static final String GET_SERVICE_BY_NAME = 
"ServiceREST.getServiceByName";
+       public static final String GET_SERVICES = "ServiceREST.getServices";
+       public static final String COUNT_SERVICES = "ServiceREST.countServices";
+       public static final String VALIDATE_CONFIG = 
"ServiceREST.validateConfig";
+       public static final String LOOKUP_RESOURCE = 
"ServiceREST.lookupResource";
+       public static final String GRANT_ACCESS = "ServiceREST.grantAccess";
+       public static final String REVOKE_ACCESS = "ServiceREST.revokeAccess";
+       public static final String CREATE_POLICY = "ServiceREST.createPolicy";
+       public static final String UPDATE_POLICY = "ServiceREST.updatePolicy";
+       public static final String DELETE_POLICY = "ServiceREST.deletePolicy";
+       public static final String GET_POLICY = "ServiceREST.getPolicy";
+       public static final String GET_POLICIES = "ServiceREST.getPolicies";
+       public static final String COUNT_POLICIES = "ServiceREST.countPolicies";
+       public static final String GET_SERVICE_POLICIES = 
"ServiceREST.getServicePolicies";
+       public static final String GET_SERVICE_POLICIES_BY_NAME = 
"ServiceREST.getServicePoliciesByName";
+       public static final String GET_SERVICE_POLICIES_IF_UPDATED = 
"ServiceREST.getServicePoliciesIfUpdated";
+       public static final String GET_POLICY_FROM_EVENT_TIME = 
"ServiceREST.getPolicyFromEventTime";
+       public static final String GET_POLICY_VERSION_LIST = 
"ServiceREST.getPolicyVersionList";
+       public static final String GET_POLICY_FOR_VERSION_NO = 
"ServiceREST.getPolicyForVersionNumber";
+
+       /**
+        * List of APIs for UserREST
+        */
+       public static final String SEARCH_USERS = "UserREST.searchUsers";
+       public static final String GET_USER_PROFILE_FOR_USER = 
"UserREST.getUserProfileForUser";
+       public static final String CREATE = "UserREST.create";
+       public static final String CREATE_DEFAULT_ACCOUNT_USER = 
"UserREST.createDefaultAccountUser";
+       public static final String UPDATE = "UserREST.update";
+       public static final String SET_USER_ROLES = "UserREST.setUserRoles";
+       public static final String DEACTIVATE_USER = "UserREST.deactivateUser";
+       public static final String GET_USER_PROFILE = "UserREST.getUserProfile";
+       public static final String SUGGEST_USER_FIRST_NAME = 
"UserREST.suggestUserFirstName";
+       public static final String CHANGE_PASSWORD = "UserREST.changePassword";
+       public static final String CHANGE_EMAIL_ADDRESS = 
"UserREST.changeEmailAddress";
+
+       /**
+        * List of APIs for XAuditREST
+        */
+       public static final String GET_X_TRX_LOG = "XAuditREST.getXTrxLog";
+       public static final String CREATE_X_TRX_LOG = 
"XAuditREST.createXTrxLog";
+       public static final String UPDATE_X_TRX_LOG = 
"XAuditREST.updateXTrxLog";
+       public static final String DELETE_X_TRX_LOG = 
"XAuditREST.deleteXTrxLog";
+       public static final String SEARCH_X_TRX_LOG = 
"XAuditREST.searchXTrxLogs";
+       public static final String COUNT_X_TRX_LOGS = 
"XAuditREST.countXTrxLogs";
+       public static final String SEARCH_X_ACCESS_AUDITS = 
"XAuditREST.searchXAccessAudits";
+       public static final String COUNT_X_ACCESS_AUDITS = 
"XAuditREST.countXAccessAudits";
+
+       /**
+        * List of APIs for XKeyREST
+        */
+       public static final String SEARCH_KEYS = "XKeyREST.searchKeys";
+       public static final String ROLLOVER_KEYS = "XKeyREST.rolloverKey";
+       public static final String DELETE_KEY = "XKeyREST.deleteKey";
+       public static final String CREATE_KEY = "XKeyREST.createKey";
+       public static final String GET_KEY = "XKeyREST.getKey";
+
+       /**
+        * List of APIs for XUserREST
+        */
+       public static final String GET_X_GROUP = "XUserREST.getXGroup";
+       public static final String SECURE_GET_X_GROUP = 
"XUserREST.secureGetXGroup";
+       public static final String CREATE_X_GROUP = "XUserREST.createXGroup";
+       public static final String SECURE_CREATE_X_GROUP = 
"XUserREST.secureCreateXGroup";
+       public static final String UPDATE_X_GROUP = "XUserREST.updateXGroup";
+       public static final String SECURE_UPDATE_X_GROUP = 
"XUserREST.secureUpdateXGroup";
+       public static final String MODIFY_GROUPS_VISIBILITY = 
"XUserREST.modifyGroupsVisibility";
+       public static final String DELETE_X_GROUP = "XUserREST.deleteXGroup";
+       public static final String SEARCH_X_GROUPS = "XUserREST.searchXGroups";
+       public static final String COUNT_X_GROUPS = "XUserREST.countXGroups";
+       public static final String GET_X_USER = "XUserREST.getXUser";
+       public static final String SECURE_GET_X_USER = 
"XUserREST.secureGetXUser";
+       public static final String CREATE_X_USER = "XUserREST.createXUser";
+       public static final String CREATE_X_USER_GROUP_FROM_MAP = 
"XUserREST.createXUserGroupFromMap";
+       public static final String SECURE_CREATE_X_USER = 
"XUserREST.secureCreateXUser";
+       public static final String UPDATE_X_USER = "XUserREST.updateXUser";
+       public static final String SECURE_UPDATE_X_USER = 
"XUserREST.secureUpdateXUser";
+       public static final String MODIFY_USER_VISIBILITY = 
"XUserREST.modifyUserVisibility";
+       public static final String DELETE_X_USER = "XUserREST.deleteXUser";
+       public static final String SEARCH_X_USERS = "XUserREST.searchXUsers";
+       public static final String COUNT_X_USERS = "XUserREST.countXUsers";
+       public static final String GET_X_GROUP_USER = "XUserREST.getXGroupUser";
+       public static final String CREATE_X_GROUP_USER = 
"XUserREST.createXGroupUser";
+       public static final String UPDATE_X_GROUP_USER = 
"XUserREST.updateXGroupUser";
+       public static final String DELETE_X_GROUP_USER = 
"XUserREST.deleteXGroupUser";
+       public static final String SEARCH_X_GROUP_USERS = 
"XUserREST.searchXGroupUsers";
+       public static final String COUNT_X_GROUP_USERS = 
"XUserREST.countXGroupUsers";
+       public static final String GET_X_GROUP_GROUP = 
"XUserREST.getXGroupGroup";
+       public static final String CREATE_X_GROUP_GROUP = 
"XUserREST.createXGroupGroup";
+       public static final String UPDATE_X_GROUP_GROUP = 
"XUserREST.updateXGroupGroup";
+       public static final String DELETE_X_GROUP_GROUP = 
"XUserREST.deleteXGroupGroup";
+       public static final String SEARCH_X_GROUP_GROUPS = 
"XUserREST.searchXGroupGroups";
+       public static final String COUNT_X_GROUP_GROUPS = 
"XUserREST.countXGroupGroups";
+       public static final String GET_X_PERM_MAP = "XUserREST.getXPermMap";
+       public static final String CREATE_X_PERM_MAP = 
"XUserREST.createXPermMap";
+       public static final String UPDATE_X_PERM_MAP = 
"XUserREST.updateXPermMap";
+       public static final String DELETE_X_PERM_MAP = 
"XUserREST.deleteXPermMap";
+       public static final String SEARCH_X_PERM_MAPS = 
"XUserREST.searchXPermMaps";
+       public static final String COUNT_X_PERM_MAPS = 
"XUserREST.countXPermMaps";
+       public static final String GET_X_AUDIT_MAP = "XUserREST.getXAuditMap";
+       public static final String CREATE_X_AUDIT_MAP = 
"XUserREST.createXAuditMap";
+       public static final String UPDATE_X_AUDIT_MAP = 
"XUserREST.updateXAuditMap";
+       public static final String DELETE_X_AUDIT_MAP = 
"XUserREST.deleteXAuditMap";
+       public static final String SEARCH_X_AUDIT_MAPS = 
"XUserREST.searchXAuditMaps";
+       public static final String COUNT_X_AUDIT_MAPS = 
"XUserREST.countXAuditMaps";
+       public static final String GET_X_USER_BY_USER_NAME = 
"XUserREST.getXUserByUserName";
+       public static final String GET_X_GROUP_BY_GROUP_NAME = 
"XUserREST.getXGroupByGroupName";
+       public static final String DELETE_X_USER_BY_USER_NAME = 
"XUserREST.deleteXUserByUserName";
+       public static final String DELETE_X_GROUP_BY_GROUP_NAME = 
"XUserREST.deleteXGroupByGroupName";
+       public static final String DELETE_X_GROUP_AND_X_USER = 
"XUserREST.deleteXGroupAndXUser";
+       public static final String GET_X_USER_GROUPS = 
"XUserREST.getXUserGroups";
+       public static final String GET_X_GROUP_USERS = 
"XUserREST.getXGroupUsers";
+       public static final String GET_AUTH_SESSIONS = 
"XUserREST.getAuthSessions";
+       public static final String GET_AUTH_SESSION = 
"XUserREST.getAuthSession";
+       public static final String CREATE_X_MODULE_DEF_PERMISSION = 
"XUserREST.createXModuleDefPermission";
+       public static final String GET_X_MODULE_DEF_PERMISSION = 
"XUserREST.getXModuleDefPermission";
+       public static final String UPDATE_X_MODULE_DEF_PERMISSION = 
"XUserREST.updateXModuleDefPermission";
+       public static final String DELETE_X_MODULE_DEF_PERMISSION = 
"XUserREST.deleteXModuleDefPermission";
+       public static final String SEARCH_X_MODULE_DEF = 
"XUserREST.searchXModuleDef";
+       public static final String COUNT_X_MODULE_DEF = 
"XUserREST.countXModuleDef";
+       public static final String CREATE_X_USER_PERMISSION = 
"XUserREST.createXUserPermission";
+       public static final String GET_X_USER_PERMISSION = 
"XUserREST.getXUserPermission";
+       public static final String UPDATE_X_USER_PERMISSION = 
"XUserREST.updateXUserPermission";
+       public static final String DELETE_X_USER_PERMISSION = 
"XUserREST.deleteXUserPermission";
+       public static final String SEARCH_X_USER_PERMISSION = 
"XUserREST.searchXUserPermission";
+       public static final String COUNT_X_USER_PERMISSION = 
"XUserREST.countXUserPermission";
+       public static final String CREATE_X_GROUP_PERMISSION = 
"XUserREST.createXGroupPermission";
+       public static final String GET_X_GROUP_PERMISSION = 
"XUserREST.getXGroupPermission";
+       public static final String UPDATE_X_GROUP_PERMISSION = 
"XUserREST.updateXGroupPermission";
+       public static final String DELETE_X_GROUP_PERMISSION = 
"XUserREST.deleteXGroupPermission";
+       public static final String SEARCH_X_GROUP_PERMISSION = 
"XUserREST.searchXGroupPermission";
+       public static final String COUNT_X_GROUP_PERMISSION = 
"XUserREST.countXGroupPermission";
+       public static final String MODIFY_USER_ACTIVE_STATUS = 
"XUserREST.modifyUserActiveStatus";
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4d04a09c/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIMapping.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIMapping.java
 
b/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIMapping.java
new file mode 100644
index 0000000..adc8e2a
--- /dev/null
+++ 
b/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIMapping.java
@@ -0,0 +1,535 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ranger.security.context;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.stereotype.Component;
+
+@Component
+public class RangerAPIMapping {
+
+       /**
+        * @NOTE While adding new tab here, please don't forget to update the 
function:
+        *       
org.apache.ranger.security.context.RangerAPIMapping.getAvailableUITabs()
+        */
+       public static final String TAB_RESOURCE_BASED_POLICIES = "Resource 
Based Policies";
+       public static final String TAB_AUDIT = "Audit";
+       public static final String TAB_USERS_GROUPS = "Users/Groups";
+       public static final String TAB_PERMISSIONS = "Permissions";
+       public static final String TAB_KEY_MANAGER = "Key Manager";
+       public static final String TAB_TAG_BASED_POLICIES = "Tag Based 
Policies";
+       public static final String TAB_REPORTS = "Reports";
+
+       private static HashMap<String, Set<String>> rangerAPIMappingWithUI = 
null;
+       private static Set<String> tabList = new HashSet<String>();
+       private static Map<String, Set<String>> mapApiToTabs = null;
+
+       public RangerAPIMapping() {
+               init();
+       }
+
+       private void init() {
+               if (rangerAPIMappingWithUI == null) {
+                       rangerAPIMappingWithUI = new HashMap<String, 
Set<String>>();
+               }
+               if (mapApiToTabs == null) {
+                       mapApiToTabs = new HashMap<String, Set<String>>();
+               }
+
+               mapResourceBasedPoliciesWithAPIs();
+               mapAuditWithAPIs();
+               mapUGWithAPIs();
+               mapPermissionsWithAPIs();
+               mapKeyManagerWithAPIs();
+               mapTagBasedPoliciesWithAPIs();
+               mapReportsWithAPIs();
+
+               if (CollectionUtils.isEmpty(tabList)) {
+                       populateAvailableUITabs();
+               }
+
+       }
+
+       private void populateAvailableUITabs() {
+               tabList = new HashSet<String>();
+               tabList.add(TAB_RESOURCE_BASED_POLICIES);
+               tabList.add(TAB_TAG_BASED_POLICIES);
+               tabList.add(TAB_AUDIT);
+               tabList.add(TAB_REPORTS);
+               tabList.add(TAB_KEY_MANAGER);
+               tabList.add(TAB_PERMISSIONS);
+               tabList.add(TAB_USERS_GROUPS);
+       }
+
+       private void mapReportsWithAPIs() {
+               Set<String> apiAssociatedWithReports = new HashSet<String>();
+
+               apiAssociatedWithReports.add(RangerAPIList.COUNT_X_ASSETS);
+               apiAssociatedWithReports.add(RangerAPIList.GET_X_ASSET);
+               apiAssociatedWithReports.add(RangerAPIList.SEARCH_X_ASSETS);
+
+               apiAssociatedWithReports.add(RangerAPIList.COUNT_SERVICES);
+               
apiAssociatedWithReports.add(RangerAPIList.GET_POLICY_FOR_VERSION_NO);
+               
apiAssociatedWithReports.add(RangerAPIList.GET_POLICY_FROM_EVENT_TIME);
+               
apiAssociatedWithReports.add(RangerAPIList.GET_POLICY_VERSION_LIST);
+               apiAssociatedWithReports.add(RangerAPIList.GET_SERVICE);
+               apiAssociatedWithReports.add(RangerAPIList.GET_SERVICE_BY_NAME);
+               apiAssociatedWithReports.add(RangerAPIList.GET_SERVICE_DEF);
+               
apiAssociatedWithReports.add(RangerAPIList.GET_SERVICE_DEF_BY_NAME);
+               apiAssociatedWithReports.add(RangerAPIList.GET_SERVICE_DEFS);
+               apiAssociatedWithReports.add(RangerAPIList.GET_SERVICES);
+               apiAssociatedWithReports.add(RangerAPIList.LOOKUP_RESOURCE);
+
+               
apiAssociatedWithReports.add(RangerAPIList.GET_USER_PROFILE_FOR_USER);
+               apiAssociatedWithReports.add(RangerAPIList.SEARCH_USERS);
+
+               apiAssociatedWithReports.add(RangerAPIList.COUNT_X_AUDIT_MAPS);
+               
apiAssociatedWithReports.add(RangerAPIList.COUNT_X_GROUP_GROUPS);
+               apiAssociatedWithReports.add(RangerAPIList.COUNT_X_GROUPS);
+               apiAssociatedWithReports.add(RangerAPIList.COUNT_X_GROUP_USERS);
+               apiAssociatedWithReports.add(RangerAPIList.COUNT_X_PERM_MAPS);
+               apiAssociatedWithReports.add(RangerAPIList.COUNT_X_USERS);
+               apiAssociatedWithReports.add(RangerAPIList.GET_X_AUDIT_MAP);
+               apiAssociatedWithReports.add(RangerAPIList.GET_X_GROUP);
+               
apiAssociatedWithReports.add(RangerAPIList.GET_X_GROUP_BY_GROUP_NAME);
+               apiAssociatedWithReports.add(RangerAPIList.GET_X_GROUP_GROUP);
+               apiAssociatedWithReports.add(RangerAPIList.GET_X_GROUP_USER);
+               apiAssociatedWithReports.add(RangerAPIList.GET_X_GROUP_USERS);
+               apiAssociatedWithReports.add(RangerAPIList.GET_X_PERM_MAP);
+               apiAssociatedWithReports.add(RangerAPIList.GET_X_USER);
+               
apiAssociatedWithReports.add(RangerAPIList.GET_X_USER_BY_USER_NAME);
+               apiAssociatedWithReports.add(RangerAPIList.GET_X_USER_GROUPS);
+               apiAssociatedWithReports.add(RangerAPIList.SEARCH_X_AUDIT_MAPS);
+               
apiAssociatedWithReports.add(RangerAPIList.SEARCH_X_GROUP_GROUPS);
+               apiAssociatedWithReports.add(RangerAPIList.SEARCH_X_GROUPS);
+               
apiAssociatedWithReports.add(RangerAPIList.SEARCH_X_GROUP_USERS);
+               apiAssociatedWithReports.add(RangerAPIList.SEARCH_X_PERM_MAPS);
+               apiAssociatedWithReports.add(RangerAPIList.SEARCH_X_USERS);
+               apiAssociatedWithReports.add(RangerAPIList.SECURE_GET_X_GROUP);
+               apiAssociatedWithReports.add(RangerAPIList.SECURE_GET_X_USER);
+
+               rangerAPIMappingWithUI.put(TAB_REPORTS, 
apiAssociatedWithReports);
+
+               for (String api : apiAssociatedWithReports) {
+                       if (mapApiToTabs.get(api) == null) {
+                               mapApiToTabs.put(api, new HashSet<String>());
+                       }
+                       mapApiToTabs.get(api).add(TAB_REPORTS);
+               }
+       }
+
+       private void mapTagBasedPoliciesWithAPIs() {
+               Set<String> apiAssociatedWithTagBasedPolicy = new 
HashSet<String>();
+
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.COUNT_X_ASSETS);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.CREATE_X_ASSET);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.DELETE_X_ASSET);
+               apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_X_ASSET);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.SEARCH_X_ASSETS);
+               apiAssociatedWithTagBasedPolicy.add(RangerAPIList.TEST_CONFIG);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.UPDATE_X_ASSET);
+
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.COUNT_SERVICES);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.CREATE_SERVICE);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.CREATE_SERVICE_DEF);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.DELETE_SERVICE);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.DELETE_SERVICE_DEF);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_POLICY_FOR_VERSION_NO);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_POLICY_FROM_EVENT_TIME);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_POLICY_VERSION_LIST);
+               apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_SERVICE);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_SERVICE_BY_NAME);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_SERVICE_DEF);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_SERVICE_DEF_BY_NAME);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_SERVICE_DEFS);
+               apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_SERVICES);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.LOOKUP_RESOURCE);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.UPDATE_SERVICE);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.UPDATE_SERVICE_DEF);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.VALIDATE_CONFIG);
+
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_USER_PROFILE_FOR_USER);
+               apiAssociatedWithTagBasedPolicy.add(RangerAPIList.SEARCH_USERS);
+
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.COUNT_X_AUDIT_MAPS);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.COUNT_X_GROUP_GROUPS);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.COUNT_X_GROUPS);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.COUNT_X_GROUP_USERS);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.COUNT_X_PERM_MAPS);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.COUNT_X_USERS);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.CREATE_X_AUDIT_MAP);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.CREATE_X_PERM_MAP);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.DELETE_X_AUDIT_MAP);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.DELETE_X_PERM_MAP);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_X_AUDIT_MAP);
+               apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_X_GROUP);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_X_GROUP_BY_GROUP_NAME);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_X_GROUP_GROUP);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_X_GROUP_USER);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_X_GROUP_USERS);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_X_PERM_MAP);
+               apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_X_USER);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_X_USER_BY_USER_NAME);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.GET_X_USER_GROUPS);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.MODIFY_GROUPS_VISIBILITY);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.MODIFY_USER_ACTIVE_STATUS);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.MODIFY_USER_VISIBILITY);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.SEARCH_X_AUDIT_MAPS);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.SEARCH_X_GROUP_GROUPS);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.SEARCH_X_GROUPS);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.SEARCH_X_GROUP_USERS);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.SEARCH_X_PERM_MAPS);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.SEARCH_X_USERS);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.SECURE_GET_X_GROUP);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.SECURE_GET_X_USER);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.UPDATE_X_AUDIT_MAP);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.UPDATE_X_PERM_MAP);
+
+               apiAssociatedWithTagBasedPolicy.add(RangerAPIList.CREATE);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.CREATE_DEFAULT_ACCOUNT_USER);
+               apiAssociatedWithTagBasedPolicy.add(RangerAPIList.UPDATE);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.SET_USER_ROLES);
+               
apiAssociatedWithTagBasedPolicy.add(RangerAPIList.DEACTIVATE_USER);
+
+               rangerAPIMappingWithUI.put(TAB_TAG_BASED_POLICIES, 
apiAssociatedWithTagBasedPolicy);
+
+               for (String api : apiAssociatedWithTagBasedPolicy) {
+                       if (mapApiToTabs.get(api) == null) {
+                               mapApiToTabs.put(api, new HashSet<String>());
+                       }
+                       mapApiToTabs.get(api).add(TAB_TAG_BASED_POLICIES);
+               }
+       }
+
+       private void mapKeyManagerWithAPIs() {
+
+               Set<String> apiAssociatedWithKeyManager = new HashSet<String>();
+
+               apiAssociatedWithKeyManager.add(RangerAPIList.COUNT_X_ASSETS);
+               apiAssociatedWithKeyManager.add(RangerAPIList.CREATE_X_ASSET);
+               apiAssociatedWithKeyManager.add(RangerAPIList.DELETE_X_ASSET);
+               apiAssociatedWithKeyManager.add(RangerAPIList.GET_X_ASSET);
+               apiAssociatedWithKeyManager.add(RangerAPIList.SEARCH_X_ASSETS);
+               apiAssociatedWithKeyManager.add(RangerAPIList.TEST_CONFIG);
+               apiAssociatedWithKeyManager.add(RangerAPIList.UPDATE_X_ASSET);
+
+               apiAssociatedWithKeyManager.add(RangerAPIList.COUNT_SERVICES);
+               apiAssociatedWithKeyManager.add(RangerAPIList.CREATE_SERVICE);
+               
apiAssociatedWithKeyManager.add(RangerAPIList.CREATE_SERVICE_DEF);
+               apiAssociatedWithKeyManager.add(RangerAPIList.DELETE_SERVICE);
+               
apiAssociatedWithKeyManager.add(RangerAPIList.DELETE_SERVICE_DEF);
+               
apiAssociatedWithKeyManager.add(RangerAPIList.GET_POLICY_FOR_VERSION_NO);
+               
apiAssociatedWithKeyManager.add(RangerAPIList.GET_POLICY_FROM_EVENT_TIME);
+               
apiAssociatedWithKeyManager.add(RangerAPIList.GET_POLICY_VERSION_LIST);
+               apiAssociatedWithKeyManager.add(RangerAPIList.GET_SERVICE);
+               
apiAssociatedWithKeyManager.add(RangerAPIList.GET_SERVICE_BY_NAME);
+               apiAssociatedWithKeyManager.add(RangerAPIList.GET_SERVICE_DEF);
+               
apiAssociatedWithKeyManager.add(RangerAPIList.GET_SERVICE_DEF_BY_NAME);
+               apiAssociatedWithKeyManager.add(RangerAPIList.GET_SERVICE_DEFS);
+               apiAssociatedWithKeyManager.add(RangerAPIList.GET_SERVICES);
+               apiAssociatedWithKeyManager.add(RangerAPIList.LOOKUP_RESOURCE);
+               apiAssociatedWithKeyManager.add(RangerAPIList.UPDATE_SERVICE);
+               
apiAssociatedWithKeyManager.add(RangerAPIList.UPDATE_SERVICE_DEF);
+               apiAssociatedWithKeyManager.add(RangerAPIList.VALIDATE_CONFIG);
+
+               apiAssociatedWithKeyManager.add(RangerAPIList.CREATE_KEY);
+               apiAssociatedWithKeyManager.add(RangerAPIList.DELETE_KEY);
+               apiAssociatedWithKeyManager.add(RangerAPIList.GET_KEY);
+               apiAssociatedWithKeyManager.add(RangerAPIList.ROLLOVER_KEYS);
+               apiAssociatedWithKeyManager.add(RangerAPIList.SEARCH_KEYS);
+
+               rangerAPIMappingWithUI.put(TAB_KEY_MANAGER, 
apiAssociatedWithKeyManager);
+
+               for (String api : apiAssociatedWithKeyManager) {
+                       if (mapApiToTabs.get(api) == null) {
+                               mapApiToTabs.put(api, new HashSet<String>());
+                       }
+                       mapApiToTabs.get(api).add(TAB_KEY_MANAGER);
+               }
+       }
+
+       private void mapPermissionsWithAPIs() {
+
+               Set<String> apiAssociatedWithPermissions = new 
HashSet<String>();
+
+               
apiAssociatedWithPermissions.add(RangerAPIList.COUNT_X_GROUP_PERMISSION);
+               
apiAssociatedWithPermissions.add(RangerAPIList.COUNT_X_MODULE_DEF);
+               
apiAssociatedWithPermissions.add(RangerAPIList.COUNT_X_USER_PERMISSION);
+               
apiAssociatedWithPermissions.add(RangerAPIList.CREATE_X_GROUP_PERMISSION);
+               
apiAssociatedWithPermissions.add(RangerAPIList.CREATE_X_MODULE_DEF_PERMISSION);
+               
apiAssociatedWithPermissions.add(RangerAPIList.CREATE_X_USER_PERMISSION);
+               
apiAssociatedWithPermissions.add(RangerAPIList.DELETE_X_GROUP_PERMISSION);
+               
apiAssociatedWithPermissions.add(RangerAPIList.DELETE_X_MODULE_DEF_PERMISSION);
+               
apiAssociatedWithPermissions.add(RangerAPIList.DELETE_X_USER_PERMISSION);
+               
apiAssociatedWithPermissions.add(RangerAPIList.GET_X_GROUP_PERMISSION);
+               
apiAssociatedWithPermissions.add(RangerAPIList.GET_X_MODULE_DEF_PERMISSION);
+               
apiAssociatedWithPermissions.add(RangerAPIList.GET_X_USER_PERMISSION);
+               
apiAssociatedWithPermissions.add(RangerAPIList.SEARCH_X_GROUP_PERMISSION);
+               
apiAssociatedWithPermissions.add(RangerAPIList.SEARCH_X_MODULE_DEF);
+               
apiAssociatedWithPermissions.add(RangerAPIList.SEARCH_X_USER_PERMISSION);
+               
apiAssociatedWithPermissions.add(RangerAPIList.UPDATE_X_GROUP_PERMISSION);
+               
apiAssociatedWithPermissions.add(RangerAPIList.UPDATE_X_MODULE_DEF_PERMISSION);
+               
apiAssociatedWithPermissions.add(RangerAPIList.UPDATE_X_USER_PERMISSION);
+
+               rangerAPIMappingWithUI.put(TAB_PERMISSIONS, 
apiAssociatedWithPermissions);
+
+               for (String api : apiAssociatedWithPermissions) {
+                       if (mapApiToTabs.get(api) == null) {
+                               mapApiToTabs.put(api, new HashSet<String>());
+                       }
+                       mapApiToTabs.get(api).add(TAB_PERMISSIONS);
+               }
+       }
+
+       private void mapUGWithAPIs() {
+               Set<String> apiAssociatedWithUserAndGroups = new 
HashSet<String>();
+
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.GET_USER_PROFILE_FOR_USER);
+               apiAssociatedWithUserAndGroups.add(RangerAPIList.SEARCH_USERS);
+
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.COUNT_X_AUDIT_MAPS);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.COUNT_X_GROUP_GROUPS);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.COUNT_X_GROUPS);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.COUNT_X_GROUP_USERS);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.COUNT_X_PERM_MAPS);
+               apiAssociatedWithUserAndGroups.add(RangerAPIList.COUNT_X_USERS);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.CREATE_X_AUDIT_MAP);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.CREATE_X_PERM_MAP);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.DELETE_X_AUDIT_MAP);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.DELETE_X_PERM_MAP);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.GET_X_AUDIT_MAP);
+               apiAssociatedWithUserAndGroups.add(RangerAPIList.GET_X_GROUP);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.GET_X_GROUP_BY_GROUP_NAME);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.GET_X_GROUP_GROUP);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.GET_X_GROUP_USER);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.GET_X_GROUP_USERS);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.GET_X_PERM_MAP);
+               apiAssociatedWithUserAndGroups.add(RangerAPIList.GET_X_USER);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.GET_X_USER_BY_USER_NAME);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.GET_X_USER_GROUPS);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.MODIFY_GROUPS_VISIBILITY);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.MODIFY_USER_ACTIVE_STATUS);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.MODIFY_USER_VISIBILITY);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.SEARCH_X_AUDIT_MAPS);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.SEARCH_X_GROUP_GROUPS);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.SEARCH_X_GROUPS);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.SEARCH_X_GROUP_USERS);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.SEARCH_X_PERM_MAPS);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.SEARCH_X_USERS);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.SECURE_GET_X_GROUP);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.SECURE_GET_X_USER);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.UPDATE_X_AUDIT_MAP);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.UPDATE_X_PERM_MAP);
+
+               apiAssociatedWithUserAndGroups.add(RangerAPIList.CREATE);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.CREATE_DEFAULT_ACCOUNT_USER);
+               apiAssociatedWithUserAndGroups.add(RangerAPIList.UPDATE);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.SET_USER_ROLES);
+               
apiAssociatedWithUserAndGroups.add(RangerAPIList.DEACTIVATE_USER);
+
+               rangerAPIMappingWithUI.put(TAB_USERS_GROUPS, 
apiAssociatedWithUserAndGroups);
+
+               for (String api : apiAssociatedWithUserAndGroups) {
+                       if (mapApiToTabs.get(api) == null) {
+                               mapApiToTabs.put(api, new HashSet<String>());
+                       }
+                       mapApiToTabs.get(api).add(TAB_USERS_GROUPS);
+               }
+       }
+
+       private void mapAuditWithAPIs() {
+
+               Set<String> apiAssociatedWithAudit = new HashSet<String>();
+
+               apiAssociatedWithAudit.add(RangerAPIList.COUNT_X_ASSETS);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_X_ASSET);
+               apiAssociatedWithAudit.add(RangerAPIList.SEARCH_X_ASSETS);
+
+               apiAssociatedWithAudit.add(RangerAPIList.COUNT_SERVICES);
+               
apiAssociatedWithAudit.add(RangerAPIList.GET_POLICY_FOR_VERSION_NO);
+               
apiAssociatedWithAudit.add(RangerAPIList.GET_POLICY_FROM_EVENT_TIME);
+               
apiAssociatedWithAudit.add(RangerAPIList.GET_POLICY_VERSION_LIST);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_SERVICE);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_SERVICE_BY_NAME);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_SERVICE_DEF);
+               
apiAssociatedWithAudit.add(RangerAPIList.GET_SERVICE_DEF_BY_NAME);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_SERVICE_DEFS);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_SERVICES);
+               apiAssociatedWithAudit.add(RangerAPIList.LOOKUP_RESOURCE);
+
+               
apiAssociatedWithAudit.add(RangerAPIList.GET_USER_PROFILE_FOR_USER);
+               apiAssociatedWithAudit.add(RangerAPIList.SEARCH_USERS);
+
+               apiAssociatedWithAudit.add(RangerAPIList.COUNT_X_AUDIT_MAPS);
+               apiAssociatedWithAudit.add(RangerAPIList.COUNT_X_GROUP_GROUPS);
+               apiAssociatedWithAudit.add(RangerAPIList.COUNT_X_GROUPS);
+               apiAssociatedWithAudit.add(RangerAPIList.COUNT_X_GROUP_USERS);
+               apiAssociatedWithAudit.add(RangerAPIList.COUNT_X_PERM_MAPS);
+               apiAssociatedWithAudit.add(RangerAPIList.COUNT_X_USERS);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_X_AUDIT_MAP);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_X_GROUP);
+               
apiAssociatedWithAudit.add(RangerAPIList.GET_X_GROUP_BY_GROUP_NAME);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_X_GROUP_GROUP);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_X_GROUP_USER);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_X_GROUP_USERS);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_X_PERM_MAP);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_X_USER);
+               
apiAssociatedWithAudit.add(RangerAPIList.GET_X_USER_BY_USER_NAME);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_X_USER_GROUPS);
+               apiAssociatedWithAudit.add(RangerAPIList.SEARCH_X_AUDIT_MAPS);
+               apiAssociatedWithAudit.add(RangerAPIList.SEARCH_X_GROUP_GROUPS);
+               apiAssociatedWithAudit.add(RangerAPIList.SEARCH_X_GROUPS);
+               apiAssociatedWithAudit.add(RangerAPIList.SEARCH_X_GROUP_USERS);
+               apiAssociatedWithAudit.add(RangerAPIList.SEARCH_X_PERM_MAPS);
+               apiAssociatedWithAudit.add(RangerAPIList.SEARCH_X_USERS);
+               apiAssociatedWithAudit.add(RangerAPIList.SECURE_GET_X_GROUP);
+               apiAssociatedWithAudit.add(RangerAPIList.SECURE_GET_X_USER);
+
+               apiAssociatedWithAudit.add(RangerAPIList.GET_X_TRX_LOG);
+               apiAssociatedWithAudit.add(RangerAPIList.CREATE_X_TRX_LOG);
+               apiAssociatedWithAudit.add(RangerAPIList.UPDATE_X_TRX_LOG);
+               apiAssociatedWithAudit.add(RangerAPIList.DELETE_X_TRX_LOG);
+               apiAssociatedWithAudit.add(RangerAPIList.SEARCH_X_TRX_LOG);
+               apiAssociatedWithAudit.add(RangerAPIList.COUNT_X_TRX_LOGS);
+               
apiAssociatedWithAudit.add(RangerAPIList.SEARCH_X_ACCESS_AUDITS);
+               apiAssociatedWithAudit.add(RangerAPIList.COUNT_X_ACCESS_AUDITS);
+               
apiAssociatedWithAudit.add(RangerAPIList.SEARCH_X_POLICY_EXPORT_AUDITS);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_REPORT_LOGS);
+               
apiAssociatedWithAudit.add(RangerAPIList.GET_TRANSACTION_REPORT);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_ACCESS_LOGS);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_AUTH_SESSION);
+               apiAssociatedWithAudit.add(RangerAPIList.GET_AUTH_SESSIONS);
+
+               rangerAPIMappingWithUI.put(TAB_AUDIT, apiAssociatedWithAudit);
+
+               for (String api : apiAssociatedWithAudit) {
+                       if (mapApiToTabs.get(api) == null) {
+                               mapApiToTabs.put(api, new HashSet<String>());
+                       }
+                       mapApiToTabs.get(api).add(TAB_AUDIT);
+               }
+       }
+
+       private void mapResourceBasedPoliciesWithAPIs() {
+               Set<String> apiAssociatedWithRBPolicies = new HashSet<String>();
+
+               apiAssociatedWithRBPolicies.add(RangerAPIList.COUNT_X_ASSETS);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.CREATE_X_ASSET);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.DELETE_X_ASSET);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.GET_X_ASSET);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.SEARCH_X_ASSETS);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.TEST_CONFIG);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.UPDATE_X_ASSET);
+
+               apiAssociatedWithRBPolicies.add(RangerAPIList.COUNT_SERVICES);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.CREATE_SERVICE);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.CREATE_SERVICE_DEF);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.DELETE_SERVICE);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.DELETE_SERVICE_DEF);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.GET_POLICY_FOR_VERSION_NO);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.GET_POLICY_FROM_EVENT_TIME);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.GET_POLICY_VERSION_LIST);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.GET_SERVICE);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.GET_SERVICE_BY_NAME);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.GET_SERVICE_DEF);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.GET_SERVICE_DEF_BY_NAME);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.GET_SERVICE_DEFS);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.GET_SERVICES);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.LOOKUP_RESOURCE);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.UPDATE_SERVICE);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.UPDATE_SERVICE_DEF);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.VALIDATE_CONFIG);
+
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.GET_USER_PROFILE_FOR_USER);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.SEARCH_USERS);
+
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.COUNT_X_AUDIT_MAPS);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.COUNT_X_GROUP_GROUPS);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.COUNT_X_GROUPS);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.COUNT_X_GROUP_USERS);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.COUNT_X_PERM_MAPS);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.COUNT_X_USERS);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.CREATE_X_AUDIT_MAP);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.CREATE_X_PERM_MAP);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.DELETE_X_AUDIT_MAP);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.DELETE_X_PERM_MAP);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.GET_X_AUDIT_MAP);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.GET_X_GROUP);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.GET_X_GROUP_BY_GROUP_NAME);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.GET_X_GROUP_GROUP);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.GET_X_GROUP_USER);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.GET_X_GROUP_USERS);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.GET_X_PERM_MAP);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.GET_X_USER);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.GET_X_USER_BY_USER_NAME);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.GET_X_USER_GROUPS);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.MODIFY_GROUPS_VISIBILITY);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.MODIFY_USER_ACTIVE_STATUS);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.MODIFY_USER_VISIBILITY);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.SEARCH_X_AUDIT_MAPS);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.SEARCH_X_GROUP_GROUPS);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.SEARCH_X_GROUPS);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.SEARCH_X_GROUP_USERS);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.SEARCH_X_PERM_MAPS);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.SEARCH_X_USERS);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.SECURE_GET_X_GROUP);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.SECURE_GET_X_USER);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.UPDATE_X_AUDIT_MAP);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.UPDATE_X_PERM_MAP);
+
+               apiAssociatedWithRBPolicies.add(RangerAPIList.CREATE);
+               
apiAssociatedWithRBPolicies.add(RangerAPIList.CREATE_DEFAULT_ACCOUNT_USER);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.UPDATE);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.SET_USER_ROLES);
+               apiAssociatedWithRBPolicies.add(RangerAPIList.DEACTIVATE_USER);
+
+               rangerAPIMappingWithUI.put(TAB_RESOURCE_BASED_POLICIES, 
apiAssociatedWithRBPolicies);
+
+               for (String api : apiAssociatedWithRBPolicies) {
+                       if (mapApiToTabs.get(api) == null) {
+                               mapApiToTabs.put(api, new HashSet<String>());
+                       }
+                       mapApiToTabs.get(api).add(TAB_RESOURCE_BASED_POLICIES);
+               }
+       }
+
+       // * Utility methods starts from here, to retrieve API-UItab mapping 
information *
+
+       public Set<String> getAvailableUITabs() {
+               if (CollectionUtils.isEmpty(tabList)) {
+                       populateAvailableUITabs();
+               }
+               return tabList;
+       }
+
+       /**
+        * @param apiName
+        * @return
+        * 
+        * @Note: apiName being passed to this function should strictly follow 
this format: {ClassName}.{apiMethodName} and also API should be listed into
+        *        RangerAPIList and should be mapped properly with UI tabs in 
the current class.
+        */
+       public Set<String> getAssociatedTabsWithAPI(String apiName) {
+               Set<String> associatedTabs = mapApiToTabs.get(apiName);
+               return associatedTabs;
+       }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4d04a09c/security-admin/src/main/java/org/apache/ranger/security/context/RangerPreAuthSecurityHandler.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/security/context/RangerPreAuthSecurityHandler.java
 
b/security-admin/src/main/java/org/apache/ranger/security/context/RangerPreAuthSecurityHandler.java
new file mode 100644
index 0000000..6d132e6
--- /dev/null
+++ 
b/security-admin/src/main/java/org/apache/ranger/security/context/RangerPreAuthSecurityHandler.java
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ranger.security.context;
+
+import java.util.List;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.log4j.Logger;
+import org.apache.ranger.common.ContextUtil;
+import org.apache.ranger.common.MessageEnums;
+import org.apache.ranger.common.RESTErrorUtil;
+import org.apache.ranger.common.UserSessionBase;
+import org.apache.ranger.db.RangerDaoManager;
+import org.apache.ranger.entity.XXUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component("rangerPreAuthSecurityHandler")
+public class RangerPreAuthSecurityHandler {
+       Logger logger = Logger.getLogger(RangerPreAuthSecurityHandler.class);
+
+       @Autowired
+       RangerDaoManager daoManager;
+
+       @Autowired
+       RESTErrorUtil restErrorUtil;
+
+       @Autowired
+       RangerAPIMapping rangerAPIMapping;
+
+       public boolean isAPIAccessible(String methodName) throws Exception {
+
+               if (methodName == null) {
+                       return false;
+               }
+
+               UserSessionBase userSession = 
ContextUtil.getCurrentUserSession();
+               if (userSession == null) {
+                       logger.warn("WARNING: UserSession found null. Some 
non-authorized user might be trying to access the API.");
+                       return false;
+               }
+
+               if (userSession.isUserAdmin()) {
+                       if (logger.isDebugEnabled()) {
+                               logger.debug("WARNING: Logged in user is System 
Admin, System Admin is allowed to access all the tabs except Key Manager."
+                                               + "Reason for returning true 
is, In few cases system admin needs to have access on Key Manager tabs as 
well.");
+                       }
+                       return true;
+               }
+
+               Set<String> associatedTabs = 
rangerAPIMapping.getAssociatedTabsWithAPI(methodName);
+               if (CollectionUtils.isEmpty(associatedTabs)) {
+                       return true;
+               }
+               return isAPIAccessible(associatedTabs);
+       }
+
+       public boolean isAPIAccessible(Set<String> associatedTabs) throws 
Exception {
+
+               XXUser xUser = 
daoManager.getXXUser().findByUserName(ContextUtil.getCurrentUserLoginId());
+               if (xUser == null) {
+                       restErrorUtil.createRESTException("x_user cannot be 
null.", MessageEnums.ERROR_SYSTEM);
+               }
+
+               List<String> accessibleModules = 
daoManager.getXXModuleDef().findAccessibleModulesByUserId(ContextUtil.getCurrentUserId(),
 xUser.getId());
+               if (CollectionUtils.containsAny(accessibleModules, 
associatedTabs)) {
+                       return true;
+               }
+
+               throw 
restErrorUtil.createRESTException(HttpServletResponse.SC_FORBIDDEN, "User is 
not allowed to access the API", true);
+       }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4d04a09c/security-admin/src/main/java/org/apache/ranger/service/XAuditMapService.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/XAuditMapService.java 
b/security-admin/src/main/java/org/apache/ranger/service/XAuditMapService.java
index 1f48c86..349ddbd 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/service/XAuditMapService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/service/XAuditMapService.java
@@ -24,16 +24,23 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
+import org.apache.ranger.biz.RangerBizUtil;
 import org.apache.ranger.common.AppConstants;
+import org.apache.ranger.common.ContextUtil;
+import org.apache.ranger.common.SearchCriteria;
 import org.apache.ranger.common.SearchField;
+import org.apache.ranger.common.UserSessionBase;
 import org.apache.ranger.common.view.VTrxLogAttr;
 import org.apache.ranger.db.RangerDaoManager;
 import org.apache.ranger.entity.XXAuditMap;
 import org.apache.ranger.entity.XXPortalUser;
+import org.apache.ranger.entity.XXResource;
 import org.apache.ranger.entity.XXTrxLog;
 import org.apache.ranger.entity.XXUser;
 import org.apache.ranger.util.RangerEnumUtil;
 import org.apache.ranger.view.VXAuditMap;
+import org.apache.ranger.view.VXAuditMapList;
+import org.apache.ranger.view.VXResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Service;
@@ -48,6 +55,12 @@ public class XAuditMapService extends
 
        @Autowired
        RangerDaoManager rangerDaoManager;
+       
+       @Autowired
+       RangerBizUtil rangerBizUtil;
+       
+       @Autowired
+       XResourceService xResourceService;
 
        static HashMap<String, VTrxLogAttr> trxLogAttrs = new HashMap<String, 
VTrxLogAttr>();
        static {
@@ -186,4 +199,51 @@ public class XAuditMapService extends
                }
                return vObj;
        }
+
+       @Override
+       public VXAuditMapList searchXAuditMaps(SearchCriteria searchCriteria) {
+
+               VXAuditMapList returnList;
+               UserSessionBase currentUserSession = 
ContextUtil.getCurrentUserSession();
+               // If user is system admin
+               if (currentUserSession.isUserAdmin()) {
+                       returnList = super.searchXAuditMaps(searchCriteria);
+               } else {
+                       returnList = new VXAuditMapList();
+                       int startIndex = searchCriteria.getStartIndex();
+                       int pageSize = searchCriteria.getMaxRows();
+                       searchCriteria.setStartIndex(0);
+                       searchCriteria.setMaxRows(Integer.MAX_VALUE);
+                       List<XXAuditMap> resultList = (List<XXAuditMap>) 
searchResources(searchCriteria, searchFields, sortFields, returnList);
+
+                       List<XXAuditMap> adminAuditResourceList = new 
ArrayList<XXAuditMap>();
+                       for (XXAuditMap xXAuditMap : resultList) {
+                               XXResource xRes = 
daoManager.getXXResource().getById(xXAuditMap.getResourceId());
+                               VXResponse vXResponse = 
rangerBizUtil.hasPermission(xResourceService.populateViewBean(xRes), 
AppConstants.XA_PERM_TYPE_ADMIN);
+                               if (vXResponse.getStatusCode() == 
VXResponse.STATUS_SUCCESS) {
+                                       adminAuditResourceList.add(xXAuditMap);
+                               }
+                       }
+
+                       if (adminAuditResourceList.size() > 0) {
+                               populatePageList(adminAuditResourceList, 
startIndex, pageSize, returnList);
+                       }
+               }
+
+               return returnList;
+       }
+
+       private void populatePageList(List<XXAuditMap> auditMapList, int 
startIndex, int pageSize, VXAuditMapList vxAuditMapList) {
+               List<VXAuditMap> onePageList = new ArrayList<VXAuditMap>();
+               for (int i = startIndex; i < pageSize + startIndex && i < 
auditMapList.size(); i++) {
+                       VXAuditMap vXAuditMap = 
populateViewBean(auditMapList.get(i));
+                       onePageList.add(vXAuditMap);
+               }
+               vxAuditMapList.setVXAuditMaps(onePageList);
+               vxAuditMapList.setStartIndex(startIndex);
+               vxAuditMapList.setPageSize(pageSize);
+               vxAuditMapList.setResultSize(onePageList.size());
+               vxAuditMapList.setTotalCount(auditMapList.size());
+       }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4d04a09c/security-admin/src/main/java/org/apache/ranger/service/XPermMapService.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/XPermMapService.java 
b/security-admin/src/main/java/org/apache/ranger/service/XPermMapService.java
index 7e5eb10..6d96107 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/service/XPermMapService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/service/XPermMapService.java
@@ -24,20 +24,25 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
+import org.apache.ranger.biz.RangerBizUtil;
 import org.apache.ranger.common.AppConstants;
+import org.apache.ranger.common.ContextUtil;
 import org.apache.ranger.common.SearchCriteria;
 import org.apache.ranger.common.SearchField;
+import org.apache.ranger.common.UserSessionBase;
 import org.apache.ranger.common.view.VTrxLogAttr;
 import org.apache.ranger.db.RangerDaoManager;
 import org.apache.ranger.entity.XXGroup;
 import org.apache.ranger.entity.XXPermMap;
 import org.apache.ranger.entity.XXPortalUser;
+import org.apache.ranger.entity.XXResource;
 import org.apache.ranger.entity.XXTrxLog;
 import org.apache.ranger.entity.XXUser;
 import org.apache.ranger.util.RangerEnumUtil;
 import org.apache.ranger.view.VXGroup;
 import org.apache.ranger.view.VXPermMap;
 import org.apache.ranger.view.VXPermMapList;
+import org.apache.ranger.view.VXResponse;
 import org.apache.ranger.view.VXUser;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Scope;
@@ -59,6 +64,12 @@ public class XPermMapService extends 
XPermMapServiceBase<XXPermMap, VXPermMap> {
        @Autowired
        RangerDaoManager rangerDaoManager;
 
+       @Autowired
+       RangerBizUtil rangerBizUtil;
+
+       @Autowired
+       XResourceService xResourceService;
+
        static HashMap<String, VTrxLogAttr> trxLogAttrs = new HashMap<String, 
VTrxLogAttr>();
        static {
 //             trxLogAttrs.put("groupId", new VTrxLogAttr("groupId", "Group 
Permission", false));
@@ -112,19 +123,48 @@ public class XPermMapService extends 
XPermMapServiceBase<XXPermMap, VXPermMap> {
        
        @Override
        public VXPermMapList searchXPermMaps(SearchCriteria searchCriteria) {
-               VXPermMapList vXPermMapList = 
super.searchXPermMaps(searchCriteria);
-               if(vXPermMapList != null && vXPermMapList.getResultSize() != 0){
-                       for(VXPermMap vXPermMap : 
vXPermMapList.getVXPermMaps()){
-                               if(vXPermMap.getPermFor() == 
AppConstants.XA_PERM_FOR_GROUP) {
-                                       String groupName = 
getGroupName(vXPermMap.getGroupId());
-                                       vXPermMap.setGroupName(groupName);
-                               } else if(vXPermMap.getPermFor() == 
AppConstants.XA_PERM_FOR_USER) {
-                                       String username = 
getUserName(vXPermMap.getUserId());
-                                       vXPermMap.setUserName(username);
+
+
+               VXPermMapList returnList;
+               UserSessionBase currentUserSession = 
ContextUtil.getCurrentUserSession();
+               // If user is system admin
+               if (currentUserSession.isUserAdmin()) {
+                       returnList = super.searchXPermMaps(searchCriteria);
+               } else {
+                       returnList = new VXPermMapList();
+                       int startIndex = searchCriteria.getStartIndex();
+                       int pageSize = searchCriteria.getMaxRows();
+                       searchCriteria.setStartIndex(0);
+                       searchCriteria.setMaxRows(Integer.MAX_VALUE);
+                       List<XXPermMap> resultList = (List<XXPermMap>) 
searchResources(searchCriteria, searchFields, sortFields, returnList);
+
+                       List<XXPermMap> adminPermResourceList = new 
ArrayList<XXPermMap>();
+                       for (XXPermMap xXPermMap : resultList) {
+                               XXResource xRes = 
daoManager.getXXResource().getById(xXPermMap.getResourceId());
+                               VXResponse vXResponse = 
rangerBizUtil.hasPermission(xResourceService.populateViewBean(xRes), 
AppConstants.XA_PERM_TYPE_ADMIN);
+                               if (vXResponse.getStatusCode() == 
VXResponse.STATUS_SUCCESS) {
+                                       adminPermResourceList.add(xXPermMap);
                                }
                        }
+
+                       if (adminPermResourceList.size() > 0) {
+                               populatePageList(adminPermResourceList, 
startIndex, pageSize, returnList);
+                       }
+               }
+               return returnList;
+       }
+       
+       private void populatePageList(List<XXPermMap> permMapList, int 
startIndex, int pageSize, VXPermMapList vxPermMapList) {
+               List<VXPermMap> onePageList = new ArrayList<VXPermMap>();
+               for (int i = startIndex; i < pageSize + startIndex && i < 
permMapList.size(); i++) {
+                       VXPermMap vXPermMap = 
populateViewBean(permMapList.get(i));
+                       onePageList.add(vXPermMap);
                }
-               return vXPermMapList;
+               vxPermMapList.setVXPermMaps(onePageList);
+               vxPermMapList.setStartIndex(startIndex);
+               vxPermMapList.setPageSize(pageSize);
+               vxPermMapList.setResultSize(onePageList.size());
+               vxPermMapList.setTotalCount(permMapList.size());
        }
        
        public String getGroupName(Long groupId){

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4d04a09c/security-admin/src/main/java/org/apache/ranger/service/XResourceService.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/service/XResourceService.java 
b/security-admin/src/main/java/org/apache/ranger/service/XResourceService.java
index fa6679a..28e9282 100644
--- 
a/security-admin/src/main/java/org/apache/ranger/service/XResourceService.java
+++ 
b/security-admin/src/main/java/org/apache/ranger/service/XResourceService.java
@@ -43,6 +43,7 @@ import org.apache.ranger.common.UserSessionBase;
 import org.apache.ranger.common.view.VTrxLogAttr;
 import org.apache.ranger.db.RangerDaoManager;
 import org.apache.ranger.entity.XXAsset;
+import org.apache.ranger.entity.XXAuditMap;
 import org.apache.ranger.entity.XXGroup;
 import org.apache.ranger.entity.XXPermMap;
 import org.apache.ranger.entity.XXPortalUser;
@@ -345,25 +346,25 @@ public class XResourceService extends
        }
 
        private void populateAuditList(VXResource vXResource) {
-               SearchCriteria searchCriteria = new SearchCriteria();
-               searchCriteria.addParam("resourceId", vXResource.getId());
-               VXAuditMapList vXAuditMapList = xAuditMapService
-                               .searchXAuditMaps(searchCriteria);
-               if (vXAuditMapList != null && vXAuditMapList.getResultSize() != 
0) {
-                       List<VXAuditMap> auditMapList = 
vXAuditMapList.getList();
-                       vXResource.setAuditList(auditMapList);
+
+               List<XXAuditMap> xAuditMapList = 
daoManager.getXXAuditMap().findByResourceId(vXResource.getId());
+               List<VXAuditMap> vXAuditMapList = new ArrayList<VXAuditMap>();
+
+               for (XXAuditMap xAuditMap : xAuditMapList) {
+                       
vXAuditMapList.add(xAuditMapService.populateViewBean(xAuditMap));
                }
+               vXResource.setAuditList(vXAuditMapList);
        }
 
        private void populatePermList(VXResource vXResource) {
-               SearchCriteria searchCriteria = new SearchCriteria();
-               searchCriteria.addParam("resourceId", vXResource.getId());
-               VXPermMapList vXPermMapList = xPermMapService
-                               .searchXPermMaps(searchCriteria);
-               if (vXPermMapList != null && vXPermMapList.getResultSize() != 
0) {
-                       List<VXPermMap> permMapList = vXPermMapList.getList();
-                       vXResource.setPermMapList(permMapList);
-               }               
+
+               List<XXPermMap> xPermMapList = 
daoManager.getXXPermMap().findByResourceId(vXResource.getId());
+               List<VXPermMap> vXPermMapList = new ArrayList<VXPermMap>();
+
+               for (XXPermMap xPermMap : xPermMapList) {
+                       
vXPermMapList.add(xPermMapService.populateViewBean(xPermMap));
+               }
+               vXResource.setPermMapList(vXPermMapList);
        }
 
        @Override

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4d04a09c/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
----------------------------------------------------------------------
diff --git a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml 
b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
index 7761756..ac4c753 100644
--- a/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
+++ b/security-admin/src/main/resources/META-INF/jpa_named_queries.xml
@@ -172,6 +172,11 @@
                </query>
        </named-query>
 
+       <named-query name="XXGroupUser.findGroupIdListByUserId">
+               <query>SELECT obj.parentGroupId FROM XXGroupUser obj WHERE 
obj.userId=:xUserId             
+               </query>
+       </named-query>
+
        <named-query name="XXTrxLog.findByTrxId">
                <query>SELECT obj FROM XXTrxLog obj WHERE obj.transactionId = 
:transactionId
                </query>
@@ -522,6 +527,20 @@
                </query>
        </named-query>
 
+       <named-query name="XXModuleDef.findAllAccessibleModulesByUserId">
+               <query>SELECT obj.module FROM XXModuleDef obj 
+               WHERE obj.id in (SELECT userPerm.moduleId FROM XXUserPermission 
userPerm WHERE userPerm.userId=:portalUserId and userPerm.isAllowed=:isAllowed)
+               OR obj.id in (SELECT grpPerm.moduleId FROM XXGroupPermission 
grpPerm WHERE 
+                       grpPerm.groupId IN (SELECT grpUser.parentGroupId FROM 
XXGroupUser grpUser WHERE grpUser.userId=:xUserId) and 
grpPerm.isAllowed=:isAllowed)
+               </query>
+       </named-query>
+
+       <named-query name="XXModuleDef.findAccessibleModulesByGroupId">
+               <query>select obj.module from XXModuleDef obj, 
XXGroupPermission grpPerm where 
+               grpPerm.groupId IN :grpIdList and grpPerm.moduleId = obj.id and 
grpPerm.isAllowed = :isAllowed
+               </query>
+       </named-query>
+
        <named-query name="XXGroupPermission.findByVXPoratUserId">
                <query>SELECT distinct   gmp FROM  XXGroupUser xgu,XXUser 
xu,XXGroupPermission gmp, XXPortalUser xpu
                           WHERE xu.name=xpu.loginId  and xu.id=xgu.userId and 
xgu.parentGroupId=gmp.groupId  and 

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4d04a09c/security-admin/src/main/resources/conf.dist/security-applicationContext.xml
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/resources/conf.dist/security-applicationContext.xml 
b/security-admin/src/main/resources/conf.dist/security-applicationContext.xml
index a648809..480e6cd 100644
--- 
a/security-admin/src/main/resources/conf.dist/security-applicationContext.xml
+++ 
b/security-admin/src/main/resources/conf.dist/security-applicationContext.xml
@@ -155,6 +155,8 @@ 
http://www.springframework.org/schema/security/spring-security-oauth2-1.0.xsd";>
                <!--   security:authentication-provider 
ref="rememberMeAuthenticationProvider"/ -->
        </security:authentication-manager>
 
+       <security:global-method-security pre-post-annotations="enabled" />
+
        <!-- UNIX_BEAN_SETTINGS_START -->
        <!-- UNIX_BEAN_SETTINGS_END -->
        <!-- AD_BEAN_SETTINGS_START -->

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4d04a09c/security-admin/src/test/java/org/apache/ranger/audit/TestAuditQueue.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/test/java/org/apache/ranger/audit/TestAuditQueue.java 
b/security-admin/src/test/java/org/apache/ranger/audit/TestAuditQueue.java
index 021c49a..f09da53 100644
--- a/security-admin/src/test/java/org/apache/ranger/audit/TestAuditQueue.java
+++ b/security-admin/src/test/java/org/apache/ranger/audit/TestAuditQueue.java
@@ -44,6 +44,7 @@ import org.apache.ranger.audit.queue.AuditQueue;
 import org.apache.ranger.audit.queue.AuditSummaryQueue;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
+import org.junit.Ignore;
 import org.junit.Test;
 
 public class TestAuditQueue {
@@ -173,7 +174,7 @@ public class TestAuditQueue {
                assertEquals(messageToSend, testConsumer.getSumTotal());
                assertEquals(countToCheck, testConsumer.getCountTotal());
        }
-
+       @Ignore("Junit breakage: RANGER-630") // TODO
        @Test
        public void testAuditSummaryByInfra() {
                logger.debug("testAuditSummaryByInfra()...");

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4d04a09c/security-admin/src/test/java/org/apache/ranger/biz/TestUserMgr.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/test/java/org/apache/ranger/biz/TestUserMgr.java 
b/security-admin/src/test/java/org/apache/ranger/biz/TestUserMgr.java
index e18e51c..479dfde 100644
--- a/security-admin/src/test/java/org/apache/ranger/biz/TestUserMgr.java
+++ b/security-admin/src/test/java/org/apache/ranger/biz/TestUserMgr.java
@@ -167,9 +167,9 @@ public class TestUserMgr {
 
                XXPortalUser dbxxPortalUser = userMgr.createUser(userProfile, 1,
                                userRoleList);
+               Assert.assertNotNull(dbxxPortalUser);
                userId = dbxxPortalUser.getId();
 
-               Assert.assertNotNull(dbxxPortalUser);
                Assert.assertEquals(userId, dbxxPortalUser.getId());
                Assert.assertEquals(userProfile.getFirstName(),
                                dbxxPortalUser.getFirstName());
@@ -243,7 +243,7 @@ public class TestUserMgr {
 
        @Test
        public void test15ChangePassword() {
-
+               setup();
                XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class);
                VXPortalUser userProfile = userProfile();
 
@@ -282,7 +282,7 @@ public class TestUserMgr {
 
        @Test
        public void test16GetEmailAddress() {
-
+               setup();
                VXPortalUser userProfile = userProfile();
 
                XXPortalUser user = new XXPortalUser();
@@ -326,7 +326,7 @@ public class TestUserMgr {
 
        @Test
        public void test17ValidateEmailAddress() {
-
+               setup();
                VXPortalUser userProfile = userProfile();
 
                XXPortalUser user = new XXPortalUser();
@@ -447,6 +447,7 @@ public class TestUserMgr {
 
        @Test
        public void test22CreateDefaultAccountUser() {
+               setup();
                XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class);
                XXPortalUserRoleDao roleDao = 
Mockito.mock(XXPortalUserRoleDao.class);
                VXPortalUser userProfile = userProfile();
@@ -505,6 +506,7 @@ public class TestUserMgr {
 
        @Test
        public void test24UpdateUserWithPass() {
+               setup();
                XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class);
 
                VXPortalUser userProfile = userProfile();
@@ -615,6 +617,7 @@ public class TestUserMgr {
 
        @Test
        public void test28DeleteUserRole() {
+               setup();
                XXPortalUserRoleDao roleDao = 
Mockito.mock(XXPortalUserRoleDao.class);
 
                XXPortalUserRole XXPortalUserRole = new XXPortalUserRole();
@@ -634,6 +637,7 @@ public class TestUserMgr {
 
        @Test
        public void test29DeactivateUser() {
+               setup();
                XXPortalUserDao userDao = Mockito.mock(XXPortalUserDao.class);
                XXPortalUserRoleDao roleDao = 
Mockito.mock(XXPortalUserRoleDao.class);
                XXUserPermissionDao xUserPermissionDao = Mockito
@@ -832,7 +836,7 @@ public class TestUserMgr {
 
                Mockito.verify(daoManager).getXXPortalUser();
        }
-
+       @Ignore("Junit breakage: RANGER-526") // TODO
        @Test
        public void test33setUserRoles() {
                XXPortalUserRoleDao xPortalUserRoleDao = 
Mockito.mock(XXPortalUserRoleDao.class);

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4d04a09c/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java 
b/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java
index bb74bb8..ab149ad 100644
--- a/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java
+++ b/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java
@@ -480,6 +480,7 @@ public class TestXUserMgr {
 
        @Test
        public void test21createXGroupUser() {
+               setup();
                VXGroupUser vxGroupUser = new VXGroupUser();
                vxGroupUser.setId(userId);
                vxGroupUser.setName("group user test");
@@ -557,6 +558,7 @@ public class TestXUserMgr {
 
        @Test
        public void test25CreateXUserWithOutLogin() {
+               setup();
                VXUser vxUser = vxUser();
 
                
Mockito.when(xUserService.createXUserWithOutLogin(vxUser)).thenReturn(
@@ -576,7 +578,7 @@ public class TestXUserMgr {
 
        @Test
        public void test26CreateXGroupWithoutLogin() {
-
+               setup();
                VXGroup vXGroup = new VXGroup();
                vXGroup.setId(userId);
                vXGroup.setDescription("group test");
@@ -597,6 +599,7 @@ public class TestXUserMgr {
 
        @Test
        public void test27DeleteXGroup() {
+               setup();
                XXGroupDao xxGroupDao = Mockito.mock(XXGroupDao.class);
 
                VXGroupUserList vxGroupUserList = new VXGroupUserList();
@@ -616,6 +619,7 @@ public class TestXUserMgr {
 
        @Test
        public void test28DeleteXUser() {
+               setup();
                XXGroupUserDao xxGroupDao = Mockito.mock(XXGroupUserDao.class);
                XXUserDao xxUserDao = Mockito.mock(XXUserDao.class);
                VXGroupUserList vxGroupUserList = new VXGroupUserList();
@@ -637,6 +641,7 @@ public class TestXUserMgr {
 
        @Test
        public void test29deleteXGroupAndXUser() {
+               setup();
                VXUser vxUser = vxUser();
                VXGroup vxGroup = new VXGroup();
                VXGroupUserList vxGroupUserList = new VXGroupUserList();
@@ -661,7 +666,7 @@ public class TestXUserMgr {
 
        @Test
        public void test30CreateVXUserGroupInfo() {
-
+               setup();
                VXUserGroupInfo vXUserGroupInfo = new VXUserGroupInfo();
                VXUser vXUser = new VXUser();
                vXUser.setName("user1");

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/4d04a09c/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java 
b/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
index e7324a1..f728c58 100644
--- a/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
+++ b/security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java
@@ -927,7 +927,7 @@ public class TestServiceREST {
                                
svcStore.getPaginatedServicePolicies(rangerPolicy.getName(),
                                                filter)).thenReturn(ret);
 
-               RangerPolicyList dbRangerPolicy = 
serviceREST.getServicePolicies(
+               RangerPolicyList dbRangerPolicy = 
serviceREST.getServicePoliciesByName(
                                rangerPolicy.getName(), request);
                Assert.assertNotNull(dbRangerPolicy);
        }

Reply via email to