From 8f935c9486bb3049e59e4f16cc53dcc4a3c8e98e Mon Sep 17 00:00:00 2001 From: Mingyu Chen Date: Thu, 28 Mar 2019 10:58:32 +0800 Subject: [PATCH] Fix bug that root user cannot login without password from 127.0.0.1 (#825) --- .../java/org/apache/doris/analysis/UserIdentity.java | 10 ++++++++++ .../org/apache/doris/mysql/privilege/PaloAuth.java | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/fe/src/main/java/org/apache/doris/analysis/UserIdentity.java b/fe/src/main/java/org/apache/doris/analysis/UserIdentity.java index 181b7c20ec..296faa8bdd 100644 --- a/fe/src/main/java/org/apache/doris/analysis/UserIdentity.java +++ b/fe/src/main/java/org/apache/doris/analysis/UserIdentity.java @@ -45,6 +45,16 @@ public class UserIdentity implements Writable { private boolean isDomain; private boolean isAnalyzed = false; + public static final UserIdentity ROOT; + public static final UserIdentity ADMIN; + + static { + ROOT = new UserIdentity(PaloAuth.ROOT_USER, "%"); + ROOT.setIsAnalyzed(); + ADMIN = new UserIdentity(PaloAuth.ADMIN_USER, "%"); + ADMIN.setIsAnalyzed(); + } + private UserIdentity() { } diff --git a/fe/src/main/java/org/apache/doris/mysql/privilege/PaloAuth.java b/fe/src/main/java/org/apache/doris/mysql/privilege/PaloAuth.java index 07a35359a3..9063f860c1 100644 --- a/fe/src/main/java/org/apache/doris/mysql/privilege/PaloAuth.java +++ b/fe/src/main/java/org/apache/doris/mysql/privilege/PaloAuth.java @@ -205,6 +205,11 @@ public class PaloAuth implements Writable { } if ((remoteUser.equals(ROOT_USER) || remoteUser.equals(ADMIN_USER)) && remoteHost.equals("127.0.0.1")) { // root and admin user is allowed to login from 127.0.0.1, in case user forget password. + if (remoteUser.equals(ROOT_USER)) { + currentUser.add(UserIdentity.ROOT); + } else { + currentUser.add(UserIdentity.ADMIN); + } return true; }