mirror of
https://github.com/apache/nifi.git
synced 2025-02-10 12:05:22 +00:00
NIFI-7984 Use UGI doAs in DeleteHDFS (#4622)
This commit is contained in:
parent
3612973a47
commit
77b4abc21e
@ -21,6 +21,7 @@ import com.google.common.collect.Maps;
|
|||||||
import org.apache.hadoop.fs.FileStatus;
|
import org.apache.hadoop.fs.FileStatus;
|
||||||
import org.apache.hadoop.fs.FileSystem;
|
import org.apache.hadoop.fs.FileSystem;
|
||||||
import org.apache.hadoop.fs.Path;
|
import org.apache.hadoop.fs.Path;
|
||||||
|
import org.apache.hadoop.security.UserGroupInformation;
|
||||||
import org.apache.nifi.annotation.behavior.InputRequirement;
|
import org.apache.nifi.annotation.behavior.InputRequirement;
|
||||||
import org.apache.nifi.annotation.behavior.Restricted;
|
import org.apache.nifi.annotation.behavior.Restricted;
|
||||||
import org.apache.nifi.annotation.behavior.Restriction;
|
import org.apache.nifi.annotation.behavior.Restriction;
|
||||||
@ -41,6 +42,7 @@ import org.apache.nifi.processor.exception.ProcessException;
|
|||||||
import org.apache.nifi.processor.util.StandardValidators;
|
import org.apache.nifi.processor.util.StandardValidators;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.security.PrivilegedAction;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@ -141,11 +143,15 @@ public class DeleteHDFS extends AbstractHadoopProcessor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// We need a FlowFile to report provenance correctly.
|
// We need a FlowFile to report provenance correctly.
|
||||||
FlowFile flowFile = originalFlowFile != null ? originalFlowFile : session.create();
|
final FlowFile finalFlowFile = originalFlowFile != null ? originalFlowFile : session.create();
|
||||||
|
|
||||||
final String fileOrDirectoryName = context.getProperty(FILE_OR_DIRECTORY).evaluateAttributeExpressions(flowFile).getValue();
|
final String fileOrDirectoryName = context.getProperty(FILE_OR_DIRECTORY).evaluateAttributeExpressions(finalFlowFile).getValue();
|
||||||
|
|
||||||
final FileSystem fileSystem = getFileSystem();
|
final FileSystem fileSystem = getFileSystem();
|
||||||
|
final UserGroupInformation ugi = getUserGroupInformation();
|
||||||
|
|
||||||
|
ugi.doAs((PrivilegedAction<Object>)() -> {
|
||||||
|
FlowFile flowFile = finalFlowFile;
|
||||||
try {
|
try {
|
||||||
// Check if the user has supplied a file or directory pattern
|
// Check if the user has supplied a file or directory pattern
|
||||||
List<Path> pathList = Lists.newArrayList();
|
List<Path> pathList = Lists.newArrayList();
|
||||||
@ -199,5 +205,8 @@ public class DeleteHDFS extends AbstractHadoopProcessor {
|
|||||||
session.transfer(flowFile, DeleteHDFS.REL_FAILURE);
|
session.transfer(flowFile, DeleteHDFS.REL_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user