From 53c2a02124a3f17410056e7561082f540724e62c Mon Sep 17 00:00:00 2001 From: shichengming Date: Tue, 9 Oct 2018 16:49:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E7=9B=AE=E6=A0=87?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E5=AF=86=E7=A0=81=E5=8A=A0=E5=AF=86?= =?UTF-8?q?=E8=A7=A3=E5=AF=86=EF=BC=8C=E9=87=87=E7=94=A8druid=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=E8=BF=9B=E8=A1=8C=E5=8A=A0=E5=AF=86=E8=A7=A3=E5=AF=86?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E8=AE=BE=E7=BD=AEcanal.instance.enableDruid?= =?UTF-8?q?=3Dtrue=E6=97=B6=EF=BC=8C=E8=AF=B7=E4=BD=BF=E7=94=A8druid?= =?UTF-8?q?=E5=8A=A0=E5=AF=86=E6=95=B0=E6=8D=AE=E5=BA=93=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E3=80=82false=E6=97=B6=EF=BC=8C=E5=B0=B1=E6=98=AF=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E6=98=8E=E6=96=87=E5=AF=86=E7=A0=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/example/instance.properties | 8 +++-- .../resources/spring/default-instance.xml | 8 +++-- .../main/resources/spring/file-instance.xml | 10 ++++-- .../main/resources/spring/group-instance.xml | 16 +++++++--- .../main/resources/spring/memory-instance.xml | 10 ++++-- .../test/resources/retl/instance.properties | 5 ++- .../parse/support/AuthenticationInfo.java | 31 +++++++++++++++++-- 7 files changed, 71 insertions(+), 17 deletions(-) diff --git a/deployer/src/main/resources/example/instance.properties b/deployer/src/main/resources/example/instance.properties index f72b65fe..81f78b65 100644 --- a/deployer/src/main/resources/example/instance.properties +++ b/deployer/src/main/resources/example/instance.properties @@ -31,8 +31,12 @@ canal.instance.tsdb.enable=true # username/password canal.instance.dbUsername=canal -canal.instance.dbPassword=canal -canal.instance.connectionCharset=UTF-8 +canal.instance.dbPassword=cZozNf1mzW6EQLGO2q9u99619xbZLO0fbua3EX08r4BWNXb8lAt1aHrTEOBttd6UY8Vnuc0easlVXZDdLtt8BQ== +canal.instance.pwdPublicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALK4BUxdDltRRE5/zXpVEVPUgunvscYFtEip3pmLlhrWpacX7y7GCMo2/JM6LeHmiiNdH1FWgGCpUfircSwlWKUCAwEAAQ== +canal.instance.connectionCharset = UTF-8 +canal.instance.defaultDatabaseName =test +# enable druid Decrypt database password +canal.instance.enableDruid=true # table regex canal.instance.filter.regex=.*\\..* diff --git a/deployer/src/main/resources/spring/default-instance.xml b/deployer/src/main/resources/spring/default-instance.xml index 07b9109d..95ec6a29 100644 --- a/deployer/src/main/resources/spring/default-instance.xml +++ b/deployer/src/main/resources/spring/default-instance.xml @@ -126,18 +126,22 @@ - + + + - + + + diff --git a/deployer/src/main/resources/spring/file-instance.xml b/deployer/src/main/resources/spring/file-instance.xml index 58dd32c9..df30174a 100644 --- a/deployer/src/main/resources/spring/file-instance.xml +++ b/deployer/src/main/resources/spring/file-instance.xml @@ -111,22 +111,26 @@ - + + + - + + + - + diff --git a/deployer/src/main/resources/spring/group-instance.xml b/deployer/src/main/resources/spring/group-instance.xml index 47d3ba33..71788f66 100644 --- a/deployer/src/main/resources/spring/group-instance.xml +++ b/deployer/src/main/resources/spring/group-instance.xml @@ -108,18 +108,22 @@ - + + + - + + + @@ -206,18 +210,22 @@ - + + + - + + + diff --git a/deployer/src/main/resources/spring/memory-instance.xml b/deployer/src/main/resources/spring/memory-instance.xml index 428454db..751e9f4b 100644 --- a/deployer/src/main/resources/spring/memory-instance.xml +++ b/deployer/src/main/resources/spring/memory-instance.xml @@ -96,21 +96,25 @@ - + - + + + - + + + diff --git a/instance/spring/src/test/resources/retl/instance.properties b/instance/spring/src/test/resources/retl/instance.properties index 62ba5c4c..afc34305 100644 --- a/instance/spring/src/test/resources/retl/instance.properties +++ b/instance/spring/src/test/resources/retl/instance.properties @@ -27,9 +27,12 @@ canal.instance.master2.timestamp = # username/password canal.instance.dbUsername = xxxxx -canal.instance.dbPassword = xxxxx +canal.instance.dbPassword=cZozNf1mzW6EQLGO2q9u99619xbZLO0fbua3EX08r4BWNXb8lAt1aHrTEOBttd6UY8Vnuc0easlVXZDdLtt8BQ== +canal.instance.pwdPublicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALK4BUxdDltRRE5/zXpVEVPUgunvscYFtEip3pmLlhrWpacX7y7GCMo2/JM6LeHmiiNdH1FWgGCpUfircSwlWKUCAwEAAQ== canal.instance.defaultDatabaseName = canal.instance.connectionCharset = UTF-8 +# enable druid Decrypt database password +canal.instance.enableDruid=true # table regex canal.instance.filter.regex = .*\\..* diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/support/AuthenticationInfo.java b/parse/src/main/java/com/alibaba/otter/canal/parse/support/AuthenticationInfo.java index 5446d068..6b12ef0d 100644 --- a/parse/src/main/java/com/alibaba/otter/canal/parse/support/AuthenticationInfo.java +++ b/parse/src/main/java/com/alibaba/otter/canal/parse/support/AuthenticationInfo.java @@ -2,21 +2,32 @@ package com.alibaba.otter.canal.parse.support; import java.net.InetSocketAddress; +import com.alibaba.druid.filter.config.ConfigTools; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; /** * 数据库认证信息 - * + * * @author jianghang 2012-7-11 上午11:22:19 * @version 1.0.0 */ public class AuthenticationInfo { + + private InetSocketAddress address; // 主库信息 private String username; // 帐号 private String password; // 密码 - private String defaultDatabaseName; // 默认链接的数据库 + private String defaultDatabaseName;// 默认链接的数据库 + private String pwdPublicKey; //公钥 + private boolean enableDruid; //是否使用druid加密解密数据库密码 + + public void initPwd() throws Exception{ + if (enableDruid) { + this.password = ConfigTools.decrypt(pwdPublicKey, password); + } + } public AuthenticationInfo(){ super(); @@ -65,6 +76,22 @@ public class AuthenticationInfo { this.defaultDatabaseName = defaultDatabaseName; } + public String getPwdPublicKey() { + return pwdPublicKey; + } + + public void setPwdPublicKey(String pwdPublicKey) { + this.pwdPublicKey = pwdPublicKey; + } + + public boolean isEnableDruid() { + return enableDruid; + } + + public void setEnableDruid(boolean enableDruid) { + this.enableDruid = enableDruid; + } + @Override public String toString() { return ToStringBuilder.reflectionToString(this, ToStringStyle.DEFAULT_STYLE);