You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by sh...@apache.org on 2018/10/29 07:21:03 UTC

[kylin] branch master updated: KYLIN-3562, optimization the logic that updating the user when user logged in.

This is an automated email from the ASF dual-hosted git repository.

shaofengshi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kylin.git


The following commit(s) were added to refs/heads/master by this push:
     new 3bcbaa8  KYLIN-3562, optimization the logic that updating the user when user logged in.
3bcbaa8 is described below

commit 3bcbaa88b97cf868ddf8f51a54b015ef3b7cc068
Author: tttMelody <24...@qq.com>
AuthorDate: Tue Sep 25 19:38:47 2018 +0800

    KYLIN-3562, optimization the logic that updating the user when user logged in.
---
 .../rest/security/KylinAuthenticationProvider.java |  8 +++--
 .../apache/kylin/rest/security/ManagedUser.java    | 35 ++++++++++------------
 2 files changed, 20 insertions(+), 23 deletions(-)

diff --git a/server-base/src/main/java/org/apache/kylin/rest/security/KylinAuthenticationProvider.java b/server-base/src/main/java/org/apache/kylin/rest/security/KylinAuthenticationProvider.java
index dd9cbad..d96b358 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/security/KylinAuthenticationProvider.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/security/KylinAuthenticationProvider.java
@@ -110,10 +110,12 @@ public class KylinAuthenticationProvider implements AuthenticationProvider {
                 }
                 Assert.notNull(user, "The UserDetail is null.");
 
-                logger.debug("User {} authorities : {}", user.getUsername(), user.getAuthorities());
-                if (!userService.userExists(user.getUsername())) {
+                String username = user.getUsername();
+                logger.debug("User {} authorities : {}", username, user.getAuthorities());
+                if (!userService.userExists(username)) {
                     userService.createUser(user);
-                } else {
+                } else if (!userService.loadUserByUsername(username).equals(user)) {
+                    // in case ldap users changing.
                     userService.updateUser(user);
                 }
 
diff --git a/server-base/src/main/java/org/apache/kylin/rest/security/ManagedUser.java b/server-base/src/main/java/org/apache/kylin/rest/security/ManagedUser.java
index 00e0045..48d4440 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/security/ManagedUser.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/security/ManagedUser.java
@@ -22,8 +22,8 @@ import java.io.IOException;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Objects;
 
-import com.google.common.base.Preconditions;
 import org.apache.kylin.common.persistence.RootPersistentEntity;
 import org.apache.kylin.rest.service.UserGrantedAuthority;
 import org.springframework.security.core.GrantedAuthority;
@@ -41,6 +41,7 @@ import com.fasterxml.jackson.databind.JsonSerializer;
 import com.fasterxml.jackson.databind.SerializerProvider;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.google.common.base.Preconditions;
 import com.google.common.collect.Lists;
 
 @SuppressWarnings("serial")
@@ -231,28 +232,22 @@ public class ManagedUser extends RootPersistentEntity implements UserDetails {
     }
 
     @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((username == null) ? 0 : username.hashCode());
-        return result;
+    public boolean equals(Object o) {
+        if (this == o)
+            return true;
+        if (o == null || getClass() != o.getClass())
+            return false;
+        ManagedUser that = (ManagedUser) o;
+        return disabled == that.disabled && defaultPassword == that.defaultPassword && locked == that.locked
+                && lockedTime == that.lockedTime && wrongTime == that.wrongTime
+                && Objects.equals(username, that.username) && Objects.equals(password, that.password)
+                && Objects.equals(authorities, that.authorities);
     }
 
     @Override
-    public boolean equals(Object obj) {
-        if (this == obj)
-            return true;
-        if (obj == null)
-            return false;
-        if (getClass() != obj.getClass())
-            return false;
-        ManagedUser other = (ManagedUser) obj;
-        if (username == null) {
-            if (other.username != null)
-                return false;
-        } else if (!username.equals(other.username))
-            return false;
-        return true;
+    public int hashCode() {
+        return Objects.hash(super.hashCode(), username, password, authorities, disabled, defaultPassword, locked,
+                lockedTime, wrongTime);
     }
 
     @Override