----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/27512/#review60611 -----------------------------------------------------------
sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/utils/PathUtils.java <https://reviews.apache.org/r/27512/#comment101986> I'm not sure how the Path class doesn't do all of this work for you. You may still need this function, but I think nearly all the logic can get pushed into the Path/URI classes. See example test case below. I think it would also be desireable if we supported URIs outside of the warehouse filesystem. Basically: 1) If the URI is qualified with a schema and authority, use it as-is. 2) If it is not qualified, copy the scheme/auth from the warehouse. Path path = new Path("swift://namenode:8080/path/to/warehouse"); Assert.assertEquals(false, path.isAbsoluteAndSchemeAuthorityNull()); Assert.assertEquals("swift", path.toUri().getScheme()); Assert.assertEquals("namenode:8080", path.toUri().getAuthority()); Assert.assertEquals("/path/to/warehouse", Path.getPathWithoutSchemeAndAuthority(path).toString()); Path pathNoSchemeOrAuth = new Path("/path/to/warehouse/a/b"); Assert.assertEquals(true, pathNoSchemeOrAuth.isAbsoluteAndSchemeAuthorityNull()); // If the URI wasn't qualified with a scheme and authority, use the one from the // warehouse directory. Path hdfsPath = new Path("hdfs://namenode:8080/path/to/warehouse"); pathNoSchemeOrAuth = pathNoSchemeOrAuth.makeQualified( hdfsPath.toUri(), hdfsPath); Assert.assertEquals("hdfs", pathNoSchemeOrAuth.toUri().getScheme()); Assert.assertEquals(false, pathNoSchemeOrAuth.isAbsoluteAndSchemeAuthorityNull()); Assert.assertEquals("/path/to/warehouse/a/b", Path.getPathWithoutSchemeAndAuthority(pathNoSchemeOrAuth).toString()); - Lenni Kuff On Nov. 4, 2014, 6:46 a.m., Colin Ma wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/27512/ > ----------------------------------------------------------- > > (Updated Nov. 4, 2014, 6:46 a.m.) > > > Review request for sentry and Prasad Mujumdar. > > > Repository: sentry > > > Description > ------- > > Currently the URI privilege validation assumes that the filesystem prefixes > can be 'file:' or 'hdfs:'. We should make this more generic to support other > prefixes available in the underlying filesystem. > > > Diffs > ----- > > > sentry-binding/sentry-binding-hive/src/main/java/org/apache/sentry/binding/hive/HiveAuthzBindingHook.java > f94ae7c > > sentry-core/sentry-core-common/src/main/java/org/apache/sentry/core/common/utils/PathUtils.java > 1cdbdb8 > > sentry-core/sentry-core-common/src/test/java/org/apache/sentry/core/common/utils/TestPathUtils.java > d30305b > > Diff: https://reviews.apache.org/r/27512/diff/ > > > Testing > ------- > > > Thanks, > > Colin Ma > >
