Re: Review Request 74039: RANGER-3806: Group's users mapping entry failing whenever primary key auto-increment is not set to 1 in db

2022-06-27 Thread Sailaja Polavarapu

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


Ship it!




Ship It!

- Sailaja Polavarapu


On June 24, 2022, 10:12 a.m., Pradeep Agrawal wrote:
> 
> ---
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/74039/
> ---
> 
> (Updated June 24, 2022, 10:12 a.m.)
> 
> 
> Review request for ranger, bhavik patel, Dhaval Shah, Abhay Kulkarni, Madhan 
> Neethiraj, Mehul Parikh, Ramesh Mani, Sailaja Polavarapu, and Velmurugan 
> Periasamy.
> 
> 
> Bugs: RANGER-3806
> https://issues.apache.org/jira/browse/RANGER-3806
> 
> 
> Repository: ranger
> 
> 
> Description
> ---
> 
> **Problem Statement:** 
> Ranger db table `x_group_users` has columns "added_by_id" and "upd_by_id" 
> which should be filled with the id of logged-in user. Whenever group's-users 
> mapping is pushed from usersync module at that time these values are 
> considered from a config "ranger.xuser.createdByUserId" which is set to 1 in 
> ranger-default-admin-site.xml and code as well.
> If users have set ranger db table's primary key's auto-increment offset to 
> any number other than 1 and have not updated the same accordingly in the 
> config "ranger.xuser.createdByUserId" then request may fail due to Foreignkey 
> constraint violation.
> 
> Example Case: if primary key's auto-increment start value has been set to 2 
> in db engine then first entry in table x_portal_user will have primary-key id 
> 2. while if config  "ranger.xuser.createdByUserId" is set to 1 then due to 
> non availablity of userID 1 when it will try to insert group-user mappinng 
> entry in `x_group_users` table with value 1 for the column "added_by_id" and 
> "upd_by_id" it will cause to fail the request.
> 
> **Proposed solution:** Rather directly putting the config's 
> "ranger.xuser.createdByUserId" value in "added_by_id" and "upd_by_id" field 
> of `x_group_users` table we can check whether user id exist in x_portal_user 
> or not. if it does not exist then do not set the value received from config 
> "ranger.xuser.createdByUserId" and avoid the Foreign-key Constraint Violation 
> Exception.
> 
> 
> Diffs
> -
> 
>   
> security-admin/src/main/java/org/apache/ranger/service/XGroupUserService.java 
> 9345e8180 
> 
> 
> Diff: https://reviews.apache.org/r/74039/diff/1/
> 
> 
> Testing
> ---
> 
> With the patch issue is not reproducing when i have set the 
> auto_increment_increment to 3 in mysql server env.
> 
> 
> Thanks,
> 
> Pradeep Agrawal
> 
>



Review Request 74039: RANGER-3806: Group's users mapping entry failing whenever primary key auto-increment is not set to 1 in db

2022-06-24 Thread Pradeep Agrawal

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

Review request for ranger, bhavik patel, Dhaval Shah, Abhay Kulkarni, Madhan 
Neethiraj, Mehul Parikh, Ramesh Mani, Sailaja Polavarapu, and Velmurugan 
Periasamy.


Bugs: RANGER-3806
https://issues.apache.org/jira/browse/RANGER-3806


Repository: ranger


Description
---

**Problem Statement:** 
Ranger db table `x_group_users` has columns "added_by_id" and "upd_by_id" which 
should be filled with the id of logged-in user. Whenever group's-users mapping 
is pushed from usersync module at that time these values are considered from a 
config "ranger.xuser.createdByUserId" which is set to 1 in 
ranger-default-admin-site.xml and code as well.
If users have set ranger db table's primary key's auto-increment offset to any 
number other than 1 and have not updated the same accordingly in the config 
"ranger.xuser.createdByUserId" then request may fail due to Foreignkey 
constraint violation.

Example Case: if primary key's auto-increment start value has been set to 2 in 
db engine then first entry in table x_portal_user will have primary-key id 2. 
while if config  "ranger.xuser.createdByUserId" is set to 1 then due to non 
availablity of userID 1 when it will try to insert group-user mappinng entry in 
`x_group_users` table with value 1 for the column "added_by_id" and "upd_by_id" 
it will cause to fail the request.

**Proposed solution:** Rather directly putting the config's 
"ranger.xuser.createdByUserId" value in "added_by_id" and "upd_by_id" field of 
`x_group_users` table we can check whether user id exist in x_portal_user or 
not. if it does not exist then do not set the value received from config 
"ranger.xuser.createdByUserId" and avoid the Foreign-key Constraint Violation 
Exception.


Diffs
-

  security-admin/src/main/java/org/apache/ranger/service/XGroupUserService.java 
9345e8180 


Diff: https://reviews.apache.org/r/74039/diff/1/


Testing
---

With the patch issue is not reproducing when i have set the 
auto_increment_increment to 3 in mysql server env.


Thanks,

Pradeep Agrawal