Skip to content

Commit 8804647

Browse files
authored
avoid print password when logging (#3969)
1 parent 2623d08 commit 8804647

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

admin/admin-web/src/main/java/com/alibaba/otter/canal/admin/connector/SimpleAdminConnectors.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.util.function.Function;
44

5+
import org.assertj.core.util.Strings;
56
import org.slf4j.Logger;
67
import org.slf4j.LoggerFactory;
78
import org.springframework.core.env.Environment;
@@ -26,12 +27,23 @@ public static <R> R execute(String ip, int port, String user, String passwd, Fun
2627
connector.connect();
2728
return function.apply(connector);
2829
} catch (Exception e) {
29-
logger.error("connect to ip:{},port:{},user:{},password:{}, failed", ip, port, user, passwd);
30+
logger.error("connect to ip:{},port:{},user:{},password:{}, failed",
31+
ip, port, user, getDesensitizationPassword(passwd));
3032
logger.error(e.getMessage());
3133
} finally {
3234
connector.disconnect();
3335
}
3436

3537
return null;
3638
}
39+
40+
private static String getDesensitizationPassword(String password) {
41+
String defaultPassword = "******";
42+
43+
if (Strings.isNullOrEmpty(password) || password.length() < 6) {
44+
return defaultPassword;
45+
} else {
46+
return String.format("%s******", password.substring(0, 3));
47+
}
48+
}
3749
}

0 commit comments

Comments
 (0)