You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hcatalog-commits@incubator.apache.org by ga...@apache.org on 2012/03/05 22:01:38 UTC
svn commit: r1297246 - in /incubator/hcatalog/trunk: CHANGES.txt
src/java/org/apache/hcatalog/security/HdfsAuthorizationProvider.java
src/java/org/apache/hcatalog/security/StorageDelegationAuthorizationProvider.java
src/test/e2e/hcatalog/tests/hcat.conf
Author: gates
Date: Mon Mar 5 22:01:37 2012
New Revision: 1297246
URL: http://svn.apache.org/viewvc?rev=1297246&view=rev
Log:
HCATALOG-286 NPE in HdfsAuthorizationProvider
Modified:
incubator/hcatalog/trunk/CHANGES.txt
incubator/hcatalog/trunk/src/java/org/apache/hcatalog/security/HdfsAuthorizationProvider.java
incubator/hcatalog/trunk/src/java/org/apache/hcatalog/security/StorageDelegationAuthorizationProvider.java
incubator/hcatalog/trunk/src/test/e2e/hcatalog/tests/hcat.conf
Modified: incubator/hcatalog/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/hcatalog/trunk/CHANGES.txt?rev=1297246&r1=1297245&r2=1297246&view=diff
==============================================================================
--- incubator/hcatalog/trunk/CHANGES.txt (original)
+++ incubator/hcatalog/trunk/CHANGES.txt Mon Mar 5 22:01:37 2012
@@ -76,6 +76,8 @@ Release 0.4.0 - Unreleased
OPTIMIZATIONS
BUG FIXES
+ HCAT-286 NPE in HdfsAuthorizationProvider (enis via gates)
+
HCAT-290 Changes in HBase maven objects breaks hcat build (gates)
HCAT-280 part file name prefix with attempxxxx (daijy via gates)
Modified: incubator/hcatalog/trunk/src/java/org/apache/hcatalog/security/HdfsAuthorizationProvider.java
URL: http://svn.apache.org/viewvc/incubator/hcatalog/trunk/src/java/org/apache/hcatalog/security/HdfsAuthorizationProvider.java?rev=1297246&r1=1297245&r2=1297246&view=diff
==============================================================================
--- incubator/hcatalog/trunk/src/java/org/apache/hcatalog/security/HdfsAuthorizationProvider.java (original)
+++ incubator/hcatalog/trunk/src/java/org/apache/hcatalog/security/HdfsAuthorizationProvider.java Mon Mar 5 22:01:37 2012
@@ -143,7 +143,10 @@ public class HdfsAuthorizationProvider e
@Override
public void authorize(Database db, Privilege[] readRequiredPriv, Privilege[] writeRequiredPriv)
throws HiveException, AuthorizationException {
-
+ if (db == null) {
+ return;
+ }
+
Path path = getDbLocation(db);
authorize(path, readRequiredPriv, writeRequiredPriv);
@@ -152,6 +155,9 @@ public class HdfsAuthorizationProvider e
@Override
public void authorize(Table table, Privilege[] readRequiredPriv, Privilege[] writeRequiredPriv)
throws HiveException, AuthorizationException {
+ if (table == null) {
+ return;
+ }
//unlike Hive's model, this can be called at CREATE TABLE as well, since we should authorize
//against the table's declared location
@@ -170,23 +176,32 @@ public class HdfsAuthorizationProvider e
authorize(path, readRequiredPriv, writeRequiredPriv);
}
- @Override
- public void authorize(Partition part, Privilege[] readRequiredPriv, Privilege[] writeRequiredPriv)
+ //TODO: HiveAuthorizationProvider should expose this interface instead of #authorize(Partition, Privilege[], Privilege[])
+ public void authorize(Table table, Partition part, Privilege[] readRequiredPriv, Privilege[] writeRequiredPriv)
throws HiveException, AuthorizationException {
- if (part.getLocation() == null) {
- authorize(part.getTable(), readRequiredPriv, writeRequiredPriv);
+ if (part == null || part.getLocation() == null) {
+ authorize(table, readRequiredPriv, writeRequiredPriv);
} else {
authorize(part.getPartitionPath(), readRequiredPriv, writeRequiredPriv);
}
}
@Override
+ public void authorize(Partition part, Privilege[] readRequiredPriv, Privilege[] writeRequiredPriv)
+ throws HiveException, AuthorizationException {
+ if (part == null) {
+ return;
+ }
+ authorize(part.getTable(), part, readRequiredPriv, writeRequiredPriv);
+ }
+
+ @Override
public void authorize(Table table, Partition part, List<String> columns,
Privilege[] readRequiredPriv, Privilege[] writeRequiredPriv) throws HiveException,
AuthorizationException {
//columns cannot live in different files, just check for partition level permissions
- authorize(table, part, columns, readRequiredPriv, writeRequiredPriv);
+ authorize(table, part, readRequiredPriv, writeRequiredPriv);
}
/**
Modified: incubator/hcatalog/trunk/src/java/org/apache/hcatalog/security/StorageDelegationAuthorizationProvider.java
URL: http://svn.apache.org/viewvc/incubator/hcatalog/trunk/src/java/org/apache/hcatalog/security/StorageDelegationAuthorizationProvider.java?rev=1297246&r1=1297245&r2=1297246&view=diff
==============================================================================
--- incubator/hcatalog/trunk/src/java/org/apache/hcatalog/security/StorageDelegationAuthorizationProvider.java (original)
+++ incubator/hcatalog/trunk/src/java/org/apache/hcatalog/security/StorageDelegationAuthorizationProvider.java Mon Mar 5 22:01:37 2012
@@ -129,6 +129,6 @@ public class StorageDelegationAuthorizat
public void authorize(Table table, Partition part, List<String> columns,
Privilege[] readRequiredPriv, Privilege[] writeRequiredPriv) throws HiveException,
AuthorizationException {
- getDelegate(table).authorize(part, readRequiredPriv, writeRequiredPriv);
+ getDelegate(table).authorize(table, part, columns, readRequiredPriv, writeRequiredPriv);
}
}
Modified: incubator/hcatalog/trunk/src/test/e2e/hcatalog/tests/hcat.conf
URL: http://svn.apache.org/viewvc/incubator/hcatalog/trunk/src/test/e2e/hcatalog/tests/hcat.conf?rev=1297246&r1=1297245&r2=1297246&view=diff
==============================================================================
--- incubator/hcatalog/trunk/src/test/e2e/hcatalog/tests/hcat.conf (original)
+++ incubator/hcatalog/trunk/src/test/e2e/hcatalog/tests/hcat.conf Mon Mar 5 22:01:37 2012
@@ -174,8 +174,8 @@ drop database hcat_database_1;\
'num' => 1
,'hcat' => q"
drop table if exists hcat_view_1;
-drop table if exists hcat_view_1_1;
-drop table if exists hcat_view_1_2;
+drop view if exists hcat_view_1_1;
+drop view if exists hcat_view_1_2;
create external table hcat_view_1 (name string, age int, gpa double) row format delimited fields terminated by '\t' stored as TEXTFILE location '/user/hcat/tests/data/studenttab10k';
create view hcat_view_1_1 as select name, gpa, age from studenttab10k;
create view hcat_view_1_2 partitioned on (age) as select name, gpa, age from studenttab10k;
@@ -183,7 +183,6 @@ alter view hcat_view_1_1 set tblproperti
show tables;
describe hcat_view_1_1;
describe hcat_view_1_2;
-alter view hcat_view_1_2 rename to hcat_view_1_3;
drop view hcat_view_1_1;
drop view hcat_view_1_3;"
,'rc' => 0