This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
The following commit(s) were added to refs/heads/master by this push:
new fdd13ea [Broker] Fix broker load fail using SIMPLE auth after
KERBEROS auth fail (#5412)
fdd13ea is described below
commit fdd13ea79afe921514c9ae519644e2636bce3de5
Author: francis lee <[email protected]>
AuthorDate: Thu Feb 25 09:53:50 2021 +0800
[Broker] Fix broker load fail using SIMPLE auth after KERBEROS auth fail
(#5412)
Co-authored-by: liwei5 <[email protected]>
---
.../java/org/apache/doris/broker/hdfs/FileSystemManager.java | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git
a/fs_brokers/apache_hdfs_broker/src/main/java/org/apache/doris/broker/hdfs/FileSystemManager.java
b/fs_brokers/apache_hdfs_broker/src/main/java/org/apache/doris/broker/hdfs/FileSystemManager.java
index 206e909..c1c1c4e 100644
---
a/fs_brokers/apache_hdfs_broker/src/main/java/org/apache/doris/broker/hdfs/FileSystemManager.java
+++
b/fs_brokers/apache_hdfs_broker/src/main/java/org/apache/doris/broker/hdfs/FileSystemManager.java
@@ -35,6 +35,7 @@ import org.apache.hadoop.hdfs.HdfsConfiguration;
import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.util.StringUtils;
import org.apache.log4j.Logger;
+import org.apache.hadoop.fs.CommonConfigurationKeys;
import java.io.File;
import java.io.FileNotFoundException;
@@ -243,6 +244,10 @@ public class FileSystemManager {
logger.info("could not find file system for path " + path + "
create a new one");
// create a new filesystem
Configuration conf = new HdfsConfiguration();
+
+ // fallback when kerberos auth fail
+
conf.set(CommonConfigurationKeys.IPC_CLIENT_FALLBACK_TO_SIMPLE_AUTH_ALLOWED_KEY,
"true");
+
// TODO get this param from properties
// conf.set("dfs.replication", "2");
String tmpFilePath = null;
@@ -338,6 +343,11 @@ public class FileSystemManager {
properties.containsKey(USER_NAME_KEY) &&
!Strings.isNullOrEmpty(username)) {
// Use the specified 'username' as the login name
UserGroupInformation ugi =
UserGroupInformation.createRemoteUser(username);
+ // make sure hadoop client know what auth method would be
used now,
+ // don't set as default
+
conf.set(CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHENTICATION,
AUTHENTICATION_SIMPLE);
+
ugi.setAuthenticationMethod(UserGroupInformation.AuthenticationMethod.SIMPLE);
+
dfsFileSystem = ugi.doAs(new
PrivilegedExceptionAction<FileSystem>() {
@Override
public FileSystem run() throws Exception {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]