avoid print password when logging (#3969)

This commit is contained in:
willmao
2022-05-13 11:28:05 +08:00
committed by GitHub
parent 2623d08b8c
commit 8804647c30
@@ -2,6 +2,7 @@ package com.alibaba.otter.canal.admin.connector;
import java.util.function.Function;
import org.assertj.core.util.Strings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.env.Environment;
@@ -26,7 +27,8 @@ public class SimpleAdminConnectors {
connector.connect();
return function.apply(connector);
} catch (Exception e) {
logger.error("connect to ip:{},port:{},user:{},password:{}, failed", ip, port, user, passwd);
logger.error("connect to ip:{},port:{},user:{},password:{}, failed",
ip, port, user, getDesensitizationPassword(passwd));
logger.error(e.getMessage());
} finally {
connector.disconnect();
@@ -34,4 +36,14 @@ public class SimpleAdminConnectors {
return null;
}
private static String getDesensitizationPassword(String password) {
String defaultPassword = "******";
if (Strings.isNullOrEmpty(password) || password.length() < 6) {
return defaultPassword;
} else {
return String.format("%s******", password.substring(0, 3));
}
}
}