This is an automated email from the ASF dual-hosted git repository.

zhongjiajie pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new 50195c46aa [Improvement-11913] Mask password when creating/editing 
alert instances (#14415)
50195c46aa is described below

commit 50195c46aa35033590c474390b9882bb8e44525e
Author: c3Vu <[email protected]>
AuthorDate: Wed Jun 28 14:10:51 2023 +0800

    [Improvement-11913] Mask password when creating/editing alert instances 
(#14415)
    
    * [Improvement-11913] Mask password when creating/editing alert instances
---
 .../dingtalk/DingTalkAlertChannelFactory.java      |  4 +-
 .../alert/email/EmailAlertChannelFactory.java      |  6 +-
 .../plugin/alert/email/EmailAlertChannelTest.java  |  4 +-
 .../alert/feishu/FeiShuAlertChannelFactory.java    |  4 +-
 .../telegram/TelegramAlertChannelFactory.java      |  4 +-
 .../dolphinscheduler/spi/params/PasswordParam.java | 87 ----------------------
 .../spi/params/PluginParamsTransferTest.java       | 13 +++-
 7 files changed, 19 insertions(+), 103 deletions(-)

diff --git 
a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-dingtalk/src/main/java/org/apache/dolphinscheduler/plugin/alert/dingtalk/DingTalkAlertChannelFactory.java
 
b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-dingtalk/src/main/java/org/apache/dolphinscheduler/plugin/alert/dingtalk/DingTalkAlertChannelFactory.java
index 95dd2042a2..4bf8b59d64 100644
--- 
a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-dingtalk/src/main/java/org/apache/dolphinscheduler/plugin/alert/dingtalk/DingTalkAlertChannelFactory.java
+++ 
b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-dingtalk/src/main/java/org/apache/dolphinscheduler/plugin/alert/dingtalk/DingTalkAlertChannelFactory.java
@@ -25,7 +25,6 @@ import static 
org.apache.dolphinscheduler.common.constants.Constants.STRING_YES;
 import org.apache.dolphinscheduler.alert.api.AlertChannel;
 import org.apache.dolphinscheduler.alert.api.AlertChannelFactory;
 import org.apache.dolphinscheduler.alert.api.AlertInputTips;
-import org.apache.dolphinscheduler.spi.params.PasswordParam;
 import org.apache.dolphinscheduler.spi.params.base.DataType;
 import org.apache.dolphinscheduler.spi.params.base.ParamsOptions;
 import org.apache.dolphinscheduler.spi.params.base.PluginParams;
@@ -136,9 +135,10 @@ public final class DingTalkAlertChannelFactory implements 
AlertChannelFactory {
                         .setRequired(false)
                         .build())
                 .build();
-        PasswordParam passwordParam = PasswordParam
+        InputParam passwordParam = InputParam
                 .newBuilder(DingTalkParamsConstants.NAME_DING_TALK_PASSWORD, 
DingTalkParamsConstants.DING_TALK_PASSWORD)
                 .setPlaceholder(AlertInputTips.PASSWORD.getMsg())
+                .setType("password")
                 .build();
 
         return Arrays.asList(webHookParam, keywordParam, secretParam, 
msgTypeParam, atMobilesParam, atUserIdsParam,
diff --git 
a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-email/src/main/java/org/apache/dolphinscheduler/plugin/alert/email/EmailAlertChannelFactory.java
 
b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-email/src/main/java/org/apache/dolphinscheduler/plugin/alert/email/EmailAlertChannelFactory.java
index 638aff3b6e..b82860b1ad 100644
--- 
a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-email/src/main/java/org/apache/dolphinscheduler/plugin/alert/email/EmailAlertChannelFactory.java
+++ 
b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-email/src/main/java/org/apache/dolphinscheduler/plugin/alert/email/EmailAlertChannelFactory.java
@@ -27,7 +27,6 @@ import 
org.apache.dolphinscheduler.alert.api.AlertChannelFactory;
 import org.apache.dolphinscheduler.alert.api.AlertConstants;
 import org.apache.dolphinscheduler.alert.api.AlertInputTips;
 import org.apache.dolphinscheduler.alert.api.ShowType;
-import org.apache.dolphinscheduler.spi.params.PasswordParam;
 import org.apache.dolphinscheduler.spi.params.base.DataType;
 import org.apache.dolphinscheduler.spi.params.base.ParamsOptions;
 import org.apache.dolphinscheduler.spi.params.base.PluginParams;
@@ -97,9 +96,10 @@ public final class EmailAlertChannelFactory implements 
AlertChannelFactory {
                 .setPlaceholder(AlertInputTips.USERNAME.getMsg())
                 .build();
 
-        PasswordParam mailPassword =
-                PasswordParam.newBuilder(MailParamsConstants.NAME_MAIL_PASSWD, 
MailParamsConstants.MAIL_PASSWD)
+        InputParam mailPassword =
+                InputParam.newBuilder(MailParamsConstants.NAME_MAIL_PASSWD, 
MailParamsConstants.MAIL_PASSWD)
                         .setPlaceholder(AlertInputTips.PASSWORD.getMsg())
+                        .setType("password")
                         .build();
 
         RadioParam enableTls = RadioParam
diff --git 
a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-email/src/test/java/org/apache/dolphinscheduler/plugin/alert/email/EmailAlertChannelTest.java
 
b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-email/src/test/java/org/apache/dolphinscheduler/plugin/alert/email/EmailAlertChannelTest.java
index 3c14f3adec..9df19154aa 100644
--- 
a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-email/src/test/java/org/apache/dolphinscheduler/plugin/alert/email/EmailAlertChannelTest.java
+++ 
b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-email/src/test/java/org/apache/dolphinscheduler/plugin/alert/email/EmailAlertChannelTest.java
@@ -23,7 +23,6 @@ import org.apache.dolphinscheduler.alert.api.AlertInfo;
 import org.apache.dolphinscheduler.alert.api.AlertResult;
 import org.apache.dolphinscheduler.alert.api.ShowType;
 import org.apache.dolphinscheduler.common.utils.JSONUtils;
-import org.apache.dolphinscheduler.spi.params.PasswordParam;
 import org.apache.dolphinscheduler.spi.params.PluginParamsTransfer;
 import org.apache.dolphinscheduler.spi.params.base.ParamsOptions;
 import org.apache.dolphinscheduler.spi.params.base.PluginParams;
@@ -107,9 +106,8 @@ public class EmailAlertChannelTest {
                 .setValue("[email protected]")
                 .build();
 
-        PasswordParam mailPassword = 
PasswordParam.newBuilder(MailParamsConstants.NAME_MAIL_PASSWD, "passwd")
+        InputParam mailPassword = 
InputParam.newBuilder(MailParamsConstants.NAME_MAIL_PASSWD, "passwd")
                 .setPlaceholder("if enable use authentication, you need input 
password")
-                .setValue("escheduler123")
                 .build();
 
         RadioParam enableTls =
diff --git 
a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuAlertChannelFactory.java
 
b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuAlertChannelFactory.java
index d6e888f499..016cfa9a70 100644
--- 
a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuAlertChannelFactory.java
+++ 
b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-feishu/src/main/java/org/apache/dolphinscheduler/plugin/alert/feishu/FeiShuAlertChannelFactory.java
@@ -25,7 +25,6 @@ import static 
org.apache.dolphinscheduler.common.constants.Constants.STRING_YES;
 import org.apache.dolphinscheduler.alert.api.AlertChannel;
 import org.apache.dolphinscheduler.alert.api.AlertChannelFactory;
 import org.apache.dolphinscheduler.alert.api.AlertInputTips;
-import org.apache.dolphinscheduler.spi.params.PasswordParam;
 import org.apache.dolphinscheduler.spi.params.base.DataType;
 import org.apache.dolphinscheduler.spi.params.base.ParamsOptions;
 import org.apache.dolphinscheduler.spi.params.base.PluginParams;
@@ -85,9 +84,10 @@ public final class FeiShuAlertChannelFactory implements 
AlertChannelFactory {
                         .addValidate(Validate.newBuilder()
                                 .setRequired(false).build())
                         .build();
-        PasswordParam passwordParam = PasswordParam
+        InputParam passwordParam = InputParam
                 .newBuilder(FeiShuParamsConstants.NAME_FEI_SHU_PASSWORD, 
FeiShuParamsConstants.FEI_SHU_PASSWORD)
                 .setPlaceholder(AlertInputTips.PASSWORD.getMsg())
+                .setType("password")
                 .build();
 
         return Arrays.asList(webHookParam, isEnableProxy, proxyParam, 
portParam, userParam, passwordParam);
diff --git 
a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-telegram/src/main/java/org/apache/dolphinscheduler/plugin/alert/telegram/TelegramAlertChannelFactory.java
 
b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-telegram/src/main/java/org/apache/dolphinscheduler/plugin/alert/telegram/TelegramAlertChannelFactory.java
index 8dcf36dd89..284ecee8fa 100644
--- 
a/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-telegram/src/main/java/org/apache/dolphinscheduler/plugin/alert/telegram/TelegramAlertChannelFactory.java
+++ 
b/dolphinscheduler-alert/dolphinscheduler-alert-plugins/dolphinscheduler-alert-telegram/src/main/java/org/apache/dolphinscheduler/plugin/alert/telegram/TelegramAlertChannelFactory.java
@@ -25,7 +25,6 @@ import static 
org.apache.dolphinscheduler.common.constants.Constants.STRING_YES;
 import org.apache.dolphinscheduler.alert.api.AlertChannel;
 import org.apache.dolphinscheduler.alert.api.AlertChannelFactory;
 import org.apache.dolphinscheduler.alert.api.AlertInputTips;
-import org.apache.dolphinscheduler.spi.params.PasswordParam;
 import org.apache.dolphinscheduler.spi.params.base.DataType;
 import org.apache.dolphinscheduler.spi.params.base.ParamsOptions;
 import org.apache.dolphinscheduler.spi.params.base.PluginParams;
@@ -131,12 +130,13 @@ public final class TelegramAlertChannelFactory implements 
AlertChannelFactory {
                                 .build())
                         .build();
 
-        PasswordParam passwordParam = PasswordParam
+        InputParam passwordParam = InputParam
                 .newBuilder(TelegramParamsConstants.NAME_TELEGRAM_PASSWORD, 
TelegramParamsConstants.TELEGRAM_PASSWORD)
                 .addValidate(Validate.newBuilder()
                         .setRequired(false)
                         .build())
                 .setPlaceholder("if enable use authentication, you need input 
password")
+                .setType("password")
                 .build();
 
         return Arrays.asList(webHookParam, botTokenParam, chatIdParam, 
parseMode, isEnableProxy, proxyParam, portParam,
diff --git 
a/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/params/PasswordParam.java
 
b/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/params/PasswordParam.java
deleted file mode 100644
index 5516470504..0000000000
--- 
a/dolphinscheduler-spi/src/main/java/org/apache/dolphinscheduler/spi/params/PasswordParam.java
+++ /dev/null
@@ -1,87 +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.dolphinscheduler.spi.params;
-
-import org.apache.dolphinscheduler.spi.params.base.FormType;
-import org.apache.dolphinscheduler.spi.params.base.ParamsProps;
-import org.apache.dolphinscheduler.spi.params.base.PluginParams;
-import org.apache.dolphinscheduler.spi.params.base.Validate;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * password param
- */
-public class PasswordParam extends PluginParams {
-
-    private PasswordParam(Builder builder) {
-        super(builder);
-    }
-
-    public static Builder newBuilder(String name, String title) {
-        return new Builder(name, title);
-    }
-
-    public static class Builder extends PluginParams.Builder {
-
-        public Builder(String name, String title) {
-            super(name, FormType.INPUT, title);
-            ParamsProps paramsProps = new ParamsProps();
-            this.props = paramsProps;
-        }
-
-        public Builder setPlaceholder(String placeholder) {
-            this.props.setPlaceholder(placeholder);
-            return this;
-        }
-
-        public Builder addValidate(Validate validate) {
-            if (this.validateList == null) {
-                this.validateList = new ArrayList<>();
-            }
-            this.validateList.add(validate);
-            return this;
-        }
-
-        public Builder setName(String name) {
-            this.name = name;
-            return this;
-        }
-
-        public Builder setTitle(String title) {
-            this.title = title;
-            return this;
-        }
-
-        public Builder setValue(Object value) {
-            this.value = value;
-            return this;
-        }
-
-        public Builder setValidateList(List<Validate> validateList) {
-            this.validateList = validateList;
-            return this;
-        }
-
-        @Override
-        public PasswordParam build() {
-            return new PasswordParam(this);
-        }
-    }
-}
diff --git 
a/dolphinscheduler-spi/src/test/java/org/apache/dolphinscheduler/spi/params/PluginParamsTransferTest.java
 
b/dolphinscheduler-spi/src/test/java/org/apache/dolphinscheduler/spi/params/PluginParamsTransferTest.java
index 72fae3d56d..d058943d49 100644
--- 
a/dolphinscheduler-spi/src/test/java/org/apache/dolphinscheduler/spi/params/PluginParamsTransferTest.java
+++ 
b/dolphinscheduler-spi/src/test/java/org/apache/dolphinscheduler/spi/params/PluginParamsTransferTest.java
@@ -86,8 +86,9 @@ public class PluginParamsTransferTest {
                 .setPlaceholder("if enable use authentication, you need input 
user")
                 .build();
 
-        PasswordParam mailPassword = new PasswordParam.Builder("field8", 
"field8")
+        InputParam mailPassword = new InputParam.Builder("field8", "field8")
                 .setPlaceholder("if enable use authentication, you need input 
password")
+                .setType("password")
                 .build();
 
         RadioParam enableTls = new RadioParam.Builder("field9", "field9")
@@ -160,9 +161,13 @@ public class PluginParamsTransferTest {
                 + 
"\"validateEvent\":null,\"showPassword\":null,\"placeholder\":\"if enable use 
authentication, "
                 + "you need input 
user\",\"size\":\"small\"},\"field\":\"field7\",\"name\":\"field7\","
                 + 
"\"type\":\"input\",\"title\":\"field7\",\"value\":null,\"validate\":null,\"emit\":null},"
-                + 
"{\"field\":\"field8\",\"name\":\"field8\",\"props\":{\"disabled\":null,\"placeholder\":"
-                + "\"if enable use authentication, you need input 
password\",\"size\":\"small\"},\"type\":"
-                + 
"\"input\",\"title\":\"field8\",\"value\":null,\"validate\":null,\"emit\":null},{\"props\":"
+                + 
"{\"props\":{\"disabled\":null,\"type\":\"password\",\"maxlength\":null,\"minlength\":null,\""
+                + 
"clearable\":null,\"prefixIcon\":null,\"suffixIcon\":null,\"rows\":null,\"autosize\":null,"
+                + 
"\"autocomplete\":null,\"name\":null,\"readonly\":null,\"max\":null,\"min\":null,\"step\":null,"
+                + 
"\"resize\":null,\"autofocus\":null,\"form\":null,\"label\":null,\"tabindex\":null,\"validateEvent\":null,"
+                + "\"showPassword\":null,\"placeholder\":\"if enable use 
authentication, you need input password\","
+                + 
"\"size\":\"small\"},\"field\":\"field8\",\"name\":\"field8\",\"type\":\"input\",\"title\":\"field8\","
+                + "\"value\":null,\"validate\":null,\"emit\":null},{\"props\":"
                 + 
"null,\"field\":\"field9\",\"name\":\"field9\",\"type\":\"radio\",\"title\":\"field9\","
                 + 
"\"value\":false,\"validate\":[{\"required\":true,\"message\":null,\"type\":\"string\","
                 + 
"\"trigger\":\"blur\",\"min\":null,\"max\":null}],\"emit\":null,\"options\":[{\"label\":"

Reply via email to