> On Dec. 22, 2016, 10:42 a.m., Alok Lal wrote: > > ugsync/src/main/java/org/apache/ranger/usersync/util/UserSyncUtil.java, > > line 32 > > <https://reviews.apache.org/r/54968/diff/1/?file=1591085#file1591085line32> > > > > Pradeep, I'm a bit uncomfortable with us not using a library to do > > this. [This > > discussions](http://stackoverflow.com/questions/4737841/urlencoder-not-able-to-translate-space-character) > > presents a couple of alternatives. For example, UrlEscapers is a part of > > guava and is quite well documented. Importantly, it is likely to keep in > > step with any future changes in the standards. > > > > I know it is a bear to test these things, so I cring as I suggest this > > nitpicky change to you. > > Pradeep Agrawal wrote: > Alok, I Went through Guava library, Apache common, Tomcat Catalina and > Spring library; but to find the best one i will need more time; i could not > get the list of other characters which can cause issue, To me only space was > causing problem so i proposed this patch as it involves less testing. Also we > can always fix it in better way later whenever we will have few more set of > characters which can cause issue and alternate APIs covers them.
Fair enough. ship it! - Alok ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/54968/#review159994 ----------------------------------------------------------- On Dec. 22, 2016, 2:01 a.m., Pradeep Agrawal wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/54968/ > ----------------------------------------------------------- > > (Updated Dec. 22, 2016, 2:01 a.m.) > > > Review request for ranger, Ankita Sinha, Don Bosco Durai, Gautam Borad, Abhay > Kulkarni, Madhan Neethiraj, Mehul Parikh, Ramesh Mani, Selvamohan Neethiraj, > and Velmurugan Periasamy. > > > Bugs: RANGER-1276 > https://issues.apache.org/jira/browse/RANGER-1276 > > > Repository: ranger > > > Description > ------- > > ** Problem Statement :** if usersync process add groups with spaces in ranger > admin and to remove a user from a group it calls REST: > /group/{groupName}/user/{userName} > In this REST call if a group name contains spaces then URLEncoder.encode(s, > "UTF-8") method replace these spaces with + symbol and request is forwarded > to ranger-admin. Whenever Ranger receives group name with + character (rather > spaces) it tries to search the received group name in db but fails to find > any rows as the group name with '+' character does not exist. At Ranger admin > end this process is considered as a failure of the request and ranger-admin > sends the error message to the log file. > > ** Proposed Solution :** Ranger admin server expect that if spaces are there > in URL path segment then they should be send with encoding '%20' so that it > can decode those encoded characters internally. > During encoding of path segment usersync process usage > UserSyncUtil.encodeURIParam(String s) which calls > java.net.URLEncoder.encode(String s, String enc) method. After encoding of > the provided string using java.net.URLEncoder.encode(String s, String enc) > method we need to replace + symbol with %20 characters, so that request can > be forwarded to ranger admin with %20 for spaces rather + symbol. > > > Diffs > ----- > > ugsync/src/main/java/org/apache/ranger/usersync/util/UserSyncUtil.java > a33576b > > Diff: https://reviews.apache.org/r/54968/diff/ > > > Testing > ------- > > **Steps performed(with patch) :** > 1. Installed and started Ranger admin. > 2. Created a group with spaces 'my personal group' > 3. Created a user with spaces 'public user1' and assigned it to group 'my > personal group' > 4. Tried to delete mapping of user 'public user1' from group 'my personal > group' > > **Sample Request after encoding:** curl -u admin:admin -v -i -s -X DELETE -H > "Accept: application/json" -H "Content-Type: application/json" > http://localhost:6080/service/xusers/group/my%20personal%20group/user/public%20user1 > 5. Visited user tab from user/group menu. > > **Expected Behaviour :** User 'public user1' mapping from group 'my personal > group' should get deleted and it should not show mapping of user 'public > user1' in group 'my personal group'. > **Actual Behaviour :** User 'public user1' got removed from group 'my > personal group', group column of user 'public user1' was empty. > > > Thanks, > > Pradeep Agrawal > >
