You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ni...@apache.org on 2019/05/27 06:44:00 UTC
[ranger] branch master updated: RANGER-2445 : Import of Tagservice
for zone
This is an automated email from the ASF dual-hosted git repository.
nikhil pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/master by this push:
new 184c9b7 RANGER-2445 : Import of Tagservice for zone
184c9b7 is described below
commit 184c9b74f9999daeed51f5240ce1d47d3829283b
Author: Nikhil P <ni...@apache.org>
AuthorDate: Mon May 27 12:12:02 2019 +0530
RANGER-2445 : Import of Tagservice for zone
---
.../ranger/db/XXSecurityZoneRefTagServiceDao.java | 13 +++++++++++++
.../java/org/apache/ranger/rest/ServiceREST.java | 5 ++++-
.../main/resources/META-INF/jpa_named_queries.xml | 6 ++++++
.../main/webapp/scripts/views/UploadServicePolicy.js | 20 ++++++++++++++++++++
.../java/org/apache/ranger/rest/TestServiceREST.java | 16 ++++++++++++++--
5 files changed, 57 insertions(+), 3 deletions(-)
diff --git a/security-admin/src/main/java/org/apache/ranger/db/XXSecurityZoneRefTagServiceDao.java b/security-admin/src/main/java/org/apache/ranger/db/XXSecurityZoneRefTagServiceDao.java
index 8006272..c30dba1 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/XXSecurityZoneRefTagServiceDao.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/XXSecurityZoneRefTagServiceDao.java
@@ -18,6 +18,7 @@
*/
package org.apache.ranger.db;
+import java.util.Collections;
import java.util.List;
import javax.persistence.NoResultException;
@@ -45,4 +46,16 @@ public class XXSecurityZoneRefTagServiceDao extends BaseDao<XXSecurityZoneRefTag
return null;
}
}
+
+ public List<XXSecurityZoneRefTagService> findByTagServiceNameAndZoneId(String tagServiceName, Long zoneId) {
+ if (tagServiceName == null) {
+ return Collections.emptyList();
+ }
+ try {
+ return getEntityManager().createNamedQuery("XXSecurityZoneRefTagService.findByTagServiceNameAndZoneId", tClass)
+ .setParameter("tagServiceName", tagServiceName).setParameter("zoneId", zoneId).getResultList();
+ } catch (NoResultException e) {
+ return Collections.emptyList();
+ }
+ }
}
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
index 0e7cd8f..b5caea8 100644
--- a/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java
@@ -83,6 +83,7 @@ import org.apache.ranger.db.XXGroupUserDao;
import org.apache.ranger.entity.XXPolicyExportAudit;
import org.apache.ranger.entity.XXSecurityZone;
import org.apache.ranger.entity.XXSecurityZoneRefService;
+import org.apache.ranger.entity.XXSecurityZoneRefTagService;
import org.apache.ranger.entity.XXService;
import org.apache.ranger.entity.XXServiceDef;
import org.apache.ranger.entity.XXTrxLog;
@@ -2403,8 +2404,10 @@ public class ServiceREST {
}
List<XXSecurityZoneRefService> serviceZoneMapping = daoManager.getXXSecurityZoneRefService()
.findByServiceNameAndZoneId(serviceNameToCheck, xdestZone.getId());
+ List<XXSecurityZoneRefTagService> tagServiceZoneMapping = daoManager.getXXSecurityZoneRefTagService()
+ .findByTagServiceNameAndZoneId(serviceNameToCheck, xdestZone.getId());
- if (!CollectionUtils.isEmpty(serviceZoneMapping)) {
+ if (!CollectionUtils.isEmpty(serviceZoneMapping) || !CollectionUtils.isEmpty(tagServiceZoneMapping)) {
isZoneServiceExistAtDestination = true;
}
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 e4647b1..2fa12f9 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
@@ -1380,6 +1380,12 @@
</query>
</named-query>
+ <named-query name="XXSecurityZoneRefTagService.findByTagServiceNameAndZoneId">
+ <query>
+ select obj from XXSecurityZoneRefTagService obj where obj.tagServiceName = :tagServiceName and obj.zoneId = :zoneId
+ </query>
+ </named-query>
+
<named-query name="XXSecurityZoneRefUser.findByZoneId">
<query>
select obj from XXSecurityZoneRefUser obj where obj.zoneId = :zoneId
diff --git a/security-admin/src/main/webapp/scripts/views/UploadServicePolicy.js b/security-admin/src/main/webapp/scripts/views/UploadServicePolicy.js
index 94362bf..7371c2b 100644
--- a/security-admin/src/main/webapp/scripts/views/UploadServicePolicy.js
+++ b/security-admin/src/main/webapp/scripts/views/UploadServicePolicy.js
@@ -229,6 +229,16 @@ define(function(require){
selectedZoneServices.push(model);
}
})
+ if(selectedZone.has('tagServices') && !_.isEmpty(selectedZone.get('tagServices'))){
+ _.filter(selectedZone.get('tagServices'), function(tag){
+ var zoneServiceModelTags = that.serviceNames.find(function(serviceModel){
+ return serviceModel.get('name') === tag
+ })
+ if(zoneServiceModelTags){
+ selectedZoneServices.push(zoneServiceModelTags);
+ }
+ })
+ }
}else{
selectedZoneServices = this.serviceNames;
}
@@ -370,6 +380,16 @@ define(function(require){
zoneServiceList.push(zoneServiceModel);
}
});
+ if(selectedZone.has('tagServices') && !_.isEmpty(selectedZone.get('tagServices'))){
+ _.filter(selectedZone.get('tagServices'), function(tag){
+ var zoneServiceModelTags = that.serviceNames.find(function(serviceModel){
+ return serviceModel.get('name') === tag
+ })
+ if(zoneServiceModelTags){
+ zoneServiceList.push(zoneServiceModelTags);
+ }
+ })
+ }
that.serviceNames = zoneServiceList;
that.setServiceSourceData();
}else{
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 19f162b..321d1c5 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
@@ -55,12 +55,14 @@ import org.apache.ranger.common.UserSessionBase;
import org.apache.ranger.db.RangerDaoManager;
import org.apache.ranger.db.XXSecurityZoneDao;
import org.apache.ranger.db.XXSecurityZoneRefServiceDao;
+import org.apache.ranger.db.XXSecurityZoneRefTagServiceDao;
import org.apache.ranger.db.XXGroupUserDao;
import org.apache.ranger.db.XXServiceDao;
import org.apache.ranger.db.XXServiceDefDao;
import org.apache.ranger.entity.XXPortalUser;
import org.apache.ranger.entity.XXSecurityZone;
import org.apache.ranger.entity.XXSecurityZoneRefService;
+import org.apache.ranger.entity.XXSecurityZoneRefTagService;
import org.apache.ranger.entity.XXService;
import org.apache.ranger.entity.XXServiceDef;
import org.apache.ranger.plugin.model.RangerPluginInfo;
@@ -1670,11 +1672,15 @@ public class TestServiceREST {
XXServiceDef xServiceDef = serviceDef();
XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class);
XXSecurityZoneRefServiceDao xSecZoneRefServiceDao = Mockito.mock(XXSecurityZoneRefServiceDao.class);
+ XXSecurityZoneRefTagServiceDao xSecZoneRefTagServiceDao = Mockito.mock(XXSecurityZoneRefTagServiceDao.class);
XXSecurityZoneRefService xSecZoneRefService = Mockito.mock(XXSecurityZoneRefService.class);
+ XXSecurityZoneRefTagService xSecZoneRefTagService = Mockito.mock(XXSecurityZoneRefTagService.class);
XXSecurityZoneDao xSecZoneDao = Mockito.mock(XXSecurityZoneDao.class);
XXSecurityZone xSecZone = Mockito.mock(XXSecurityZone.class);
List<XXSecurityZoneRefService> zoneServiceList = new ArrayList<>();
+ List<XXSecurityZoneRefTagService> zoneTagServiceList = new ArrayList<>();
zoneServiceList.add(xSecZoneRefService);
+ zoneTagServiceList.add(xSecZoneRefTagService);
Map<String, String> zoneMappingMap = new LinkedHashMap<String, String>();
zoneMappingMap.put("ZoneSource", "ZoneDestination");
@@ -1710,7 +1716,8 @@ public class TestServiceREST {
Mockito.when(xSecZoneDao.findByZoneName(Mockito.anyString())).thenReturn(xSecZone);
Mockito.when(daoManager.getXXSecurityZoneRefService()).thenReturn(xSecZoneRefServiceDao);
Mockito.when(xSecZoneRefServiceDao.findByServiceNameAndZoneId(Mockito.anyString(),Mockito.anyLong())).thenReturn(zoneServiceList);
-
+ Mockito.when(daoManager.getXXSecurityZoneRefTagService()).thenReturn(xSecZoneRefTagServiceDao);
+ Mockito.when(xSecZoneRefTagServiceDao.findByTagServiceNameAndZoneId(Mockito.anyString(),Mockito.anyLong())).thenReturn(zoneTagServiceList);
serviceREST.importPoliciesFromFile(request, null, zoneInputStream, uploadedInputStream, fileDetail, isOverride , "unzoneToZone");
Mockito.verify(svcStore).createPolicy(rangerPolicy);
@@ -1729,11 +1736,15 @@ public class TestServiceREST {
XXServiceDef xServiceDef = serviceDef();
XXServiceDefDao xServiceDefDao = Mockito.mock(XXServiceDefDao.class);
XXSecurityZoneRefServiceDao xSecZoneRefServiceDao = Mockito.mock(XXSecurityZoneRefServiceDao.class);
+ XXSecurityZoneRefTagServiceDao xSecZoneRefTagServiceDao = Mockito.mock(XXSecurityZoneRefTagServiceDao.class);
XXSecurityZoneRefService xSecZoneRefService = Mockito.mock(XXSecurityZoneRefService.class);
+ XXSecurityZoneRefTagService xSecZoneRefTagService = Mockito.mock(XXSecurityZoneRefTagService.class);
XXSecurityZoneDao xSecZoneDao = Mockito.mock(XXSecurityZoneDao.class);
XXSecurityZone xSecZone = Mockito.mock(XXSecurityZone.class);
List<XXSecurityZoneRefService> zoneServiceList = new ArrayList<>();
+ List<XXSecurityZoneRefTagService> zoneTagServiceList = new ArrayList<>();
zoneServiceList.add(xSecZoneRefService);
+ zoneTagServiceList.add(xSecZoneRefTagService);
Map<String, String> zoneMappingMap = new LinkedHashMap<String, String>();
zoneMappingMap.put("ZoneSource", "ZoneDestination");
@@ -1769,7 +1780,8 @@ public class TestServiceREST {
Mockito.when(xSecZoneDao.findByZoneName(Mockito.anyString())).thenReturn(xSecZone);
Mockito.when(daoManager.getXXSecurityZoneRefService()).thenReturn(xSecZoneRefServiceDao);
Mockito.when(xSecZoneRefServiceDao.findByServiceNameAndZoneId(Mockito.anyString(),Mockito.anyLong())).thenReturn(zoneServiceList);
-
+ Mockito.when(daoManager.getXXSecurityZoneRefTagService()).thenReturn(xSecZoneRefTagServiceDao);
+ Mockito.when(xSecZoneRefTagServiceDao.findByTagServiceNameAndZoneId(Mockito.anyString(),Mockito.anyLong())).thenReturn(zoneTagServiceList);
serviceREST.importPoliciesFromFile(request, null, zoneInputStream, uploadedInputStream, fileDetail, isOverride, "unzoneToUnZone");
Mockito.verify(svcStore).createPolicy(rangerPolicy);