@Override public void authorize(Partition part, Privilege[] inputRequiredPriv, Privilege[] outputRequiredPriv) throws HiveException { //if the partition does not have partition level privilege, go to table level. Table table = part.getTable(); if (table.getParameters().get("PARTITION_LEVEL_PRIVILEGE") == null || ("FALSE" .equalsIgnoreCase(table.getParameters().get( "PARTITION_LEVEL_PRIVILEGE")))) { this.authorize(part.getTable(), inputRequiredPriv, outputRequiredPriv); return; } BitSetChecker checker = BitSetChecker.getBitSetChecker(inputRequiredPriv, outputRequiredPriv); boolean[] inputCheck = checker.inputCheck; boolean[] outputCheck = checker.outputCheck; if (authorizeUserDbAndPartition(part, inputRequiredPriv, outputRequiredPriv, inputCheck, outputCheck)){ return; } checkAndThrowAuthorizationException(inputRequiredPriv, outputRequiredPriv, inputCheck, outputCheck, part.getTable().getDbName(), part .getTable().getTableName(), part.getName(), null); }
@Override public void authorize(Partition part, Privilege[] inputRequiredPriv, Privilege[] outputRequiredPriv) throws HiveException { //if the partition does not have partition level privilege, go to table level. Table table = part.getTable(); if (table.getParameters().get("PARTITION_LEVEL_PRIVILEGE") == null || ("FALSE" .equalsIgnoreCase(table.getParameters().get( "PARTITION_LEVEL_PRIVILEGE")))) { this.authorize(part.getTable(), inputRequiredPriv, outputRequiredPriv); return; } BitSetChecker checker = BitSetChecker.getBitSetChecker(inputRequiredPriv, outputRequiredPriv); boolean[] inputCheck = checker.inputCheck; boolean[] outputCheck = checker.outputCheck; if (authorizeUserDbAndPartition(part, inputRequiredPriv, outputRequiredPriv, inputCheck, outputCheck)){ return; } checkAndThrowAuthorizationException(inputRequiredPriv, outputRequiredPriv, inputCheck, outputCheck, part.getTable().getDbName(), part .getTable().getTableName(), part.getName(), null); }
@Override public void authorize(Partition part, Privilege[] inputRequiredPriv, Privilege[] outputRequiredPriv) throws HiveException { //if the partition does not have partition level privilege, go to table level. Table table = part.getTable(); if (table.getParameters().get("PARTITION_LEVEL_PRIVILEGE") == null || ("FALSE" .equalsIgnoreCase(table.getParameters().get( "PARTITION_LEVEL_PRIVILEGE")))) { this.authorize(part.getTable(), inputRequiredPriv, outputRequiredPriv); return; } BitSetChecker checker = BitSetChecker.getBitSetChecker(inputRequiredPriv, outputRequiredPriv); boolean[] inputCheck = checker.inputCheck; boolean[] outputCheck = checker.outputCheck; if (authorizeUserDbAndPartition(part, inputRequiredPriv, outputRequiredPriv, inputCheck, outputCheck)){ return; } checkAndThrowAuthorizationException(inputRequiredPriv, outputRequiredPriv, inputCheck, outputCheck, part.getTable().getDbName(), part .getTable().getTableName(), part.getName(), null); }