You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by xx...@apache.org on 2023/05/06 06:59:25 UTC
[kylin] 24/38: KYLIN-5535 Fix the username suffix matching
This is an automated email from the ASF dual-hosted git repository.
xxyu pushed a commit to branch kylin5
in repository https://gitbox.apache.org/repos/asf/kylin.git
commit 9bf63e01838fee5eb2fc50332c43a14bc0ea824d
Author: Jiale He <35...@users.noreply.github.com>
AuthorDate: Tue Feb 28 10:11:04 2023 +0800
KYLIN-5535 Fix the username suffix matching
---
.../kylin/metadata/user/NKylinUserManager.java | 20 +++-----------------
.../kylin/metadata/user/NKylinUserManagerTest.java | 12 ++++++++++++
2 files changed, 15 insertions(+), 17 deletions(-)
diff --git a/src/core-metadata/src/main/java/org/apache/kylin/metadata/user/NKylinUserManager.java b/src/core-metadata/src/main/java/org/apache/kylin/metadata/user/NKylinUserManager.java
index 4b487a6841..ea0b184068 100644
--- a/src/core-metadata/src/main/java/org/apache/kylin/metadata/user/NKylinUserManager.java
+++ b/src/core-metadata/src/main/java/org/apache/kylin/metadata/user/NKylinUserManager.java
@@ -23,7 +23,6 @@ import static org.apache.kylin.common.persistence.ResourceStore.USER_ROOT;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import java.util.NavigableSet;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
@@ -92,7 +91,8 @@ public class NKylinUserManager {
return user;
}
return Objects.nonNull(user) ? user
- : crud.listPartial(path -> StringUtils.endsWithIgnoreCase(path, name)).stream().findAny().orElse(null);
+ : crud.listPartial(path -> StringUtils.endsWithIgnoreCase(path, name)).stream()
+ .filter(u -> StringUtils.equalsIgnoreCase(u.getUsername(), name)).findAny().orElse(null);
}
public List<ManagedUser> list() {
@@ -122,21 +122,7 @@ public class NKylinUserManager {
}
public boolean exists(String username) {
- if (StringUtils.isEmpty(username)) {
- return false;
- }
- ManagedUser user = crud.get(username);
- if (getConfig().isMetadataKeyCaseInSensitiveEnabled()) {
- return Objects.nonNull(user);
- }
- if (Objects.nonNull(user)) {
- return true;
- }
- NavigableSet<String> users = getStore().listResources(USER_ROOT);
- if (Objects.isNull(users)) {
- return false;
- }
- return users.stream().anyMatch(path -> StringUtils.endsWithIgnoreCase(path, username));
+ return Objects.nonNull(get(username));
}
public Set<String> getUserGroups(String userName) {
diff --git a/src/core-metadata/src/test/java/org/apache/kylin/metadata/user/NKylinUserManagerTest.java b/src/core-metadata/src/test/java/org/apache/kylin/metadata/user/NKylinUserManagerTest.java
index c5246228dd..6f57b71d17 100644
--- a/src/core-metadata/src/test/java/org/apache/kylin/metadata/user/NKylinUserManagerTest.java
+++ b/src/core-metadata/src/test/java/org/apache/kylin/metadata/user/NKylinUserManagerTest.java
@@ -68,4 +68,16 @@ class NKylinUserManagerTest extends NLocalFileMetadataTestCase {
Assertions.assertNull(manager.get("notexist"));
Assertions.assertNull(manager.get(null));
}
+
+ @Test
+ void testNameSuffix() {
+ NKylinUserManager manager = NKylinUserManager.getInstance(getTestConfig());
+ ManagedUser normalUser = new ManagedUser("test_ut", "KYLIN", false, Arrays.asList(
+ new SimpleGrantedAuthority(Constant.ROLE_ANALYST), new SimpleGrantedAuthority(Constant.ROLE_MODELER)));
+ manager.update(normalUser);
+ Assertions.assertTrue(manager.exists("test_ut"));
+ Assertions.assertFalse(manager.exists("ut"));
+ Assertions.assertNotNull(manager.get("test_ut"));
+ Assertions.assertNull(manager.get("ut"));
+ }
}