----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/74681/#review225943 -----------------------------------------------------------
Ship it! Ship It! - Madhan Neethiraj On Nov. 7, 2023, 10:52 a.m., Prashant Satam wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/74681/ > ----------------------------------------------------------- > > (Updated Nov. 7, 2023, 10:52 a.m.) > > > Review request for ranger, Anand Nadar, Ankita Sinha, Madhan Neethiraj, > Monika Kachhadiya, and Subhrat Chaudhary. > > > Bugs: RANGER-4480 > https://issues.apache.org/jira/browse/RANGER-4480 > > > Repository: ranger > > > Description > ------- > > In case of GDS existing pagination behaviour will not work as we have filters > after the DB results.Hence will not get appropriate paginated result > > Example > > 1)GET shared resource API we have a query param 'resourceContains' using this > we can get shared-resource which has resource value matching with the query > param > 2)If a user has 250 resources in DB trying to fetch single resource object > using query Param "resourceContains" which ranks 250th in position in DB he > will get empty response but the actual object is present in the DB, reason is > ranger has default pagination behaviour (i.e to fetch paginated objects in > batch size of 200) so DB result will have first 200 resource objects and then > filter of queryParam 'resourceContains' will be applied hence the output will > be empty as the expected object was never fetched from the DB beacuse of > pagination behavior > 3)So we need to disable this current pagination behaviour for GDS APIs > > So in case of GDS APIs we need to disable pagination > > > Diffs > ----- > > agents-common/src/main/java/org/apache/ranger/plugin/util/SearchFilter.java > 93bd7f73d > security-admin/src/main/java/org/apache/ranger/biz/GdsDBStore.java > ac9f12f3e > security-admin/src/main/java/org/apache/ranger/common/RangerSearchUtil.java > f8b7837c5 > > > Diff: https://reviews.apache.org/r/74681/diff/2/ > > > Testing > ------- > > 1)Create shared resources more than default pageSize i.e 200 > 2)use GET-API --------> (/service/gds/resource) to fetch resource which has > resourceContains = resource_1 this shared resource should be beyond the > pageSize 200 > 3)In response you will receive the shared resource having resource as > resource_1 which was beyond 200th position in DB > Request -----------------> (/service/gds/resource?resourceContains=resource_1) > Response-----------------> > { > "startIndex": 0, > "pageSize": 200, > "totalCount": 1, > "resultSize": 1, > "sortType": "sharedResourceId", > "sortBy": "asc", > "queryTimeMS": 1697626402403, > "list": [ > { > "id": 388, > "guid": "1d9e2fcf-8cc8-45b0-ab87-3f596c04350a", > "isEnabled": true, > "createdBy": "Admin", > "updatedBy": "Admin", > "createTime": 1697192628000, > "updateTime": 1697192628000, > "version": 1, > "description": "This is RangerResource", > "options": { > "property1": "This is Options 1", > "property2": "This is Options 2" > }, > "additionalInfo": { > "property1": "This is AdditionalInfo 1", > "property2": "This is AdditionalInfo 2" > }, > "name": "RangerResource_399", > "dataShareId": 1, > "resource": { > "RAngerResourceName": { > "values": [ > "res_399", > "res_399" > ], > "isExcludes": true, > "isRecursive": true > } > }, > "conditionExpr": "conditionExpr_1", > "accessTypes": [ > "Resource_Access_type_1", > "Resource_Access_type_2" > ], > "profiles": [ > "resource_profile_1", > "resource_profile_2" > ] > } > ], > "listSize": 1 > } > > > Thanks, > > Prashant Satam > >
