소스 검색

支持 mysql_clear_password 明文密码模式, 在一些开发、测试环境可能遇上。 (#4628)

Co-authored-by: zhongfu <zhongfu@tesla.com>
fuzhong-jiye 2 년 전
부모
커밋
9edbe7e827
1개의 변경된 파일4개의 추가작업 그리고 2개의 파일을 삭제
  1. 4 2
      driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/MysqlConnector.java

+ 4 - 2
driver/src/main/java/com/alibaba/otter/canal/parse/driver/mysql/MysqlConnector.java

@@ -224,13 +224,15 @@ public class MysqlConnector {
 
             boolean isSha2Password = false;
             byte[] encryptedPassword = null;
-            if (pluginName != null && "mysql_native_password".equals(pluginName)) {
+            if ("mysql_clear_password".equals(pluginName)) {
+                encryptedPassword = getPassword().getBytes();
+            } else if ("mysql_native_password".equals(pluginName)) {
                 try {
                     encryptedPassword = MySQLPasswordEncrypter.scramble411(getPassword().getBytes(), authData);
                 } catch (NoSuchAlgorithmException e) {
                     throw new RuntimeException("can't encrypt password that will be sent to MySQL server.", e);
                 }
-            } else if (pluginName != null && "caching_sha2_password".equals(pluginName)) {
+            } else if ("caching_sha2_password".equals(pluginName)) {
                 isSha2Password = true;
                 try {
                     encryptedPassword = MySQLPasswordEncrypter.scrambleCachingSha2(getPassword().getBytes(), authData);