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

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


The following commit(s) were added to refs/heads/master by this push:
     new e8a1579bf [INLONG-5194][Manager] Update MD5 to SHA hashing (#5195)
e8a1579bf is described below

commit e8a1579bf85e2e70e80cdf61bda53e9a210f2a0d
Author: woofyzhao <[email protected]>
AuthorDate: Tue Jul 26 16:50:27 2022 +0800

    [INLONG-5194][Manager] Update MD5 to SHA hashing (#5195)
---
 .../common/pojo/dataproxy/DataProxyClusterSet.java | 260 ---------------------
 .../common/util/{MD5Utils.java => SHAUtils.java}   |  19 +-
 .../util/{MD5UtilsTest.java => SHAUtilsTest.java}  |   6 +-
 .../manager/service/core/impl/UserServiceImpl.java |  12 +-
 .../manager-test/src/main/resources/h2/data.sql    |   4 +-
 .../manager-web/sql/apache_inlong_manager.sql      |   2 +-
 .../manager/web/auth/impl/InlongShiroImpl.java     |   3 +-
 7 files changed, 24 insertions(+), 282 deletions(-)

diff --git 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/dataproxy/DataProxyClusterSet.java
 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/dataproxy/DataProxyClusterSet.java
deleted file mode 100644
index 8d132dfdb..000000000
--- 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/dataproxy/DataProxyClusterSet.java
+++ /dev/null
@@ -1,260 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.inlong.manager.common.pojo.dataproxy;
-
-import org.apache.inlong.common.pojo.dataproxy.CacheClusterSetObject;
-import org.apache.inlong.common.pojo.dataproxy.InLongIdObject;
-import org.apache.inlong.common.pojo.dataproxy.ProxyChannel;
-import org.apache.inlong.common.pojo.dataproxy.ProxyClusterObject;
-import org.apache.inlong.common.pojo.dataproxy.ProxySink;
-import org.apache.inlong.common.pojo.dataproxy.ProxySource;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * DataProxyClusterSet
- */
-public class DataProxyClusterSet {
-
-    private String setName;
-    private CacheClusterSetObject cacheClusterSet = new 
CacheClusterSetObject();
-    private List<ProxyClusterObject> proxyClusterList = new ArrayList<>();
-    private Map<String, ProxyChannel> proxyChannelMap = new HashMap<>();
-    private Map<String, ProxySource> proxySourceMap = new HashMap<>();
-    private Map<String, ProxySink> proxySinkMap = new HashMap<>();
-    private List<InLongIdObject> inlongIds = new ArrayList<>();
-    private Map<String, Set<String>> proxy2Cache = new HashMap<>();
-    //
-    private String defaultConfigJson;
-    // key: proxyClusterName, value: jsonString
-    private Map<String, String> proxyConfigJson = new HashMap<>();
-    // key: proxyClusterName, value: md5
-    private Map<String, String> md5Map = new HashMap<>();
-
-    /**
-     * get setName
-     *
-     * @return the setName
-     */
-    public String getSetName() {
-        return setName;
-    }
-
-    /**
-     * set setName
-     *
-     * @param setName the setName to set
-     */
-    public void setSetName(String setName) {
-        this.setName = setName;
-    }
-
-    /**
-     * get cacheClusterSet
-     *
-     * @return the cacheClusterSet
-     */
-    public CacheClusterSetObject getCacheClusterSet() {
-        return cacheClusterSet;
-    }
-
-    /**
-     * set cacheClusterSet
-     *
-     * @param cacheClusterSet the cacheClusterSet to set
-     */
-    public void setCacheClusterSet(CacheClusterSetObject cacheClusterSet) {
-        this.cacheClusterSet = cacheClusterSet;
-    }
-
-    /**
-     * get proxyClusterList
-     *
-     * @return the proxyClusterList
-     */
-    public List<ProxyClusterObject> getProxyClusterList() {
-        return proxyClusterList;
-    }
-
-    /**
-     * set proxyClusterList
-     *
-     * @param proxyClusterList the proxyClusterList to set
-     */
-    public void setProxyClusterList(List<ProxyClusterObject> proxyClusterList) 
{
-        this.proxyClusterList = proxyClusterList;
-    }
-
-    /**
-     * get proxyChannelMap
-     *
-     * @return the proxyChannelMap
-     */
-    public Map<String, ProxyChannel> getProxyChannelMap() {
-        return proxyChannelMap;
-    }
-
-    /**
-     * set proxyChannelMap
-     *
-     * @param proxyChannelMap the proxyChannelMap to set
-     */
-    public void setProxyChannelMap(Map<String, ProxyChannel> proxyChannelMap) {
-        this.proxyChannelMap = proxyChannelMap;
-    }
-
-    /**
-     * get defaultConfigJson
-     *
-     * @return the defaultConfigJson
-     */
-    public String getDefaultConfigJson() {
-        return defaultConfigJson;
-    }
-
-    /**
-     * set defaultConfigJson
-     *
-     * @param defaultConfigJson the defaultConfigJson to set
-     */
-    public void setDefaultConfigJson(String defaultConfigJson) {
-        this.defaultConfigJson = defaultConfigJson;
-    }
-
-    /**
-     * get proxySourceMap
-     *
-     * @return the proxySourceMap
-     */
-    public Map<String, ProxySource> getProxySourceMap() {
-        return proxySourceMap;
-    }
-
-    /**
-     * set proxySourceMap
-     *
-     * @param proxySourceMap the proxySourceMap to set
-     */
-    public void setProxySourceMap(Map<String, ProxySource> proxySourceMap) {
-        this.proxySourceMap = proxySourceMap;
-    }
-
-    /**
-     * get proxySinkMap
-     *
-     * @return the proxySinkMap
-     */
-    public Map<String, ProxySink> getProxySinkMap() {
-        return proxySinkMap;
-    }
-
-    /**
-     * set proxySinkMap
-     *
-     * @param proxySinkMap the proxySinkMap to set
-     */
-    public void setProxySinkMap(Map<String, ProxySink> proxySinkMap) {
-        this.proxySinkMap = proxySinkMap;
-    }
-
-    /**
-     * get inlongIds
-     *
-     * @return the inlongIds
-     */
-    public List<InLongIdObject> getInlongIds() {
-        return inlongIds;
-    }
-
-    /**
-     * set inlongIds
-     *
-     * @param inlongIds the inlongIds to set
-     */
-    public void setInlongIds(List<InLongIdObject> inlongIds) {
-        this.inlongIds = inlongIds;
-    }
-
-    /**
-     * get proxy2Cache
-     *
-     * @return the proxy2Cache
-     */
-    public Map<String, Set<String>> getProxy2Cache() {
-        return proxy2Cache;
-    }
-
-    /**
-     * set proxy2Cache
-     *
-     * @param proxy2Cache the proxy2Cache to set
-     */
-    public void setProxy2Cache(Map<String, Set<String>> proxy2Cache) {
-        this.proxy2Cache = proxy2Cache;
-    }
-
-    /**
-     * addProxy2Cache
-     */
-    public void addProxy2Cache(String proxyClusterName, String 
cacheClusterName) {
-        Set<String> cacheNameSet = 
this.proxy2Cache.computeIfAbsent(proxyClusterName, k -> new HashSet<>());
-        cacheNameSet.add(cacheClusterName);
-    }
-
-    /**
-     * get proxyConfigJson
-     *
-     * @return the proxyConfigJson
-     */
-    public Map<String, String> getProxyConfigJson() {
-        return proxyConfigJson;
-    }
-
-    /**
-     * set proxyConfigJson
-     *
-     * @param proxyConfigJson the proxyConfigJson to set
-     */
-    public void setProxyConfigJson(Map<String, String> proxyConfigJson) {
-        this.proxyConfigJson = proxyConfigJson;
-    }
-
-    /**
-     * get md5Map
-     *
-     * @return the md5Map
-     */
-    public Map<String, String> getMd5Map() {
-        return md5Map;
-    }
-
-    /**
-     * set md5Map
-     *
-     * @param md5Map the md5Map to set
-     */
-    public void setMd5Map(Map<String, String> md5Map) {
-        this.md5Map = md5Map;
-    }
-
-}
diff --git 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/util/MD5Utils.java
 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/util/SHAUtils.java
similarity index 79%
rename from 
inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/util/MD5Utils.java
rename to 
inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/util/SHAUtils.java
index a57d94553..ad542b7d7 100644
--- 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/util/MD5Utils.java
+++ 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/util/SHAUtils.java
@@ -25,29 +25,30 @@ import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 
 /**
- * MD5 encryption and decryption utils.
+ * SHA encryption and decryption utils.
  */
 @Slf4j
 @UtilityClass
-public class MD5Utils {
+public class SHAUtils {
 
+    public static final String ALGORITHM_NAME = "SHA-256";
     private static final char[] hexDigits = {'0', '1', '2', '3', '4', '5',
             '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
 
     /**
-     * Get MD5 from the given string.
+     * Get SHA from the given string.
      *
      * @param source string to be encrypted
-     * @return MD5 string after encrypt
+     * @return SHA string after encrypt
      */
-    public static String getMD5String(String source) {
+    public static String getSHAString(String source) {
         if (source == null) {
             return null;
         }
 
         String retString = null;
         try {
-            MessageDigest md = MessageDigest.getInstance("MD5");
+            MessageDigest md = MessageDigest.getInstance(ALGORITHM_NAME);
             md.update(source.getBytes(), 0, source.length());
             byte[] retBytes = md.digest();
 
@@ -66,13 +67,13 @@ public class MD5Utils {
     }
 
     /**
-     * Encrypt the given string by MD5 encryption algorithm.
+     * Encrypt the given string by SHA-256 encryption algorithm.
      *
      * @param source string to be encrypted
-     * @return MD5 string after encrypt
+     * @return SHA string after encrypt
      */
     public static String encrypt(String source) {
-        return new SimpleHash("MD5", source, null, 1024).toHex();
+        return new SimpleHash(ALGORITHM_NAME, source, null, 1024).toHex();
     }
 
 }
diff --git 
a/inlong-manager/manager-common/src/test/java/org/apache/inlong/manager/common/util/MD5UtilsTest.java
 
b/inlong-manager/manager-common/src/test/java/org/apache/inlong/manager/common/util/SHAUtilsTest.java
similarity index 88%
rename from 
inlong-manager/manager-common/src/test/java/org/apache/inlong/manager/common/util/MD5UtilsTest.java
rename to 
inlong-manager/manager-common/src/test/java/org/apache/inlong/manager/common/util/SHAUtilsTest.java
index 8d4c87caf..3bfebf0b8 100644
--- 
a/inlong-manager/manager-common/src/test/java/org/apache/inlong/manager/common/util/MD5UtilsTest.java
+++ 
b/inlong-manager/manager-common/src/test/java/org/apache/inlong/manager/common/util/SHAUtilsTest.java
@@ -20,13 +20,13 @@ package org.apache.inlong.manager.common.util;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
-public class MD5UtilsTest {
+public class SHAUtilsTest {
 
     @Test
-    public void testIsLetterOrPattern() {
+    public void testSHADigest() {
         String str1 = "test_str";
         String str2 = "test_str";
-        Assertions.assertEquals(MD5Utils.encrypt(str1), 
MD5Utils.encrypt(str2));
+        Assertions.assertEquals(SHAUtils.encrypt(str1), 
SHAUtils.encrypt(str2));
     }
 
 }
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/UserServiceImpl.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/UserServiceImpl.java
index e1f52fc6d..9185d536d 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/UserServiceImpl.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/core/impl/UserServiceImpl.java
@@ -32,9 +32,9 @@ import org.apache.inlong.manager.common.util.AESUtils;
 import org.apache.inlong.manager.common.util.CommonBeanUtils;
 import org.apache.inlong.manager.common.util.DateUtils;
 import org.apache.inlong.manager.common.util.LoginUserUtils;
-import org.apache.inlong.manager.common.util.MD5Utils;
 import org.apache.inlong.manager.common.util.Preconditions;
 import org.apache.inlong.manager.common.util.RSAUtils;
+import org.apache.inlong.manager.common.util.SHAUtils;
 import org.apache.inlong.manager.dao.entity.UserEntity;
 import org.apache.inlong.manager.dao.mapper.UserEntityMapper;
 import org.apache.inlong.manager.service.core.UserService;
@@ -72,7 +72,7 @@ public class UserServiceImpl implements UserService {
 
         UserEntity entity = new UserEntity();
         entity.setName(username);
-        entity.setPassword(MD5Utils.encrypt(password));
+        entity.setPassword(SHAUtils.encrypt(password));
         entity.setAccountType(request.getAccountType());
         entity.setDueDate(DateUtils.getExpirationDate(request.getValidDays()));
         String currentUser = LoginUserUtils.getLoginUser().getName();
@@ -196,8 +196,8 @@ public class UserServiceImpl implements UserService {
         // if the current user is not a manager, needs to check the password 
before updating user info
         if (!isAdmin) {
             String oldPassword = request.getPassword();
-            String oldPasswordMd = MD5Utils.encrypt(oldPassword);
-            
Preconditions.checkTrue(oldPasswordMd.equals(updateUserEntity.getPassword()), 
"Old password is wrong");
+            String oldPasswordHash = SHAUtils.encrypt(oldPassword);
+            
Preconditions.checkTrue(oldPasswordHash.equals(updateUserEntity.getPassword()), 
"Old password is wrong");
             Integer validDays = 
DateUtils.getValidDays(updateUserEntity.getCreateTime(), 
updateUserEntity.getDueDate());
             Preconditions.checkTrue((request.getValidDays() <= validDays),
                     "Ordinary users are not allowed to add valid days");
@@ -207,8 +207,8 @@ public class UserServiceImpl implements UserService {
 
         // update password
         if (!StringUtils.isBlank(request.getNewPassword())) {
-            String newPasswordMd5 = MD5Utils.encrypt(request.getNewPassword());
-            updateUserEntity.setPassword(newPasswordMd5);
+            String newPasswordHash = 
SHAUtils.encrypt(request.getNewPassword());
+            updateUserEntity.setPassword(newPasswordHash);
         }
         
updateUserEntity.setDueDate(DateUtils.getExpirationDate(request.getValidDays()));
         updateUserEntity.setAccountType(request.getAccountType());
diff --git a/inlong-manager/manager-test/src/main/resources/h2/data.sql 
b/inlong-manager/manager-test/src/main/resources/h2/data.sql
index e39d20851..218d37108 100644
--- a/inlong-manager/manager-test/src/main/resources/h2/data.sql
+++ b/inlong-manager/manager-test/src/main/resources/h2/data.sql
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 INSERT INTO `user` (`id`, `name`, `password`, `account_type`, `due_date`, 
`creator`, `modifier`)
-VALUES (1, 'admin', '628ed559bff5ae36bd2184d4216973cf', 0, '2099-12-31 
23:59:59', 'inlong_init', 'inlong_init');
+VALUES (1, 'admin', 
'1976e096b31cfda81269d0df2775466aac6dd809e3ada1d5ba7831d85e80f109', 0, 
'2099-12-31 23:59:59', 'inlong_init', 'inlong_init');
 
 INSERT INTO `user` (`id`, `name`, `password`, `account_type`, `due_date`, 
`creator`, `modifier`)
-VALUES (2, 'operator', '628ed559bff5ae36bd2184d4216973cf', 1, '2099-12-31 
23:59:59', 'inlong_init', 'inlong_init');
+VALUES (2, 'operator', 
'1976e096b31cfda81269d0df2775466aac6dd809e3ada1d5ba7831d85e80f109', 1, 
'2099-12-31 23:59:59', 'inlong_init', 'inlong_init');
diff --git a/inlong-manager/manager-web/sql/apache_inlong_manager.sql 
b/inlong-manager/manager-web/sql/apache_inlong_manager.sql
index af5100f52..8b451fbc5 100644
--- a/inlong-manager/manager-web/sql/apache_inlong_manager.sql
+++ b/inlong-manager/manager-web/sql/apache_inlong_manager.sql
@@ -602,7 +602,7 @@ CREATE TABLE IF NOT EXISTS `user`
 -- create default admin user, username is 'admin', password is 'inlong'
 INSERT INTO `user` (name, password, secret_key, account_type, encrypt_version,
                     due_date, creator, modifier)
-VALUES ('admin', '628ed559bff5ae36bd2184d4216973cf', 
'9B5DCE950F284141D5493A2DAFEBD1BFEECE075FC5F426E8B67F33F14876E2D0',
+VALUES ('admin', 
'1976e096b31cfda81269d0df2775466aac6dd809e3ada1d5ba7831d85e80f109', 
'9B5DCE950F284141D5493A2DAFEBD1BFEECE075FC5F426E8B67F33F14876E2D0',
         0, 1, '2099-12-31 23:59:59', 'inlong_init', 'inlong_init');
 
 -- ----------------------------
diff --git 
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/auth/impl/InlongShiroImpl.java
 
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/auth/impl/InlongShiroImpl.java
index fee83cd92..5d5a99995 100644
--- 
a/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/auth/impl/InlongShiroImpl.java
+++ 
b/inlong-manager/manager-web/src/main/java/org/apache/inlong/manager/web/auth/impl/InlongShiroImpl.java
@@ -18,6 +18,7 @@
 package org.apache.inlong.manager.web.auth.impl;
 
 import org.apache.inlong.manager.common.auth.InlongShiro;
+import org.apache.inlong.manager.common.util.SHAUtils;
 import org.apache.inlong.manager.service.core.UserService;
 import org.apache.inlong.manager.web.auth.openapi.OpenAPIAuthenticatingRealm;
 import org.apache.inlong.manager.web.auth.openapi.OpenAPIFilter;
@@ -80,7 +81,7 @@ public class InlongShiroImpl implements InlongShiro {
     @Override
     public CredentialsMatcher getCredentialsMatcher() {
         HashedCredentialsMatcher hashedCredentialsMatcher = new 
HashedCredentialsMatcher();
-        hashedCredentialsMatcher.setHashAlgorithmName("MD5");
+        hashedCredentialsMatcher.setHashAlgorithmName(SHAUtils.ALGORITHM_NAME);
         hashedCredentialsMatcher.setHashIterations(1024);
         return hashedCredentialsMatcher;
     }

Reply via email to