kylin-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (KYLIN-3531) Login failed with case-insensitive username
Date Wed, 19 Sep 2018 01:45:00 GMT

    [ https://issues.apache.org/jira/browse/KYLIN-3531?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16619962#comment-16619962
] 

ASF GitHub Bot commented on KYLIN-3531:
---------------------------------------

shaofengshi closed pull request #235: KYLIN-3531 Save uppercase of usernames to metadata
URL: https://github.com/apache/kylin/pull/235
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/server-base/src/main/java/org/apache/kylin/rest/security/KylinUserManager.java
b/server-base/src/main/java/org/apache/kylin/rest/security/KylinUserManager.java
index c4b457de53..acbc0084c2 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/security/KylinUserManager.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/security/KylinUserManager.java
@@ -25,6 +25,7 @@
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
+import java.util.Locale;
 
 import org.apache.kylin.common.KylinConfig;
 import org.apache.kylin.common.persistence.ResourceStore;
@@ -119,6 +120,7 @@ public void update(ManagedUser user) {
             if (exist != null) {
                 user.setLastModified(exist.getLastModified());
             }
+            user.setUsername(user.getUsername().toUpperCase(Locale.ROOT));
             crud.save(user);
         } catch (IOException e) {
             throw new RuntimeException("Can not update user.", e);
@@ -127,7 +129,7 @@ public void update(ManagedUser user) {
 
     public void delete(String username) {
         try (AutoReadWriteLock.AutoLock l = lock.lockForWrite()) {
-            crud.delete(username);
+            crud.delete(username.toUpperCase(Locale.ROOT));
         } catch (IOException e) {
             throw new RuntimeException("Can not delete user.", e);
         }
diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/KylinUserService.java
b/server-base/src/main/java/org/apache/kylin/rest/service/KylinUserService.java
index 8571aec9e7..eea8cd7096 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/KylinUserService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/KylinUserService.java
@@ -90,7 +90,7 @@ public void updateUser(UserDetails user) {
 
     @Override
     public void deleteUser(String userName) {
-        if (userName.equals(SUPER_ADMIN)) {
+        if (userName.equalsIgnoreCase(SUPER_ADMIN)) {
             throw new InternalErrorException("User " + userName + " is not allowed to be
deleted.");
         }
 


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> Login failed with case-insensitive username
> -------------------------------------------
>
>                 Key: KYLIN-3531
>                 URL: https://issues.apache.org/jira/browse/KYLIN-3531
>             Project: Kylin
>          Issue Type: Bug
>          Components: Metadata
>    Affects Versions: v2.4.0
>            Reporter: Yichen Zhou
>            Assignee: Yichen Zhou
>            Priority: Major
>             Fix For: v2.5.1
>
>
> Username is case-insensitive in login authentication but case-sensitive in hbase metadata.  
> {quote}org.apache.kylin.common.persistence.WriteConflictException: Overwriting conflict /user/Admin, expect old TS 1536031295060, but it is 0
>  org.apache.kylin.storage.hbase.HBaseResourceStore.checkAndPutResourceImpl(HBaseResourceStore.java:325)
>  org.apache.kylin.common.persistence.ResourceStore.checkAndPutResourceCheckpoint(ResourceStore.java:323)
>  org.apache.kylin.common.persistence.ResourceStore.putResource(ResourceStore.java:308)
>  org.apache.kylin.common.persistence.ResourceStore.putResource(ResourceStore.java:287)
>  org.apache.kylin.metadata.cachesync.CachedCrudAssist.save(CachedCrudAssist.java:192)
>  org.apache.kylin.rest.security.KylinUserManager.update(KylinUserManager.java:122)
>  org.apache.kylin.rest.service.KylinUserService.updateUser(KylinUserService.java:85)
>  org.apache.kylin.rest.security.KylinAuthenticationProvider.authenticate(KylinAuthenticationProvider.java:117)
>  org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
>  org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:199)
>  org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:180)
>  org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
> {quote}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message