> On Jan. 20, 2023, 5:56 p.m., Madhan Neethiraj wrote:
> > security-admin/src/main/java/org/apache/ranger/rest/PublicAPIsv2.java
> > Line 471 (original), 471 (patched)
> > <https://reviews.apache.org/r/74251/diff/3/?file=2273892#file2273892line471>
> >
> >     Multiple policies within a service can have the same name - each in 
> > different zone. Please review and update to handle this case.

When we pass the serviceName and policyName and zoneName is null then
we will use the ZoneId is RangerSecurityZone.RANGER_UNZONED_SECURITY_ZONE_ID
and getting the single result from DB

 if (StringUtils.isNotBlank(serviceName) && StringUtils.isNotBlank(policyName)) 
{
      XXPolicy dbPolicy = daoManager.getXXPolicy().findPolicy(policyName, 
serviceName, null);
      if (dbPolicy != null) {
        ret = policyService.getPopulatedViewObject(dbPolicy);
      }
        }


  public XXPolicy findPolicy(String policyName, String serviceName, String 
zoneName) {
    if (policyName == null || serviceName == null) {
      return null;
    }

    try {
      if (zoneName == null) {
        return 
getEntityManager().createNamedQuery("XXPolicy.findPolicyByPolicyNameAndServiceName",
 tClass)
            .setParameter("policyName", policyName).setParameter("serviceName", 
serviceName)
            .setParameter("zoneId", 
RangerSecurityZone.RANGER_UNZONED_SECURITY_ZONE_ID)
            .getSingleResult();
      } else {
        return getEntityManager()
            
.createNamedQuery("XXPolicy.findPolicyByPolicyNameAndServiceNameAndZoneName", 
tClass)
            .setParameter("policyName", policyName).setParameter("serviceName", 
serviceName)
            .setParameter("zoneName", zoneName).getSingleResult();
      }
    } catch (NoResultException e) {
      return null;
    }

  }


- Ramachandran


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/74251/#review225110
-----------------------------------------------------------


On Jan. 20, 2023, 3:22 p.m., Ramachandran Krishnan wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/74251/
> -----------------------------------------------------------
> 
> (Updated Jan. 20, 2023, 3:22 p.m.)
> 
> 
> Review request for ranger, Don Bosco Durai, Kirby Zhou, Abhay Kulkarni, 
> Madhan Neethiraj, Mehul Parikh, Nikhil P, Pradeep Agrawal, Ramesh Mani, 
> Selvamohan Neethiraj, Sailaja Polavarapu, Subhrat Chaudhary, and Velmurugan 
> Periasamy.
> 
> 
> Bugs: RANGER-4012
>     https://issues.apache.org/jira/browse/RANGER-4012
> 
> 
> Repository: ranger
> 
> 
> Description
> -------
> 
> getPolicyByName searches policy by serviceName, policyName simply by traverse 
> all policies in RangerServicePoliciesCache. 
> 
> However, It takes more time to search for policies from the cache when there 
> are millions of policies
> 
> As well as The above REST API sometimes gives stable data due to the deleted 
> element is present in the Cache 
> 
> We need to call the DB to fetch policy instead of calling 
> RangerServicePoliciesCache
> 
> In PublicAPIsv2 we add the API's which are available in ServiceREST as an API 
> and the getPolicyByName is not available as an API in ServiceREST.
> 
> getPolicyByName ---> (/api/service/{servicename}/policy/{policyname}) in 
> PublicAPIsv2
> 
> I guess we should add the below  API in ServiceREST also for the same.
> 
> getPolicyByName ---> (/policies/service/{serviceName}/policy/{policyName}) in 
> ServiceREST
> 
> 
> Diffs
> -----
> 
>   security-admin/src/main/java/org/apache/ranger/rest/PublicAPIsv2.java 
> d98910bee 
>   security-admin/src/main/java/org/apache/ranger/rest/ServiceREST.java 
> ec02f47f7 
>   security-admin/src/test/java/org/apache/ranger/rest/TestPublicAPIsv2.java 
> 7409883ab 
>   security-admin/src/test/java/org/apache/ranger/rest/TestServiceREST.java 
> 8fdcc43c8 
> 
> 
> Diff: https://reviews.apache.org/r/74251/diff/3/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Ramachandran Krishnan
> 
>

Reply via email to