> On June 14, 2019, 4:36 p.m., Na Li wrote:
> > sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/HiveAuthzBindingHook.java
> > Lines 228 (patched)
> > <https://reviews.apache.org/r/70846/diff/3/?file=2149532#file2149532line232>
> >
> >     do you want to change for create function as well to get true currDB?
> >     
> >           case HiveParser.TOK_CREATEFUNCTION:
> >             String udfClassName = 
> > BaseSemanticAnalyzer.unescapeSQLString(ast.getChild(1).getText());
> >             try {
> >               CodeSource udfSrc =
> >                   Class.forName(udfClassName, true, 
> > Utilities.getSessionSpecifiedClassLoader())
> >                       .getProtectionDomain().getCodeSource();
> >               if (udfSrc == null) {
> >                 throw new SemanticException("Could not resolve the jar for 
> > UDF class " + udfClassName);
> >               }
> >               String udfJar = udfSrc.getLocation().getPath();
> >               if (udfJar == null || udfJar.isEmpty()) {
> >                 throw new SemanticException("Could not find the jar for UDF 
> > class " + udfClassName +
> >                     "to validate privileges");
> >               }
> >               udfURIs.add(parseURI(udfSrc.getLocation().toString(), true));
> >             } catch (ClassNotFoundException e) {
> >               List<String> functionJars = getFunctionJars(ast);
> >               if (functionJars.isEmpty()) {
> >                 throw new SemanticException("Error retrieving udf class:" + 
> > e.getMessage(), e);
> >               } else {
> >                 // Add the jars from the command "Create function using 
> > jar" to the access list
> >                 // Defer to hive to check if the class is in the jars
> >                 for(String jar : functionJars) {
> >                   udfURIs.add(parseURI(jar, false));
> >                 }
> >               }
> >             }
> >     
> >             // create/drop function is allowed with any database
> >             currDB = Database.ALL;

I could but we are trying to limit the changes to very minimum. Adding changes 
to create function will increase the scope of this fix


- Arjun


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


On June 14, 2019, 2:58 p.m., Arjun Mishra wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/70846/
> -----------------------------------------------------------
> 
> (Updated June 14, 2019, 2:58 p.m.)
> 
> 
> Review request for sentry, kalyan kumar kalvagadda and Na Li.
> 
> 
> Bugs: SENTRY-2240
>     https://issues.apache.org/jira/browse/SENTRY-2240
> 
> 
> Repository: sentry
> 
> 
> Description
> -------
> 
> User can DROP UDF function under a database that he/she has no access to.
> 
> I created it as separate JIRA from SENTRY-781 due to changes are quite 
> different.
> 
> 
> Diffs
> -----
> 
>   
> sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/HiveAuthzBindingHook.java
>  e87d0f664fd6cf93b3b86a61b57f148827e5692f 
>   
> sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/authz/HiveAuthzBindingHookBase.java
>  ed278c8d68c4133335198f40bed62cfa757fa5a9 
>   
> sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/authz/HiveAuthzPrivilegesMap.java
>  1aaa9b3fcade6ebcefcea269b3bd919fb47a44f6 
>   
> sentry-tests/sentry-tests-hive/src/test/java/org/apache/sentry/tests/e2e/hive/TestPrivilegesAtFunctionScope.java
>  bd0f978e86733b37cf3343c9841304fd61f9dcab 
> 
> 
> Diff: https://reviews.apache.org/r/70846/diff/3/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Arjun Mishra
> 
>

Reply via email to