Skip to content

Commit b28ae7f

Browse files
committed
fix
1 parent 608fa6c commit b28ae7f

File tree

5 files changed

+23
-26
lines changed

5 files changed

+23
-26
lines changed

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,11 @@ public static void invalidateAllCache() {
138138
}
139139

140140
public static User getUser(String username) {
141-
return authorityFetcher.get().getUser(username);
141+
return authorityFetcher.get().getUser(username, false);
142142
}
143143

144144
public static Optional<Long> getUserId(String username) {
145-
User user = authorityFetcher.get().getUser(username);
145+
User user = authorityFetcher.get().getUser(username, false);
146146
return Optional.ofNullable(user == null ? null : user.getUserId());
147147
}
148148

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/ClusterAuthorityFetcher.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import org.apache.iotdb.commons.conf.CommonDescriptor;
3333
import org.apache.iotdb.commons.consensus.ConfigRegionId;
3434
import org.apache.iotdb.commons.exception.IoTDBException;
35+
import org.apache.iotdb.commons.exception.IoTDBRuntimeException;
3536
import org.apache.iotdb.commons.exception.MetadataException;
3637
import org.apache.iotdb.commons.path.PartialPath;
3738
import org.apache.iotdb.commons.path.PathPatternTree;
@@ -172,7 +173,7 @@ public List<Integer> checkUserPathPrivileges(
172173
return posList;
173174
}
174175
checkCacheAvailable();
175-
User user = getUser(username);
176+
User user = getUser(username, true);
176177
if (user.isOpenIdUser()) {
177178
return posList;
178179
}
@@ -443,13 +444,12 @@ private SettableFuture<ConfigTaskResult> handleAccountUnlock(
443444
Object authorStatement, String username, boolean isRelational, Runnable successCallback) {
444445

445446
if (isUnlockStatement(authorStatement, isRelational)) {
446-
SettableFuture<ConfigTaskResult> future = SettableFuture.create();
447-
User user = getUser(username);
448-
if (user == null) {
449-
future.setException(
450-
new IoTDBException(
451-
String.format("User %s does not exist", username),
452-
TSStatusCode.USER_NOT_EXIST.getStatusCode()));
447+
final SettableFuture<ConfigTaskResult> future = SettableFuture.create();
448+
final User user;
449+
try {
450+
user = getUser(username, false);
451+
} catch (final IoTDBRuntimeException e) {
452+
future.setException(e);
453453
return future;
454454
}
455455
String loginAddr =
@@ -593,7 +593,8 @@ public TSStatus checkUser(
593593
}
594594
}
595595

596-
public User getUser(String userName) {
596+
@Override
597+
public User getUser(String userName, final boolean force) {
597598
checkCacheAvailable();
598599
User user = iAuthorCache.getUserCache(userName);
599600
if (user != null) {
@@ -616,6 +617,10 @@ public User getUser(String userName) {
616617
}
617618
}
618619
}
620+
if (user == null && force) {
621+
throw new IoTDBRuntimeException(
622+
"User " + userName + " does not exist", TSStatusCode.USER_NOT_EXIST.getStatusCode());
623+
}
619624
return user;
620625
}
621626

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/IAuthorityFetcher.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,5 +86,5 @@ PathPatternTree getAuthorizedPatternTree(String username, PrivilegeType permissi
8686

8787
void refreshToken();
8888

89-
User getUser(String username);
89+
User getUser(String username, final boolean force);
9090
}

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TableConfigTaskVisitor.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1491,10 +1491,7 @@ protected IConfigTask visitRelationalAuthorPlan(
14911491
}
14921492

14931493
private void visitUpdateUser(RelationalAuthorStatement node) {
1494-
User user = AuthorityChecker.getAuthorityFetcher().getUser(node.getUserName());
1495-
if (user == null) {
1496-
throw new SemanticException("User " + node.getUserName() + " not found");
1497-
}
1494+
final User user = AuthorityChecker.getAuthorityFetcher().getUser(node.getUserName(), true);
14981495
node.setOldPassword(user.getPassword());
14991496
}
15001497

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/execution/config/TreeConfigTaskVisitor.java

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.apache.iotdb.common.rpc.thrift.Model;
2323
import org.apache.iotdb.common.rpc.thrift.TSStatus;
2424
import org.apache.iotdb.commons.audit.UserEntity;
25-
import org.apache.iotdb.commons.auth.entity.User;
2625
import org.apache.iotdb.commons.exception.auth.AccessDeniedException;
2726
import org.apache.iotdb.commons.executable.ExecutableManager;
2827
import org.apache.iotdb.commons.path.PartialPath;
@@ -340,18 +339,14 @@ public IConfigTask visitAuthor(AuthorStatement statement, MPPQueryContext contex
340339
}
341340

342341
private void visitUpdateUser(AuthorStatement statement) {
343-
User user = AuthorityChecker.getAuthorityFetcher().getUser(statement.getUserName());
344-
if (user == null) {
345-
throw new SemanticException("User " + statement.getUserName() + " not found");
346-
}
347-
statement.setPassWord(user.getPassword());
342+
statement.setPassWord(
343+
AuthorityChecker.getAuthorityFetcher()
344+
.getUser(statement.getUserName(), true)
345+
.getPassword());
348346
}
349347

350348
private void visitRenameUser(AuthorStatement statement) {
351-
User user = AuthorityChecker.getAuthorityFetcher().getUser(statement.getUserName());
352-
if (user == null) {
353-
throw new SemanticException("User " + statement.getUserName() + " not found");
354-
}
349+
AuthorityChecker.getAuthorityFetcher().getUser(statement.getUserName(), true);
355350
}
356351

357352
@Override

0 commit comments

Comments
 (0)