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;
}