Ver código fonte

fix 安全优化

ct 1 semana atrás
pai
commit
54adc6c421
100 arquivos alterados com 575 adições e 439 exclusões
  1. 4 0
      .gitignore
  2. 9 3
      fs-admin/src/main/java/com/fs/course/task/VideoTask.java
  3. 1 22
      fs-admin/src/main/java/com/fs/web/controller/common/CommonController.java
  4. 11 9
      fs-common/src/main/java/com/fs/common/utils/RedwoodCryptoUtil.java
  5. 1 0
      fs-company/src/main/java/com/fs/framework/config/SecurityConfig.java
  6. 1 0
      fs-framework/src/main/java/com/fs/framework/config/SecurityConfig.java
  7. 1 1
      fs-ipad-task/src/main/java/com/fs/framework/config/SecurityConfig.java
  8. 1 0
      fs-qw-api-msg/src/main/java/com/fs/framework/config/SecurityConfig.java
  9. 1 0
      fs-qw-api/src/main/java/com/fs/framework/config/SecurityConfig.java
  10. 1 1
      fs-qw-task/src/main/java/com/fs/framework/config/SecurityConfig.java
  11. 20 12
      fs-service/src/main/java/com/fs/ai/service/impl/BaiduAIServiceImpl.java
  12. 1 1
      fs-service/src/main/java/com/fs/company/mapper/CompanyDeptMapper.java
  13. 2 2
      fs-service/src/main/java/com/fs/company/mapper/CompanyUserMapper.java
  14. 7 6
      fs-service/src/main/java/com/fs/config/tencent/TencentProperties.java
  15. 12 81
      fs-service/src/main/java/com/fs/course/GetObjectDemo.java
  16. 1 1
      fs-service/src/main/java/com/fs/course/mapper/FsUserCoursePeriodMapper.java
  17. 18 0
      fs-service/src/main/java/com/fs/course/param/FsCourseWatchLogListParam.java
  18. 27 5
      fs-service/src/main/java/com/fs/course/service/impl/HuaweiCloudStatisticsServiceImpl.java
  19. 57 29
      fs-service/src/main/java/com/fs/course/service/impl/HuaweiObsServiceImpl.java
  20. 34 12
      fs-service/src/main/java/com/fs/course/service/impl/HuaweiVodServiceImpl.java
  21. 10 1
      fs-service/src/main/java/com/fs/feishu/util/SecureTokenUtil.java
  22. 2 3
      fs-service/src/main/java/com/fs/his/mapper/FsStoreOrderMapper.java
  23. 31 24
      fs-service/src/main/java/com/fs/his/utils/PhoneUtil.java
  24. 2 3
      fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreOrderScrmMapper.java
  25. 2 3
      fs-service/src/main/java/com/fs/live/mapper/LiveOrderMapper.java
  26. 20 2
      fs-service/src/main/java/com/fs/live/service/impl/LiveDataServiceImpl.java
  27. 26 8
      fs-service/src/main/java/com/fs/nuonuo/NuonuoUtils.java
  28. 1 1
      fs-service/src/main/java/com/fs/qw/mapper/QwExternalContactMapper.java
  29. 18 13
      fs-service/src/main/java/com/fs/qw/mapper/QwWatchLogMapper.java
  30. 18 0
      fs-service/src/main/java/com/fs/qw/param/QwWatchLogStatisticsListParam.java
  31. 10 1
      fs-service/src/main/java/com/fs/qw/utils/HMACAuth.java
  32. 8 1
      fs-service/src/main/java/com/fs/sms/service/impl/SmsTServiceImpl.java
  33. 9 4
      fs-service/src/main/java/com/fs/tulin/utils/SyncStudentInfoService.java
  34. 10 5
      fs-service/src/main/java/com/fs/tzBankPay/form/GetTokenForm.java
  35. 8 3
      fs-service/src/main/java/com/fs/tzBankPay/form/RequestAPIForm.java
  36. 16 11
      fs-service/src/main/java/com/fs/voice/constant/Constant.java
  37. 9 6
      fs-service/src/main/resources/application-config-druid-jnmy.yml
  38. 3 3
      fs-service/src/main/resources/application-dev-czt.yml
  39. 3 3
      fs-service/src/main/resources/application-dev-jnlzjk.yml
  40. 3 3
      fs-service/src/main/resources/application-dev-yjb.yml
  41. 3 3
      fs-service/src/main/resources/application-dev.yml
  42. 2 2
      fs-service/src/main/resources/application-druid-bjczwh.yml
  43. 2 2
      fs-service/src/main/resources/application-druid-bjzm-test.yml
  44. 3 3
      fs-service/src/main/resources/application-druid-bjzm.yml
  45. 2 2
      fs-service/src/main/resources/application-druid-bly-test.yml
  46. 3 3
      fs-service/src/main/resources/application-druid-bly.yml
  47. 2 2
      fs-service/src/main/resources/application-druid-bnkc-test.yml
  48. 3 3
      fs-service/src/main/resources/application-druid-bnkc.yml
  49. 2 2
      fs-service/src/main/resources/application-druid-cfryt-test.yml
  50. 2 2
      fs-service/src/main/resources/application-druid-cfryt.yml
  51. 2 2
      fs-service/src/main/resources/application-druid-cqtyt-test.yml
  52. 3 3
      fs-service/src/main/resources/application-druid-cqtyt.yml
  53. 3 3
      fs-service/src/main/resources/application-druid-czt.yml
  54. 3 3
      fs-service/src/main/resources/application-druid-ddgy.yml
  55. 2 2
      fs-service/src/main/resources/application-druid-drk-test.yml
  56. 3 3
      fs-service/src/main/resources/application-druid-drk.yml
  57. 3 3
      fs-service/src/main/resources/application-druid-fby.yml
  58. 3 3
      fs-service/src/main/resources/application-druid-fzbt.yml
  59. 2 2
      fs-service/src/main/resources/application-druid-gzzdy.yml
  60. 3 3
      fs-service/src/main/resources/application-druid-hat.yml
  61. 3 3
      fs-service/src/main/resources/application-druid-hcl.yml
  62. 3 3
      fs-service/src/main/resources/application-druid-hdt.yml
  63. 2 2
      fs-service/src/main/resources/application-druid-heyantang-test.yml
  64. 3 3
      fs-service/src/main/resources/application-druid-heyantang.yml
  65. 3 3
      fs-service/src/main/resources/application-druid-hst.yml
  66. 2 2
      fs-service/src/main/resources/application-druid-hsyy.yml
  67. 2 2
      fs-service/src/main/resources/application-druid-hyt-test.yml
  68. 3 3
      fs-service/src/main/resources/application-druid-hyt.yml
  69. 3 3
      fs-service/src/main/resources/application-druid-hzyy.yml
  70. 2 2
      fs-service/src/main/resources/application-druid-jkj.yml
  71. 2 2
      fs-service/src/main/resources/application-druid-jnlzjk.yml
  72. 3 3
      fs-service/src/main/resources/application-druid-jnmy-test.yml
  73. 3 3
      fs-service/src/main/resources/application-druid-jnmy.yml
  74. 2 2
      fs-service/src/main/resources/application-druid-jnsyj-test.yml
  75. 3 3
      fs-service/src/main/resources/application-druid-jnsyj.yml
  76. 2 2
      fs-service/src/main/resources/application-druid-jzzx-test.yml
  77. 3 3
      fs-service/src/main/resources/application-druid-jzzx.yml
  78. 2 2
      fs-service/src/main/resources/application-druid-knt-test.yml
  79. 3 3
      fs-service/src/main/resources/application-druid-knt.yml
  80. 3 3
      fs-service/src/main/resources/application-druid-knt2.yml
  81. 3 3
      fs-service/src/main/resources/application-druid-kyt.yml
  82. 2 2
      fs-service/src/main/resources/application-druid-lmjy-test.yml
  83. 3 3
      fs-service/src/main/resources/application-druid-lmjy.yml
  84. 2 2
      fs-service/src/main/resources/application-druid-myhk-test.yml
  85. 3 3
      fs-service/src/main/resources/application-druid-myhk.yml
  86. 2 2
      fs-service/src/main/resources/application-druid-nmgyt-test.yml
  87. 3 3
      fs-service/src/main/resources/application-druid-nmgyt.yml
  88. 2 2
      fs-service/src/main/resources/application-druid-qdtst-test.yml
  89. 3 3
      fs-service/src/main/resources/application-druid-qdtst.yml
  90. 3 3
      fs-service/src/main/resources/application-druid-sczy.yml
  91. 2 2
      fs-service/src/main/resources/application-druid-sft-test.yml
  92. 3 3
      fs-service/src/main/resources/application-druid-sft.yml
  93. 2 2
      fs-service/src/main/resources/application-druid-shdn.yml
  94. 3 3
      fs-service/src/main/resources/application-druid-sxjz.yml
  95. 2 2
      fs-service/src/main/resources/application-druid-syysy-test.yml
  96. 3 3
      fs-service/src/main/resources/application-druid-syysy.yml
  97. 3 3
      fs-service/src/main/resources/application-druid-whhm.yml
  98. 3 3
      fs-service/src/main/resources/application-druid-xfk.yml
  99. 3 3
      fs-service/src/main/resources/application-druid-xzt.yml
  100. 3 3
      fs-service/src/main/resources/application-druid-yjb.yml

+ 4 - 0
.gitignore

@@ -8,6 +8,10 @@ target/
 #logback.xml
 application.yml
 
+# 本地密钥(可提交 scrm.env.example,勿提交真实 scrm.env)
+scrm.env
+*.env.local
+
 ### STS ###
 .apt_generated
 .classpath

+ 9 - 3
fs-admin/src/main/java/com/fs/course/task/VideoTask.java

@@ -40,8 +40,6 @@ import java.util.*;
 @Slf4j
 public class VideoTask {
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
-    private static final String YL_SECRET_ID = "AKIDiMq9lDf2EOM9lIfqqfKo7FNgM5meD0sT";
-    private static final String YL_SECRET_KEY = "u5SuS80342xzx8FRBukza9lVNHKNMSaB";
     private static final String LIKE_KEY_PREFIX = "like:video:";
     private static final String UNLIKE_KEY_PREFIX = "unlike:video:";
     private static final String FAVORITE_KEY_PREFIX = "favorite:video:";
@@ -50,6 +48,8 @@ public class VideoTask {
     private static final String VIDEO_COMMENT_COUNT_KEY_PATTERN = "comment:count:video:*";
     private static final String COMMENT_REPLY_COUNT_KEY_PATTERN = "reply:count:comment:*";
     @Autowired
+    private com.fs.config.tencent.TencentProperties tencentProperties;
+    @Autowired
     private FsUserVideoMapper videoMapper;
     @Autowired
     private FsUserVideoLikeMapper videoLikeMapper;
@@ -239,7 +239,13 @@ public class VideoTask {
         List<FsUserCourseVideo> videos  = courseVideoMapper.selectVideoIsPrivate();
         for (FsUserCourseVideo video : videos){
             // 1 初始化用户身份信息(secretId, secretKey)
-            COSCredentials cred = new BasicCOSCredentials(YL_SECRET_ID, YL_SECRET_KEY);
+            String secretId = tencentProperties.getSecretId();
+            String secretKey = tencentProperties.getSecretKey();
+            if (secretId == null || secretId.isEmpty() || secretKey == null || secretKey.isEmpty()) {
+                logger.error("腾讯云密钥未配置,跳过 COS 任务");
+                return;
+            }
+            COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
             // 2 设置bucket的区域,
             ClientConfig clientConfig = new ClientConfig(new Region("ap-chongqing"));
             // 3 生成cos客户端

+ 1 - 22
fs-admin/src/main/java/com/fs/web/controller/common/CommonController.java

@@ -210,28 +210,7 @@ public class CommonController
         }
     }
 
-    //获取腾讯云vod签名
-//    @PostMapping("/common/getSignature")
-//    public R getVodSignature() {
-//        String SECRET_ID = "AKIDdAdvzoQpzuOo11mq2TntjKI5eqrhNp22";
-//        String SECRET_KEY = "zmLgpzzcwAFNJ4dx2iDTVHgw3ELCrIVg";
-//        VodSignatureUtil sign = new VodSignatureUtil();
-//        // 设置 App 的云 API 密钥
-//        sign.setSecretId(SECRET_ID);
-//        sign.setSecretKey(SECRET_KEY);
-//        sign.setCurrentTime(System.currentTimeMillis() / 1000);
-//        sign.setRandom(new Random().nextInt(java.lang.Integer.MAX_VALUE));
-//        sign.setSignValidDuration(3600 * 24 * 2); // 签名有效期:2天
-//        try {
-//            String signature = sign.getUploadSignature();
-//            System.out.println("signature : " + signature);
-//        return R.ok().put("data",signature);
-//        } catch (Exception e) {
-//            System.out.println("生成签名失败:" + e.getMessage());
-//            e.printStackTrace();
-//        }
-//        return R.error("生成签名失败");
-//    }
+    // 腾讯云 VOD 签名接口已移除硬编码密钥示例,请使用 TencentProperties / 环境变量。
 
 
 

+ 11 - 9
fs-common/src/main/java/com/fs/common/utils/RedwoodCryptoUtil.java

@@ -249,15 +249,17 @@ public class RedwoodCryptoUtil {
     // ------------------------------ 测试示例 ------------------------------
     public static void main(String[] args) throws Exception {
         // 1. 配置参数(替换为文档中的测试参数或实际环境参数)
-        String appSecret = "uuRKVwbfSutCpFTv"; // 文档中测试appsecret
-        String platformPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk2oCpi9eSMqcmqO3rrMN\n" +
-                "b9fqEFMckcRkU520PXyxFalzA2mfLNgNPe8TB9mBSqn7xPxLBBBOSaFwEAeAAs4E\n" +
-                "AojMVilbfrTXJh3ucyKlGvTpX3lMKgJaYG7asEzKVbw5V4j8oTBtNh3s20jP7zBm\n" +
-                "Y61opsLTIW0qiuvMxezJS8wHc6ajY99RHWBASd3AGozsc3cFLSgIUyh2BhcbB2l7\n" +
-                "V8UyDQj7+QI1BwNpkvGxYhP0DF4Yu7buaaf61gygkeeOZ/8JOjcDWBfVB6Q6wEja\n" +
-                "os0E9U+rYXN6v90va1wrRp+zRev4sMBWesvwc6uzcuYO/RfSJ19FDMUreCScm8tk\n" +
-                "PQIDAQAB"; // 文档中测试红杉密钥-公钥
-        String thirdPrivateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCTagKmL15Iypyao7eusw1v1+oQUxyRxGRTnbQ9fLEVqXMDaZ8s2A097xMH2YFKqfvE/EsEEE5JoXAQB4ACzgQCiMxWKVt+tNcmHe5zIqUa9OlfeUwqAlpgbtqwTMpVvDlXiPyhMG02HezbSM/vMGZjrWimwtMhbSqK68zF7MlLzAdzpqNj31EdYEBJ3cAajOxzdwUtKAhTKHYGFxsHaXtXxTINCPv5AjUHA2mS8bFiE/QMXhi7tu5pp/rWDKCR545n/wk6NwNYF9UHpDrASNqizQT1T6thc3q/3S9rXCtGn7NF6/iwwFZ6y/Bzq7Ny5g79F9InX0UMxSt4JJyby2Q9AgMBAAECggEAEqfp6eo4vnGV3CQ4DM3wN2VV4/cAuJnoMITW2Kk9KAan3ZiyYlR9aIcnG2k1aaOVj1p2i+8cWUkrC3xHgRNdgoyZf5YAVErCp7pGASAzUPQJzOFm+DIQCgA9gO5W9P67Kw7VGfks+RpUbXQLjLPNYXQCuIgTfDl6ltY8the/ae4Y/a4dyhBhQ+Q/sygACk/Woiq7B78pc/qCaeMyZyik42aVuC7ZMuIgzERSOBFDrerI/upBWmLE4faeUk4h/PE1Hrj+H2RJ9aM5j4Idn/AJ4H4r8TjzT5m+ldQBfErs37HAVbyP1lQJjmO+VBBvqFchGNDtU1yGIRpxfU5mJI5dQQKBgQDRFPe+IKsheKNF2z0EUke/hU+XIDNc3Qwvp+2ok78G3LiKLRM61II/k+N0PLmJii0JEjqF0figj83Cyr4nnbhymOKIIplftgv085E1ed6QH0m54AwJBCLLA6gHiHin1t21Xh7o38FF6pHQ6EnQjfnVCODkTKxQEihvV3oAv/UBeQKBgQC0fnDPZ29YcIdI2W6xteDFaBfWLTw9usHDu2NnZBPEa+E5Whvcnw6xCgYEI+yasGEt9wOG6tnMEaxIMHRtn7LXaa7nrYxvqE5yTCLpjle3NM3KJRoCxZvOzJwlGWKFRPVpxBe1Sm0DB/IfTbBqzYCVkKQgpnqcpyI91TvxBL/r5QKBgA/bETaf75poNamUiLoNK1fA2lpRnNOMB+KNT56bJb91eaEw7eZmO0JrCrLD8CYYDnZDpaCEXeB/R1FgYq9KbLR0F6nPReZWPe3jkr2FcnVnigXIkeEVKTZQHqwDk3LW/pVEf/+VCGku8sPu+boRKkMXm0Z08hRYbCyVa7Em3YOxAoGAOomzfqC2TQGZ7reOHha1wnBjIrRjEEYsp5VzxMmBW7f9QMOHu8LeWe69SsR37Sd9LRIq06wBXRzyOit050TfFNwSvNLddC0q3AjzXbormqCGiaQEzpdWU/iqP6H/AOf/jADsC4EK3+vIy/w/VjQ2GsvhXzF/HKVcBp/Mo/t9Xz0CgYACKTI8f7z43g6MHy0+QOYBJ4BBDS8SzhLdNIXoUnc4O8kySTospxNVRzZGUMKJ4R8T7bpfR+50H6nCxBZo125eD4lcMHL3Dd/JwabKSer7Nzjt7+UMbgncQIs3m9FjtP1rvYuHvHI7RbxFH+hrYVWMKysWpbS9xtMThF9BosmufA=="; // 文档中测试三方密钥-私钥
+        String appSecret = System.getenv("REDWOOD_APP_SECRET"); // 勿硬编码
+        if (appSecret == null || appSecret.isEmpty()) {
+            System.err.println("请设置环境变量 REDWOOD_APP_SECRET 等后再运行 main");
+            return;
+        }
+        String platformPublicKey = System.getenv("REDWOOD_PLATFORM_PUBLIC_KEY");
+        String thirdPrivateKey = System.getenv("REDWOOD_THIRD_PRIVATE_KEY");
+        if (platformPublicKey == null || thirdPrivateKey == null) {
+            System.err.println("请设置 REDWOOD_PLATFORM_PUBLIC_KEY / REDWOOD_THIRD_PRIVATE_KEY");
+            return;
+        }
 
         // 2. 创建工具类实例
         RedwoodCryptoUtil cryptoUtil = new RedwoodCryptoUtil(appSecret, platformPublicKey, thirdPrivateKey);

+ 1 - 0
fs-company/src/main/java/com/fs/framework/config/SecurityConfig.java

@@ -129,6 +129,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 .antMatchers("/swagger-resources/**").anonymous()
                 .antMatchers("/webjars/**").anonymous()
                 .antMatchers("/*/api-docs").anonymous()
+                // Druid 控制台自带账密;需匿名通过 Spring,否则 iframe 无 JWT 无法打开
                 .antMatchers("/druid/**").anonymous()
                 .antMatchers("/qw/data/**").anonymous()
                 .antMatchers("/qw/user/selectCloudByCompany").anonymous()

+ 1 - 0
fs-framework/src/main/java/com/fs/framework/config/SecurityConfig.java

@@ -142,6 +142,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 .antMatchers("/swagger-resources/**").anonymous()
                 .antMatchers("/webjars/**").anonymous()
                 .antMatchers("/*/api-docs").anonymous()
+                // Druid 控制台自带账密;需匿名通过 Spring,否则 iframe 无 JWT 无法打开
                 .antMatchers("/druid/**").anonymous()
                 .antMatchers("/course/userVideo/videoTranscode").anonymous()
                 .antMatchers("/erp/call/**").anonymous()

+ 1 - 1
fs-ipad-task/src/main/java/com/fs/framework/config/SecurityConfig.java

@@ -109,7 +109,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                         "/profile/**"
                 ).permitAll()
                 .antMatchers("**/errorLogUpload").anonymous()
-                .antMatchers("**").anonymous()
                 .antMatchers("/qw/getJsapiTicket/**").anonymous()
                 .antMatchers("/msg/**").anonymous()
                 .antMatchers("/msg/**/**").anonymous()
@@ -124,6 +123,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 .antMatchers("/swagger-resources/**").anonymous()
                 .antMatchers("/webjars/**").anonymous()
                 .antMatchers("/*/api-docs").anonymous()
+                // Druid 控制台自带账密;需匿名通过 Spring,否则 iframe 无 JWT 无法打开
                 .antMatchers("/druid/**").anonymous()
                 .antMatchers("/qw/data/**").anonymous()
                 // 除上面外的所有请求全部需要鉴权认证

+ 1 - 0
fs-qw-api-msg/src/main/java/com/fs/framework/config/SecurityConfig.java

@@ -125,6 +125,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 .antMatchers("/swagger-resources/**").anonymous()
                 .antMatchers("/webjars/**").anonymous()
                 .antMatchers("/*/api-docs").anonymous()
+                // Druid 控制台自带账密;需匿名通过 Spring,否则 iframe 无 JWT 无法打开
                 .antMatchers("/druid/**").anonymous()
                 .antMatchers("/qw/data/**").anonymous()
                 .antMatchers("/qw/test/**").anonymous()

+ 1 - 0
fs-qw-api/src/main/java/com/fs/framework/config/SecurityConfig.java

@@ -123,6 +123,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 .antMatchers("/swagger-resources/**").anonymous()
                 .antMatchers("/webjars/**").anonymous()
                 .antMatchers("/*/api-docs").anonymous()
+                // Druid 控制台自带账密;需匿名通过 Spring,否则 iframe 无 JWT 无法打开
                 .antMatchers("/druid/**").anonymous()
                 .antMatchers("/qw/data/**").anonymous()
                 // 除上面外的所有请求全部需要鉴权认证

+ 1 - 1
fs-qw-task/src/main/java/com/fs/framework/config/SecurityConfig.java

@@ -108,7 +108,6 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                         "/**/*.js",
                         "/profile/**"
                 ).permitAll()
-                .antMatchers("**").anonymous()
                 .antMatchers("/qw/getJsapiTicket/**").anonymous()
                 .antMatchers("/msg/**").anonymous()
                 .antMatchers("/msg/**/**").anonymous()
@@ -123,6 +122,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 .antMatchers("/swagger-resources/**").anonymous()
                 .antMatchers("/webjars/**").anonymous()
                 .antMatchers("/*/api-docs").anonymous()
+                // Druid 控制台自带账密;需匿名通过 Spring,否则 iframe 无 JWT 无法打开
                 .antMatchers("/druid/**").anonymous()
                 .antMatchers("/qw/data/**").anonymous()
                 // 除上面外的所有请求全部需要鉴权认证

+ 20 - 12
fs-service/src/main/java/com/fs/ai/service/impl/BaiduAIServiceImpl.java

@@ -27,20 +27,26 @@ import java.util.*;
 @Service
 public class BaiduAIServiceImpl implements IBaiduAIService {
 
-    String clientId="LUP3P6NA0q9CEAmUhjnWXt4Q";
-    String clientSecret="Esxtj5QVM2klCZV1HfIRYutW5mJ2AP5G";
-    String grantType="client_credentials";
-    String plugins="4v4ki9a5t1hxdv92";
-
-
-    String secretKey="bce-v3/ALTAK-P03N0q1ET2QKrbq3RGdgB/456be350fac6b3fe41ced46cada2cc287e04f5fc";
+    private final String clientId = envOr("BAIDU_AI_CLIENT_ID", "");
+    private final String clientSecret = envOr("BAIDU_AI_CLIENT_SECRET", "");
+    private final String grantType = "client_credentials";
+    private final String plugins = envOr("BAIDU_AI_PLUGINS", "4v4ki9a5t1hxdv92");
+    private final String secretKey = envOr("BAIDU_AI_SECRET_KEY", "");
+
+    private static String envOr(String name, String fallback) {
+        String v = System.getenv(name);
+        return v != null && !v.trim().isEmpty() ? v.trim() : fallback;
+    }
 
-    public static  BaiduAITokenVO vo=null;
+    public static BaiduAITokenVO vo = null;
 
-    public BaiduAITokenVO getToken(){
-        String url="https://aip.baidubce.com/oauth/2.0/token?client_id="+clientId+"&client_secret="+clientSecret+"&grant_type="+grantType;
+    public BaiduAITokenVO getToken() {
+        if (clientId.isEmpty() || clientSecret.isEmpty()) {
+            throw new IllegalStateException("请配置环境变量 BAIDU_AI_CLIENT_ID / BAIDU_AI_CLIENT_SECRET");
+        }
+        String url = "https://aip.baidubce.com/oauth/2.0/token?client_id=" + clientId + "&client_secret=" + clientSecret + "&grant_type=" + grantType;
         String result = HttpUtil.post(url, "");
-        vo=JSONUtil.toBean(result,BaiduAITokenVO.class);
+        vo = JSONUtil.toBean(result, BaiduAITokenVO.class);
         return vo;
     }
 
@@ -60,7 +66,9 @@ public class BaiduAIServiceImpl implements IBaiduAIService {
 
     @Override
     public String createDataset(String datasetName) {
-
+        if (secretKey == null || secretKey.isEmpty()) {
+            throw new IllegalStateException("请配置环境变量 BAIDU_AI_SECRET_KEY");
+        }
         Dataset dataset = new Dataset(secretKey);
         String datasetId = null;
         try {

+ 1 - 1
fs-service/src/main/java/com/fs/company/mapper/CompanyDeptMapper.java

@@ -103,7 +103,7 @@ public interface CompanyDeptMapper
      * @param companyId 公司id
      * @return 部门数据
      */
-    @Select("select * from company_dept where company_id = ${companyId}")
+    @Select("select * from company_dept where company_id = #{companyId}")
     List<CompanyDept> selectDeptDataByCompanyId(@Param("companyId") Long companyId);
 
     @Select("select dept_id from company_dept where parent_id=#{parentId}")

+ 2 - 2
fs-service/src/main/java/com/fs/company/mapper/CompanyUserMapper.java

@@ -229,10 +229,10 @@ public interface CompanyUserMapper
     @Select("select * from company_user where user_id=#{userId}")
     CompanyUser selectCompanyUserByUserId(Long userId);
 
-    @Select("select concat(nick_name,'_',user_name) from company_user where user_id=${userId} limit 1")
+    @Select("select concat(nick_name,'_',user_name) from company_user where user_id=#{userId} limit 1")
     String selectCompanyUserNameUserById(Long userId);
 
-    @Select("select distinct user_id from company_user where parent_id=${companyUserId}")
+    @Select("select distinct user_id from company_user where parent_id=#{companyUserId}")
     List<Long> selectUserAllCompanyUserId(@Param("companyUserId") Long companyUserId);
 
     List<CompanyUser> getAllUserListLimit(@Param("companyId") Long companyId,

+ 7 - 6
fs-service/src/main/java/com/fs/config/tencent/TencentProperties.java

@@ -7,16 +7,17 @@ import org.springframework.stereotype.Component;
 @Component
 @Data
 public class TencentProperties {
-    @Value("${tencent_cloud_config.secret_id}")
+    /** 优先环境变量 TENCENT_CLOUD_SECRET_ID / TENCENT_CLOUD_SECRET_KEY,避免密钥仅存在于配置文件 */
+    @Value("${TENCENT_CLOUD_SECRET_ID:${tencent_cloud_config.secret_id:}}")
     public String secretId;
-    @Value("${tencent_cloud_config.secret_key}")
+    @Value("${TENCENT_CLOUD_SECRET_KEY:${tencent_cloud_config.secret_key:}}")
     public String secretKey;
-    @Value("${tencent_cloud_config.bucket}")
+    @Value("${tencent_cloud_config.bucket:}")
     public String bucket;
-    @Value("${tencent_cloud_config.app_id}")
+    @Value("${tencent_cloud_config.app_id:}")
     public String appId;
-    @Value("${tencent_cloud_config.region}")
+    @Value("${tencent_cloud_config.region:}")
     public String region;
-    @Value("${tencent_cloud_config.proxy}")
+    @Value("${tencent_cloud_config.proxy:}")
     public String proxy;
 }

+ 12 - 81
fs-service/src/main/java/com/fs/course/GetObjectDemo.java

@@ -1,89 +1,20 @@
 package com.fs.course;
 
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-
-import com.qcloud.cos.COSClient;
-import com.qcloud.cos.ClientConfig;
-import com.qcloud.cos.auth.BasicCOSCredentials;
-import com.qcloud.cos.auth.COSCredentials;
-import com.qcloud.cos.exception.CosClientException;
-import com.qcloud.cos.exception.CosServiceException;
-import com.qcloud.cos.model.COSObject;
-import com.qcloud.cos.model.GetObjectRequest;
-import com.qcloud.cos.model.ObjectMetadata;
-import com.qcloud.cos.region.Region;
-import com.qcloud.cos.utils.IOUtils;
-
+/**
+ * COS 下载 Demo。禁止在源码中硬编码 AK/SK。
+ * 本地调试请设置环境变量:COS_SECRET_ID / COS_SECRET_KEY
+ */
 public class GetObjectDemo {
-    private static String secretId = "AKIDiMq9lDf2EOM9lIfqqfKo7FNgM5meD0sT";
-    private static String secretKey = "u5SuS80342xzx8FRBukza9lVNHKNMSaB";
-    private static String bucketName = "hylj-1323137866";
-    private static String region = "ap-chongqing";
-    private static COSClient cosClient = createClient();
-
-    public static void main(String[] args) {
-        try {
-            getObjectInputStreamDemo();
-        } catch (Exception e) {
-            e.printStackTrace();
-        } finally {
-            cosClient.shutdown();
-        }
+    private GetObjectDemo() {
     }
 
-    private static COSClient createClient() {
-        // 初始化用户身份信息(secretId, secretKey)
-        COSCredentials cred = new BasicCOSCredentials(secretId,secretKey);
-        // 设置bucket的区域, COS地域的简称请参照 https://www.qcloud.com/document/product/436/6224
-        ClientConfig clientConfig = new ClientConfig(new Region(region));
-        // 生成cos客户端
-        COSClient cosclient = new COSClient(cred, clientConfig);
-
-        return cosclient;
-    }
-
-//    private static void getObjectToFileDemo() {
-//        String key = "test/my_test.json";
-//        GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
-//        // 设置下载的单链接限速(如有需要),不需要可忽略
-//
-//        try {
-//            File localFile = new File("my_test.json");
-//            ObjectMetadata objectMetadata = cosClient.getObject(getObjectRequest, localFile);
-//            System.out.println(objectMetadata.getContentLength());
-//        } catch (CosServiceException cse) {
-//            cse.printStackTrace();
-//        } catch (CosClientException cce) {
-//            cce.printStackTrace();
-//        }
-//    }
-
-    private static void getObjectInputStreamDemo() throws IOException {
-        String key = "test/my_test.json";
-        GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
-        InputStream cosObjectInput = null;
-
-        try {
-            COSObject cosObject = cosClient.getObject(getObjectRequest);
-            cosObjectInput = cosObject.getObjectContent();
-        } catch (CosServiceException e) {
-            e.printStackTrace();
-        } catch (CosClientException e) {
-            e.printStackTrace();
-        }
-
-        // 处理下载到的流
-        // 这里是直接读取,按实际情况来处理
-        byte[] bytes = null;
-        try {
-            bytes = IOUtils.toByteArray(cosObjectInput);
-        } catch (IOException e) {
-            e.printStackTrace();
-        } finally {
-            // 用完流之后一定要调用 close()
-            cosObjectInput.close();
+    public static void main(String[] args) {
+        String secretId = System.getenv("COS_SECRET_ID");
+        String secretKey = System.getenv("COS_SECRET_KEY");
+        if (secretId == null || secretId.isEmpty() || secretKey == null || secretKey.isEmpty()) {
+            System.err.println("请设置环境变量 COS_SECRET_ID / COS_SECRET_KEY 后再运行");
+            return;
         }
+        System.out.println("Demo 已移除硬编码密钥,请按腾讯云官方 SDK 示例自行组装客户端。");
     }
 }

+ 1 - 1
fs-service/src/main/java/com/fs/course/mapper/FsUserCoursePeriodMapper.java

@@ -132,7 +132,7 @@ public interface FsUserCoursePeriodMapper
     void endPeriod(@Param("now") LocalDate now);
 
 
-    @Select("select * from fs_user_course_period where find_in_set(${companyId},company_id) and #{previousDay} >= period_starting_time and #{previousDay} <= period_end_time ")
+    @Select("select * from fs_user_course_period where find_in_set(#{companyId},company_id) and #{previousDay} >= period_starting_time and #{previousDay} <= period_end_time ")
     List<Long> queryPeriod(@Param("companyId") Long companyId,
                            @Param("previousDay") LocalDate previousDay);
 

+ 18 - 0
fs-service/src/main/java/com/fs/course/param/FsCourseWatchLogListParam.java

@@ -110,6 +110,24 @@ public class FsCourseWatchLogListParam implements Serializable {
     private Long deptId;
     private List<Long> deptIds;
     private String ids;
+    private List<String> idsList;
+
+    public void setIds(String ids) {
+        this.ids = ids;
+        if (ids == null || ids.trim().isEmpty()) {
+            this.idsList = null;
+            return;
+        }
+        String cleaned = ids.replace("(", "").replace(")", "").trim();
+        if (cleaned.isEmpty()) {
+            this.idsList = null;
+            return;
+        }
+        if (!cleaned.matches("[0-9,\\s]+")) {
+            throw new IllegalArgumentException("非法的企微用户ID列表");
+        }
+        this.idsList = java.util.Arrays.asList(cleaned.split("\\s*,\\s*"));
+    }
 
     private Integer pageNum;
     private Integer pageSize;

+ 27 - 5
fs-service/src/main/java/com/fs/course/service/impl/HuaweiCloudStatisticsServiceImpl.java

@@ -32,9 +32,31 @@ public class HuaweiCloudStatisticsServiceImpl implements IHuaweiCloudStatisticsS
     public static final String REGION_EAST2 = "cn-east-2";
     private static final String END_POINT = "cdn.myhuaweicloud.com";
 
-    // ak/sk
-    private static final String AK = "K2UTJGIN7UTZJR2XMXYG";
-    private static final String SK = "sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX";
+    // ak/sk — 通过环境变量配置
+    private static String hwAk() {
+        String v = firstEnv("HW_OBS_AK", "HUAWEICLOUD_SDK_AK");
+        if (v == null) {
+            throw new IllegalStateException("请配置环境变量 HW_OBS_AK 或 HUAWEICLOUD_SDK_AK");
+        }
+        return v;
+    }
+
+    private static String hwSk() {
+        String v = firstEnv("HW_OBS_SK", "HUAWEICLOUD_SDK_SK");
+        if (v == null) {
+            throw new IllegalStateException("请配置环境变量 HW_OBS_SK 或 HUAWEICLOUD_SDK_SK");
+        }
+        return v;
+    }
+
+    private static String firstEnv(String a, String b) {
+        String v = System.getenv(a);
+        if (v != null && !v.isEmpty()) {
+            return v;
+        }
+        v = System.getenv(b);
+        return (v != null && !v.isEmpty()) ? v : null;
+    }
 
     @Override
     public R DomainStatistics(HuaweiCloudStatisticsParam param) {
@@ -42,8 +64,8 @@ public class HuaweiCloudStatisticsServiceImpl implements IHuaweiCloudStatisticsS
         // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。
 
         ICredential auth = new GlobalCredentials()
-                .withAk(AK)
-                .withSk(SK);
+                .withAk(hwAk())
+                .withSk(hwSk());
         CdnClient client = CdnClient.newBuilder()
                 .withCredential(auth)
                 .withRegion(CdnRegion.CN_NORTH_1)

+ 57 - 29
fs-service/src/main/java/com/fs/course/service/impl/HuaweiObsServiceImpl.java

@@ -45,9 +45,22 @@ public class HuaweiObsServiceImpl implements IHuaweiObsService {
     public static final String REGION_NORTH1 = "cn-north-1";
     public static final String REGION_EAST2 = "cn-east-2";
 
-    // ak/sk
-    private static final String AK = "K2UTJGIN7UTZJR2XMXYG";
-    private static final String SK = "sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX";
+    // ak/sk — 通过环境变量 HW_OBS_AK / HW_OBS_SK 配置,禁止硬编码
+    private static String obsAk() {
+        String v = System.getenv("HW_OBS_AK");
+        if (v == null || v.isEmpty()) {
+            throw new IllegalStateException("请配置环境变量 HW_OBS_AK");
+        }
+        return v;
+    }
+
+    private static String obsSk() {
+        String v = System.getenv("HW_OBS_SK");
+        if (v == null || v.isEmpty()) {
+            throw new IllegalStateException("请配置环境变量 HW_OBS_SK");
+        }
+        return v;
+    }
 
 
     private static final String FIXED_VIDEO_PATH = "C:\\fs\\mergeVideo\\first.mp4";
@@ -68,13 +81,17 @@ public class HuaweiObsServiceImpl implements IHuaweiObsService {
 
     private void mergeVideos(String fixedVideoPath, String uploadedVideoPath, String outputPath) throws IOException, InterruptedException {
 
-        String command = String.format("ffmpeg -i %s -i %s -filter_complex \"[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[outv][outa]\" -map \"[outv]\" -map \"[outa]\" %s", fixedVideoPath,uploadedVideoPath, outputPath);
-
-        // 打印调试信息
-        System.out.println("Executing command: " + command);
-
-        // 执行命令
-        Process process = Runtime.getRuntime().exec(command);
+        ProcessBuilder pb = new ProcessBuilder(
+                "ffmpeg",
+                "-i", fixedVideoPath,
+                "-i", uploadedVideoPath,
+                "-filter_complex", "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[outv][outa]",
+                "-map", "[outv]",
+                "-map", "[outa]",
+                outputPath
+        );
+        System.out.println("Executing command: " + String.join(" ", pb.command()));
+        Process process = pb.start();
 
         // 等待命令执行完成
         int exitCode = process.waitFor();
@@ -116,7 +133,7 @@ public class HuaweiObsServiceImpl implements IHuaweiObsService {
 
         // 创建ObsClient实例
         // 使用永久AK/SK初始化客户端
-        ObsClient obsClient = new ObsClient(AK, SK,endPoint);
+        ObsClient obsClient = new ObsClient(obsAk(), obsSk(), endPoint);
         // 使用临时AK/SK和SecurityToken初始化客户端
         // ObsClient obsClient = new ObsClient(ak, sk, securityToken, endPoint);
         String objKey = generateUploadFileName(file.getName());
@@ -192,7 +209,7 @@ public class HuaweiObsServiceImpl implements IHuaweiObsService {
         for (FsUserCourseVideo video : videos) {
             String endPoint = "https://obs.cn-north-4.myhuaweicloud.com";
 
-            ObsClient obsClient = new ObsClient(AK, SK, endPoint);
+            ObsClient obsClient = new ObsClient(obsAk(), obsSk(), endPoint);
             String objKey = extractPathByRegex(video.getLineOne());
             String url = "https://obs.ylrztop.com/" + objKey;
             try {
@@ -224,33 +241,45 @@ public class HuaweiObsServiceImpl implements IHuaweiObsService {
         return urlString.replaceAll("^https?://[^/]+/", "");
     }
 
-    private static final String YL_SECRET_ID = "AKIDiMq9lDf2EOM9lIfqqfKo7FNgM5meD0sT";
-    private static final String YL_SECRET_KEY = "u5SuS80342xzx8FRBukza9lVNHKNMSaB";
     private static final String YL_BUCKET = "hylj-1323137866";
-    private static final String YL_APP_ID = "1323137866";
     private static final String YL_REGION = "ap-chongqing";
-    private static final String YL_PROXY = "hylj";
 
-    private static COSClient cosClient = createClient();
+    private static volatile COSClient cosClient;
 
     private static COSClient createClient() {
-        // 初始化用户身份信息(secretId, secretKey)
-        COSCredentials cred = new BasicCOSCredentials(YL_SECRET_ID,YL_SECRET_KEY);
-        // 设置bucket的区域, COS地域的简称请参照 https://www.qcloud.com/document/product/436/6224
+        String secretId = System.getenv("COS_SECRET_ID");
+        String secretKey = System.getenv("COS_SECRET_KEY");
+        if (secretId == null || secretId.isEmpty()) {
+            secretId = System.getenv("TENCENT_CLOUD_SECRET_ID");
+        }
+        if (secretKey == null || secretKey.isEmpty()) {
+            secretKey = System.getenv("TENCENT_CLOUD_SECRET_KEY");
+        }
+        if (secretId == null || secretId.isEmpty() || secretKey == null || secretKey.isEmpty()) {
+            throw new IllegalStateException("请配置环境变量 COS_SECRET_ID/COS_SECRET_KEY 或 TENCENT_CLOUD_SECRET_ID/TENCENT_CLOUD_SECRET_KEY");
+        }
+        COSCredentials cred = new BasicCOSCredentials(secretId, secretKey);
         ClientConfig clientConfig = new ClientConfig(new Region(YL_REGION));
-        // 生成cos客户端
-        COSClient cosclient = new COSClient(cred, clientConfig);
+        return new COSClient(cred, clientConfig);
+    }
 
-        return cosclient;
+    private static COSClient cosClient() {
+        if (cosClient == null) {
+            synchronized (HuaweiObsServiceImpl.class) {
+                if (cosClient == null) {
+                    cosClient = createClient();
+                }
+            }
+        }
+        return cosClient;
     }
 
     private static byte[] getObjectInputStream(String key) throws IOException {
-//        String key = "course/202517/1736224647237.mp4";
         GetObjectRequest getObjectRequest = new GetObjectRequest(YL_BUCKET, key);
         InputStream cosObjectInput = null;
 
         try {
-            COSObject cosObject = cosClient.getObject(getObjectRequest);
+            COSObject cosObject = cosClient().getObject(getObjectRequest);
             cosObjectInput = cosObject.getObjectContent();
         } catch (CosServiceException e) {
             e.printStackTrace();
@@ -258,16 +287,15 @@ public class HuaweiObsServiceImpl implements IHuaweiObsService {
             e.printStackTrace();
         }
 
-        // 处理下载到的流
-        // 这里是直接读取,按实际情况来处理
         byte[] bytes = null;
         try {
             bytes = IOUtils.toByteArray(cosObjectInput);
         } catch (IOException e) {
             e.printStackTrace();
         } finally {
-            // 用完流之后一定要调用 close()
-            cosObjectInput.close();
+            if (cosObjectInput != null) {
+                cosObjectInput.close();
+            }
         }
         return bytes;
     }

+ 34 - 12
fs-service/src/main/java/com/fs/course/service/impl/HuaweiVodServiceImpl.java

@@ -35,10 +35,31 @@ public class HuaweiVodServiceImpl implements IHuaweiVodService {
     public static final String REGION_NORTH1 = "cn-north-1";
     public static final String REGION_EAST2 = "cn-east-2";
 
-    // ak/sk
-    private static final String AK = "K2UTJGIN7UTZJR2XMXYG";
-    private static final String SK = "sbyeNJLbcYmH6copxeFP9pAoksM4NIT9Zw4x0SRX";
+    // ak/sk — 通过环境变量 HW_OBS_AK / HW_OBS_SK(或 HUAWEICLOUD_SDK_AK / HUAWEICLOUD_SDK_SK)配置
+    private static String hwAk() {
+        String v = firstEnv("HW_OBS_AK", "HUAWEICLOUD_SDK_AK");
+        if (v == null) {
+            throw new IllegalStateException("请配置环境变量 HW_OBS_AK 或 HUAWEICLOUD_SDK_AK");
+        }
+        return v;
+    }
 
+    private static String hwSk() {
+        String v = firstEnv("HW_OBS_SK", "HUAWEICLOUD_SDK_SK");
+        if (v == null) {
+            throw new IllegalStateException("请配置环境变量 HW_OBS_SK 或 HUAWEICLOUD_SDK_SK");
+        }
+        return v;
+    }
+
+    private static String firstEnv(String a, String b) {
+        String v = System.getenv(a);
+        if (v != null && !v.isEmpty()) {
+            return v;
+        }
+        v = System.getenv(b);
+        return (v != null && !v.isEmpty()) ? v : null;
+    }
 
     private static final String FIXED_VIDEO_PATH = "C:\\fs\\mergeVideo\\first.mp4";
 
@@ -63,13 +84,14 @@ public class HuaweiVodServiceImpl implements IHuaweiVodService {
             writer.println("file '" + fixedVideoPath.replace("\\", "/") + "'");
             writer.println("file '" + uploadedVideoPath.replace("\\", "/") + "'");
         }
-        String command = String.format("ffmpeg -f concat -safe 0 -i %s -c copy %s", listFile.getPath(), outputPath);
-
-        // 打印调试信息
-        System.out.println("Executing command: " + command);
-
-        // 执行命令
-        Process process = Runtime.getRuntime().exec(command);
+        ProcessBuilder pb = new ProcessBuilder(
+                "ffmpeg", "-f", "concat", "-safe", "0",
+                "-i", listFile.getPath(),
+                "-c", "copy",
+                outputPath
+        );
+        System.out.println("Executing command: " + String.join(" ", pb.command()));
+        Process process = pb.start();
 
         // 等待命令执行完成
         int exitCode = process.waitFor();
@@ -210,8 +232,8 @@ public class HuaweiVodServiceImpl implements IHuaweiVodService {
      */
     public VodClient createVodClient(){
         ICredential auth = new BasicCredentials()
-                .withAk(AK)
-                .withSk(SK)
+                .withAk(hwAk())
+                .withSk(hwSk())
                 ;
         return VodClient.newBuilder()
                 .withCredential(auth)

+ 10 - 1
fs-service/src/main/java/com/fs/feishu/util/SecureTokenUtil.java

@@ -13,7 +13,16 @@ public class SecureTokenUtil {
     
     private static final String ALGORITHM = "AES";
     private static final String TRANSFORMATION = "AES/ECB/PKCS5Padding";
-    private static final String SECRET_KEY = "9f3a7c21b8e4d6a5c2f1097e3b4a6d8f"; // 16字节密钥
+    /** 可通过环境变量 FEISHU_TOKEN_AES_KEY 覆盖;默认值保留以兼容历史令牌 */
+    private static final String SECRET_KEY = resolveKey();
+
+    private static String resolveKey() {
+        String env = System.getenv("FEISHU_TOKEN_AES_KEY");
+        if (env != null && !env.trim().isEmpty()) {
+            return env.trim();
+        }
+        return "9f3a7c21b8e4d6a5c2f1097e3b4a6d8f";
+    }
     
     /**
      * 生成安全令牌

+ 2 - 3
fs-service/src/main/java/com/fs/his/mapper/FsStoreOrderMapper.java

@@ -796,9 +796,8 @@ public interface FsStoreOrderMapper
             "        <if test=\"maps.sortField == 'payMoney'\">\n" +
             "            so.pay_money\n" +
             "        </if>\n" +
-            "        <if test=\"maps.sortOrder != null and maps.sortOrder != ''\">\n" +
-            "            ${maps.sortOrder}\n" +
-            "        </if>\n" +
+            "        <if test=\"maps.sortOrder == 'asc' or maps.sortOrder == 'ASC'\">asc</if>\n" +
+            "        <if test=\"maps.sortOrder == 'desc' or maps.sortOrder == 'DESC'\">desc</if>\n" +
             "        <if test=\"maps.sortField == null or maps.sortField == ''\">\n" +
             "            so.order_id desc\n" +
             "        </if>"+

+ 31 - 24
fs-service/src/main/java/com/fs/his/utils/PhoneUtil.java

@@ -8,12 +8,20 @@ import java.util.Base64;
 
 public class PhoneUtil {
 
+    /** 可通过环境变量 PHONE_AES_KEY 覆盖;默认值保留以兼容历史密文 */
+    private static final String AES_KEY = firstNonBlank(System.getenv("PHONE_AES_KEY"), "AESAabCdeREssREA");
+    /** 可通过环境变量 PHONE_AES_OLD_KEY 覆盖 */
+    private static final String OLD_KEY = firstNonBlank(System.getenv("PHONE_AES_OLD_KEY"), "2c8d1a7f4e9b3c6ae6d5c4b3a291f8c9");
+
+    private static String firstNonBlank(String env, String fallback) {
+        return env != null && !env.trim().isEmpty() ? env.trim() : fallback;
+    }
+
     public static String encryptPhone(String text) {
-        String encryptedText=null;
+        String encryptedText = null;
         try {
-            SecretKeySpec secretKey = new SecretKeySpec("AESAabCdeREssREA".getBytes(), "AES");
+            SecretKeySpec secretKey = new SecretKeySpec(AES_KEY.getBytes(), "AES");
             Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
-            // Encryption
             cipher.init(Cipher.ENCRYPT_MODE, secretKey);
             byte[] encryptedBytes = cipher.doFinal(text.getBytes());
             encryptedText = Base64.getEncoder().encodeToString(encryptedBytes);
@@ -22,13 +30,14 @@ public class PhoneUtil {
         }
         return encryptedText;
     }
+
     /**
-    * 解密
-    */
+     * 解密
+     */
     public static String decryptPhone(String encryptedText) {
-        String text=null;
+        String text = null;
         try {
-            SecretKeySpec secretKey = new SecretKeySpec("AESAabCdeREssREA".getBytes(), "AES");
+            SecretKeySpec secretKey = new SecretKeySpec(AES_KEY.getBytes(), "AES");
             Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
             cipher.init(Cipher.DECRYPT_MODE, secretKey);
             byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedText));
@@ -38,18 +47,19 @@ public class PhoneUtil {
         }
         return text;
     }
+
     /**
-    * 解密加*
-    */
+     * 解密加*
+     */
     public static String decryptPhoneMk(String encryptedText) {
-        String text=null;
+        String text = null;
         try {
-            SecretKeySpec secretKey = new SecretKeySpec("AESAabCdeREssREA".getBytes(), "AES");
+            SecretKeySpec secretKey = new SecretKeySpec(AES_KEY.getBytes(), "AES");
             Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
             cipher.init(Cipher.DECRYPT_MODE, secretKey);
             byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedText));
             text = new String(decryptedBytes);
-            text =text.replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2");
+            text = text.replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2");
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -57,38 +67,35 @@ public class PhoneUtil {
     }
 
     public static String decryptAutoPhoneMk(String encryptedText) {
-        String text=null;
-        if (encryptedText!=null&&encryptedText!="") {
-            if (encryptedText.length()>11){
+        String text = null;
+        if (encryptedText != null && !encryptedText.isEmpty()) {
+            if (encryptedText.length() > 11) {
                 try {
-                    SecretKeySpec secretKey = new SecretKeySpec("AESAabCdeREssREA".getBytes(), "AES");
+                    SecretKeySpec secretKey = new SecretKeySpec(AES_KEY.getBytes(), "AES");
                     Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
                     cipher.init(Cipher.DECRYPT_MODE, secretKey);
                     byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedText));
                     text = new String(decryptedBytes);
-                    text =text.replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2");
+                    text = text.replaceAll("(\\d{3})\\d*(\\d{4})", "$1****$2");
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
-            }else {
-                text =  ParseUtils.parsePhone(encryptedText);
+            } else {
+                text = ParseUtils.parsePhone(encryptedText);
             }
         }
 
         return text;
     }
+
     /**
      * 用于查询 使用老的数据加密
-     * @param text
-     * @return
      */
-    private static String OLD_KEY = "2c8d1a7f4e9b3c6ae6d5c4b3a291f8c9";
     public static String encryptPhoneOldKey(String text) {
-        String encryptedText=null;
+        String encryptedText = null;
         try {
             SecretKeySpec secretKey = new SecretKeySpec(OLD_KEY.getBytes(), "AES");
             Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
-            // Encryption
             cipher.init(Cipher.ENCRYPT_MODE, secretKey);
             byte[] encryptedBytes = cipher.doFinal(text.getBytes());
             encryptedText = Base64.getEncoder().encodeToString(encryptedBytes);

+ 2 - 3
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreOrderScrmMapper.java

@@ -1381,9 +1381,8 @@ public interface FsStoreOrderScrmMapper
             "<if test=\"maps.sortField == 'payMoney'\">" +
             "    o.pay_money" +
             "</if>" +
-            "<if test=\"maps.sortOrder != null and maps.sortOrder != ''\">" +
-            "    ${maps.sortOrder}" +
-            "</if>" +
+            "<if test=\"maps.sortOrder == 'asc' or maps.sortOrder == 'ASC'\">asc</if>" +
+            "<if test=\"maps.sortOrder == 'desc' or maps.sortOrder == 'DESC'\">desc</if>" +
             "<if test=\"maps.sortField == null or maps.sortField == ''\">" +
             "    o.id desc " +
             "</if> " +

+ 2 - 3
fs-service/src/main/java/com/fs/live/mapper/LiveOrderMapper.java

@@ -292,9 +292,8 @@ public interface LiveOrderMapper {
             "<if test=\"maps.sortField == 'payMoney'\">" +
             "    o.pay_money" +
             "</if>" +
-            "<if test=\"maps.sortOrder != null and maps.sortOrder != ''\">" +
-            "    ${maps.sortOrder}" +
-            "</if>" +
+            "<if test=\"maps.sortOrder == 'asc' or maps.sortOrder == 'ASC'\">asc</if>" +
+            "<if test=\"maps.sortOrder == 'desc' or maps.sortOrder == 'DESC'\">desc</if>" +
             "<if test=\"maps.sortField == null or maps.sortField == ''\">" +
             "    o.order_id desc " +
             "</if> " +

+ 20 - 2
fs-service/src/main/java/com/fs/live/service/impl/LiveDataServiceImpl.java

@@ -317,7 +317,7 @@ public class LiveDataServiceImpl implements ILiveDataService {
         if (prevData == null) {
             prevData = new TrendDataVO();
         }
-        List<Map<String, Object>> chartRawData = liveDataMapper.getCompanyChartData(chartRange.getStart(), chartRange.getEnd(), type,category.trim(),companyId);
+        List<Map<String, Object>> chartRawData = liveDataMapper.getCompanyChartData(chartRange.getStart(), chartRange.getEnd(), type, sanitizeCategory(category), companyId);
         List<String> dates = new ArrayList<>();
         List<Integer> data = new ArrayList<>();
 
@@ -382,7 +382,7 @@ public class LiveDataServiceImpl implements ILiveDataService {
         if (prevData == null) {
             prevData = new TrendDataVO();
         }
-        List<Map<String, Object>> chartRawData = liveDataMapper.getChartData(chartRange.getStart(), chartRange.getEnd(), type,category.trim());
+        List<Map<String, Object>> chartRawData = liveDataMapper.getChartData(chartRange.getStart(), chartRange.getEnd(), type, sanitizeCategory(category));
         List<String> dates = new ArrayList<>();
         List<Integer> data = new ArrayList<>();
 
@@ -1152,4 +1152,22 @@ public class LiveDataServiceImpl implements ILiveDataService {
         return value.setScale(2, RoundingMode.HALF_UP).toString();
     }
 
+    /** 趋势图指标列白名单,防止 SQL 注入 */
+    private String sanitizeCategory(String category) {
+        if (category == null) {
+            return "page_views";
+        }
+        String c = category.trim();
+        switch (c) {
+            case "streams":
+            case "page_views":
+            case "unique_visitors":
+            case "total_views":
+            case "unique_viewers":
+                return c;
+            default:
+                return "page_views";
+        }
+    }
+
 }

+ 26 - 8
fs-service/src/main/java/com/fs/nuonuo/NuonuoUtils.java

@@ -19,14 +19,28 @@ import java.util.UUID;
 public class NuonuoUtils {
 
     private final static ObjectMapper OBJECT_MAPPER = new ObjectMapper();
-    private final static String KEY = "10924508";
-    private final static String SECRET = "A2EB20764D304D16";
     private final static String BASE_URL = "https://sdk.nuonuo.com/open/v1/services";
-    private final static String TOKEN = "7c5d284cc10f344b8198bb02zvijkmcs";
+
+    private static String envOr(String name, String fallback) {
+        String v = System.getenv(name);
+        return v != null && !v.trim().isEmpty() ? v.trim() : fallback;
+    }
+
+    private static String requireEnv(String name) {
+        String v = System.getenv(name);
+        if (v == null || v.trim().isEmpty()) {
+            throw new IllegalStateException("请配置环境变量 " + name);
+        }
+        return v.trim();
+    }
 
     private static JSONObject sendApi(String senid, String method, String content){
+        String key = requireEnv("NUONUO_APP_KEY");
+        String secret = requireEnv("NUONUO_APP_SECRET");
+        String token = requireEnv("NUONUO_TOKEN");
+        String taxNum = envOr("NUONUO_TAX_NUM", "91510115MABYRCJE31");
         NNOpenSDK sdk = NNOpenSDK.getIntance();
-        String json = sdk.sendPostSyncRequest(BASE_URL, senid, KEY, SECRET, TOKEN, "91510115MABYRCJE31", method, content); // 请求API
+        String json = sdk.sendPostSyncRequest(BASE_URL, senid, key, secret, token, taxNum, method, content); // 请求API
         JSONObject result = JSONObject.parseObject(json);
         if(!"E0000".equals(result.getString("code"))){
             throw new BaseException("开票异常:" + result);
@@ -34,6 +48,10 @@ public class NuonuoUtils {
         return result;
     }
 
+    private static String taxNum() {
+        return envOr("NUONUO_TAX_NUM", "91510115MABYRCJE31");
+    }
+
     /**
      * 开票
      * @param uid        订单编号(后续查询使用)
@@ -48,7 +66,7 @@ public class NuonuoUtils {
         ObjectNode put = object.putObject("order")
                 .put("buyerName", buyerName)
                 .put("buyerTaxNum", buyerTaxNum)
-                .put("salerTaxNum", "91510115MABYRCJE31")
+                .put("salerTaxNum", taxNum())
                 .put("orderNo", uid)
                 .put("invoiceDate", DateUtil.formatLocalDateTime(LocalDateTime.now()))
                 .put("clerk", "666")
@@ -120,7 +138,7 @@ public class NuonuoUtils {
         object.put("extensionNumber", "");
         object.put("phone", "");
         object.put("email", "");
-        object.put("sellerTaxNo", "91510115MABYRCJE31");
+        object.put("sellerTaxNo", taxNum());
         object.put("callBackUrl", "http://219.152.207.209:9810/prod-api/invoice/scan");
         object.putArray("detail");
         JSONObject result = sendApi(senid, "nuonuo.OpeMplatform.saveInvoiceRedConfirm", object.toString());
@@ -137,7 +155,7 @@ public class NuonuoUtils {
         object.put("identity", 0);
         object.put("blueInvoiceLine", "pc");
         object.put("blueElecInvoiceNumber", invoiceNumber);
-        object.put("taxNum", "91510115MABYRCJE31");
+        object.put("taxNum", taxNum());
         JSONObject result = sendApi(senid, "nuonuo.OpeMplatform.queryInvoiceRedConfirm", object.toString());
         return result.getJSONObject("result").getJSONArray("list").toJavaList(InvoiceRedVo.class);
     }
@@ -154,7 +172,7 @@ public class NuonuoUtils {
         object.put("orderNo", orderNo);
         object.put("billNo", billNo);
         object.put("billUuid", billUuid);
-        object.put("taxNum", "91510115MABYRCJE31");
+        object.put("taxNum", taxNum());
         object.put("callBackUrl", "http://219.152.207.209:9810/prod-api/invoice/scan");
         JSONObject result = sendApi(senid, "nuonuo.OpeMplatform.fastInvoiceRed", object.toString());
         return result.getJSONObject("result").getString("invoiceSerialNum");

+ 1 - 1
fs-service/src/main/java/com/fs/qw/mapper/QwExternalContactMapper.java

@@ -486,7 +486,7 @@ public interface QwExternalContactMapper extends BaseMapper<QwExternalContact> {
 
     List<GroupUserExternalVo> selectByGroupUser(@Param("ids") List<String> ids);
 
-    @Select("select is_repeat from qw_external_contact where user_id=${userId} limit 1")
+    @Select("select is_repeat from qw_external_contact where user_id=#{userId} limit 1")
     Integer selectQwIsRepeat(Long id);
 
     @Select("select * from qw_external_contact where fs_user_id = #{fsUserId} and status = 0 ")

+ 18 - 13
fs-service/src/main/java/com/fs/qw/mapper/QwWatchLogMapper.java

@@ -108,8 +108,9 @@ public interface QwWatchLogMapper extends BaseMapper<QwWatchLog>{
             "<if test ='companyUserId !=null and companyUserId!=\"\"'>\n" +
             "   and qu.company_user_id =#{companyUserId} \n" +
             "</if>" +
-            "<if test ='ids !=null and ids!=\"\"'>\n" +
-            "   and qec.qw_user_id in (${ids})\n" +
+            "<if test='idsList != null and idsList.size() &gt; 0'>\n" +
+            "   and qec.qw_user_id in\n" +
+            "   <foreach collection=\"idsList\" item=\"id\" open=\"(\" separator=\",\" close=\")\">#{id}</foreach>\n" +
             "</if>" +
             "GROUP BY\n" +
             "    qec.qw_user_id, DATE(qec.create_time) \n" +
@@ -157,7 +158,7 @@ public interface QwWatchLogMapper extends BaseMapper<QwWatchLog>{
             " <if test=\"filterDeptIds != null and filterDeptIds.size() != 0\">\n" +
             "     and cu.dept_id  in\n" +
             "      <foreach collection=\"deptIds\" item=\"item\" open=\"(\" close=\")\" separator=\",\">\n" +
-            "         ${item}\n" +
+            "         #{item}\n" +
             "      </foreach>\n" +
             " </if> " +
             "<if test ='deptIds !=null and deptIds.size > 0'>\n" +
@@ -166,8 +167,9 @@ public interface QwWatchLogMapper extends BaseMapper<QwWatchLog>{
             "     #{deptId}\n" +
             "</foreach>" +
             "</if>" +
-            "<if test ='ids !=null and ids!=\"\"'>\n" +
-            "   and qec.qw_user_id in (${ids})\n" +
+            "<if test='idsList != null and idsList.size() &gt; 0'>\n" +
+            "   and qec.qw_user_id in\n" +
+            "   <foreach collection=\"idsList\" item=\"id\" open=\"(\" separator=\",\" close=\")\">#{id}</foreach>\n" +
             "</if>" +
             "GROUP BY\n" +
             "    qec.qw_user_id, DATE(qec.create_time) \n" +
@@ -212,11 +214,12 @@ public interface QwWatchLogMapper extends BaseMapper<QwWatchLog>{
             " <if test=\"deptIds != null and deptIds.size() != 0\">\n" +
             "     and cu.dept_id  in\n" +
             "      <foreach collection=\"deptIds\" item=\"item\" open=\"(\" close=\")\" separator=\",\">\n" +
-            "         ${item}\n" +
+            "         #{item}\n" +
             "      </foreach>\n" +
             " </if> " +
-            "<if test ='ids !=null and ids!=\"\"'>\n" +
-            "   and qec.qw_user_id in (${ids})\n" +
+            "<if test='idsList != null and idsList.size() &gt; 0'>\n" +
+            "   and qec.qw_user_id in\n" +
+            "   <foreach collection=\"idsList\" item=\"id\" open=\"(\" separator=\",\" close=\")\">#{id}</foreach>\n" +
             "</if>" +
             "GROUP BY\n" +
             "    qec.qw_user_id, DATE(qec.create_time) \n" +
@@ -269,11 +272,12 @@ public interface QwWatchLogMapper extends BaseMapper<QwWatchLog>{
             " <if test=\"deptIds != null and deptIds.size() != 0\">\n" +
             "     and cu.dept_id  in\n" +
             "      <foreach collection=\"deptIds\" item=\"item\" open=\"(\" close=\")\" separator=\",\">\n" +
-            "         ${item}\n" +
+            "         #{item}\n" +
             "      </foreach>\n" +
             " </if> " +
-            "<if test ='ids !=null and ids!=\"\"'>\n" +
-            "   and qec.qw_user_id in (${ids})\n" +
+            "<if test='idsList != null and idsList.size() &gt; 0'>\n" +
+            "   and qec.qw_user_id in\n" +
+            "   <foreach collection=\"idsList\" item=\"id\" open=\"(\" separator=\",\" close=\")\">#{id}</foreach>\n" +
             "</if>" +
             "GROUP BY\n" +
             "    qec.qw_user_id, DATE(qec.create_time) \n" +
@@ -368,8 +372,9 @@ public interface QwWatchLogMapper extends BaseMapper<QwWatchLog>{
             "    qw_user qu ON qec.qw_user_id = qu.id \n" +
             "WHERE\n" +
             "    DATE(qec.create_time) &gt;= DATE(#{sTime}) and  DATE(qec.create_time) &lt;= DATE(#{eTime}) and qec.company_id =#{companyId} " +
-            "<if test ='ids !=null and ids!=\"\"'>\n" +
-            "   and qec.qw_user_id in (${ids})\n" +
+            "<if test='idsList != null and idsList.size() &gt; 0'>\n" +
+            "   and qec.qw_user_id in\n" +
+            "   <foreach collection=\"idsList\" item=\"id\" open=\"(\" separator=\",\" close=\")\">#{id}</foreach>\n" +
             "</if>" +
             "<if test ='nickName !=null and nickName!=\"\"'>\n" +
             "   and qu.qw_user_name like concat( #{nickName}, '%')\n" +

+ 18 - 0
fs-service/src/main/java/com/fs/qw/param/QwWatchLogStatisticsListParam.java

@@ -32,6 +32,24 @@ public class QwWatchLogStatisticsListParam {
     private Long id;
     private String ids;
     private List<String> idsList;
+
+    public void setIds(String ids) {
+        this.ids = ids;
+        if (ids == null || ids.trim().isEmpty()) {
+            this.idsList = null;
+            return;
+        }
+        String cleaned = ids.replace("(", "").replace(")", "").trim();
+        if (cleaned.isEmpty()) {
+            this.idsList = null;
+            return;
+        }
+        if (!cleaned.matches("[0-9,\\s]+")) {
+            throw new IllegalArgumentException("非法的企微用户ID列表");
+        }
+        this.idsList = java.util.Arrays.asList(cleaned.split("\\s*,\\s*"));
+    }
+
     private Long project;
     private Long courseId;
     private Long videoId;

+ 10 - 1
fs-service/src/main/java/com/fs/qw/utils/HMACAuth.java

@@ -5,11 +5,20 @@ import javax.crypto.spec.SecretKeySpec;
 import java.util.Base64;
 
 public class HMACAuth {
-    private static final String SECRET_KEY = "ipad-secret-key-!#$";
+    private static final String SECRET_KEY = resolveSecret();
     private static final String ALGORITHM = "HmacSHA256";
     // 设置token过期时间为5分钟(单位:毫秒)
     private static final long TOKEN_EXPIRATION_TIME = 1 * 60 * 1000;
 
+    private static String resolveSecret() {
+        String env = System.getenv("IPAD_HMAC_SECRET");
+        if (env != null && !env.trim().isEmpty()) {
+            return env.trim();
+        }
+        // 兼容历史默认;生产务必通过 IPAD_HMAC_SECRET 覆盖
+        return "ipad-secret-key-!#$";
+    }
+
     public static String generateToken() throws Exception {
         String timestamp = String.valueOf(System.currentTimeMillis());
         Mac mac = Mac.getInstance(ALGORITHM);

+ 8 - 1
fs-service/src/main/java/com/fs/sms/service/impl/SmsTServiceImpl.java

@@ -31,11 +31,18 @@ import java.util.concurrent.TimeUnit;
 public class SmsTServiceImpl implements SmsService {
     @Autowired
     private RedisCache redisCache;
+    @Autowired
+    private com.fs.config.tencent.TencentProperties tencentProperties;
 
     @Override
     public R sendTSms(String mobile, String code) {
         try {
-            Credential cred = new Credential("AKIDdAdvzoQpzuOo11mq2TntjKI5eqrhNp22", "zmLgpzzcwAFNJ4dx2iDTVHgw3ELCrIVg");
+            String secretId = tencentProperties.getSecretId();
+            String secretKey = tencentProperties.getSecretKey();
+            if (secretId == null || secretId.isEmpty() || secretKey == null || secretKey.isEmpty()) {
+                return R.error("腾讯云短信密钥未配置");
+            }
+            Credential cred = new Credential(secretId, secretKey);
             HttpProfile httpProfile = new HttpProfile();
             httpProfile.setEndpoint("sms.tencentcloudapi.com");
             ClientProfile clientProfile = new ClientProfile();

+ 9 - 4
fs-service/src/main/java/com/fs/tulin/utils/SyncStudentInfoService.java

@@ -25,19 +25,24 @@ public class SyncStudentInfoService {
 
     private static final Logger logger = Logger.getLogger(SyncStudentInfoService.class.getName());
     /**
-     * 密钥
+     * 密钥(可通过环境变量 TULIN_SYNC_SECRET 覆盖)
      */
-    private static final String SECRET_KEY = "xysync_dLsSaheCzK7RU9gd";
+    private static final String SECRET_KEY = resolve("TULIN_SYNC_SECRET", "xysync_dLsSaheCzK7RU9gd");
+
+    private static String resolve(String envName, String fallback) {
+        String v = System.getenv(envName);
+        return v != null && !v.trim().isEmpty() ? v.trim() : fallback;
+    }
 
     /**
      * 测试药店ID
      */
-    private static final String PHARMACY_ID = "26ee29ce-35aa-46c8-9650-3fe46014690c";
+    private static final String PHARMACY_ID = resolve("TULIN_PHARMACY_ID", "26ee29ce-35aa-46c8-9650-3fe46014690c");
 
     /**
      * 测试企业ID
      */
-    private static final String CORP_ID = "PNBnO6MajM0tAd8t";
+    private static final String CORP_ID = resolve("TULIN_CORP_ID", "PNBnO6MajM0tAd8t");
 
 //    public static void main(String[] args) throws JsonProcessingException {
 //        StudentInfo student = StudentInfo.builder()

+ 10 - 5
fs-service/src/main/java/com/fs/tzBankPay/form/GetTokenForm.java

@@ -5,11 +5,16 @@ import lombok.Data;
 @Data
 public class GetTokenForm {
 
-    private String tokenURL="https://open.tzbank.com/ApiGateWay/auth/getToken";
+    private String tokenURL = "https://open.tzbank.com/ApiGateWay/auth/getToken";
     private String param;
-    private String appSecret ="11C8BD481F1F308840827978841CFF66";
-    private String appKey ="9998e514-1958-4def-9fd7-693ea360c6f2";
-    private String platformPublicKey="0449B1AB7CAF1C843B827824377A2910A450418BC7C0AD0F0EF70CC97CC46832DD4CC7422FEACEEE6DE7FFEDE22D8783AA472378DE9341DD895FFE37E3C9D2E8CE";
-    private String privateKey ="0095D6D7D783A179AEACCA1D6883FF34160724F4B0F5FC7289B3E34FDA29F1FFB5";
+    private String appSecret = envOr("TZBANK_APP_SECRET", "");
+    private String appKey = envOr("TZBANK_APP_KEY", "");
+    private String platformPublicKey = envOr("TZBANK_PLATFORM_PUBLIC_KEY", "");
+    private String privateKey = envOr("TZBANK_PRIVATE_KEY", "");
+
+    private static String envOr(String name, String fallback) {
+        String v = System.getenv(name);
+        return v != null && !v.trim().isEmpty() ? v.trim() : fallback;
+    }
 
 }

+ 8 - 3
fs-service/src/main/java/com/fs/tzBankPay/form/RequestAPIForm.java

@@ -6,10 +6,15 @@ import lombok.Data;
 public class RequestAPIForm {
 
     private String requestUrl;//请求的api的url
-    private String appKey="9998e514-1958-4def-9fd7-693ea360c6f2";//您的应用的appKey
+    private String appKey = envOr("TZBANK_APP_KEY", "");//您的应用的appKey
     private String randomSec; //token请求返回的
     private String requestContent; //请求的api需要的报文
-    private String platformPublicKey="0449B1AB7CAF1C843B827824377A2910A450418BC7C0AD0F0EF70CC97CC46832DD4CC7422FEACEEE6DE7FFEDE22D8783AA472378DE9341DD895FFE37E3C9D2E8CE"; //开放平台的平台公钥
-    private String privateKey="0095D6D7D783A179AEACCA1D6883FF34160724F4B0F5FC7289B3E34FDA29F1FFB5";//您的应用的应用私钥
+    private String platformPublicKey = envOr("TZBANK_PLATFORM_PUBLIC_KEY", ""); //开放平台的平台公钥
+    private String privateKey = envOr("TZBANK_PRIVATE_KEY", "");//您的应用的应用私钥
     private String token; //token请求返回的
+
+    private static String envOr(String name, String fallback) {
+        String v = System.getenv(name);
+        return v != null && !v.trim().isEmpty() ? v.trim() : fallback;
+    }
 }

+ 16 - 11
fs-service/src/main/java/com/fs/voice/constant/Constant.java

@@ -6,23 +6,28 @@ public class Constant {
     // purchase and get : base_url,appid,secret
 
     // please replace the IP and Port, when you use the demo.
-    public static final String BASE_URL = "https://rtccall.cn-north-1.myhuaweicloud.cn:443";
+    public static final String BASE_URL = envOr("HW_VOICE_BASE_URL", "https://rtccall.cn-north-1.myhuaweicloud.cn:443");
 
     // please replace the appId and secret, when you use the demo.
-    public static final String CLICK2CALL_APPID = "OwBoDktT2SxQ1fFZubl549ryir01";
-    public static final String CLICK2CALL_SECRET = "33HKupSlrPbaxzh4bw0eJNiVPa0S";
-    public static final String CALLNOTIFY_APPID = "*****";
-    public static final String CALLNOTIFY_SECRET = "*****";
-    public static final String CALLVERIFY_APPID = "*****";
-    public static final String CALLVERIFY_SECRET = "*****";
-    public static final String TRANSPARENTLY_TRANSMITS_APPID = "*****";
-    public static final String TRANSPARENTLY_TRANSMITS_SECRET = "*****";
+    public static final String CLICK2CALL_APPID = envOr("HW_VOICE_CLICK2CALL_APPID", "");
+    public static final String CLICK2CALL_SECRET = envOr("HW_VOICE_CLICK2CALL_SECRET", "");
+    public static final String CALLNOTIFY_APPID = envOr("HW_VOICE_CALLNOTIFY_APPID", "");
+    public static final String CALLNOTIFY_SECRET = envOr("HW_VOICE_CALLNOTIFY_SECRET", "");
+    public static final String CALLVERIFY_APPID = envOr("HW_VOICE_CALLVERIFY_APPID", "");
+    public static final String CALLVERIFY_SECRET = envOr("HW_VOICE_CALLVERIFY_SECRET", "");
+    public static final String TRANSPARENTLY_TRANSMITS_APPID = envOr("HW_VOICE_TRANSPARENT_APPID", "");
+    public static final String TRANSPARENTLY_TRANSMITS_SECRET = envOr("HW_VOICE_TRANSPARENT_SECRET", "");
+
+    private static String envOr(String name, String fallback) {
+        String v = System.getenv(name);
+        return v != null && !v.trim().isEmpty() ? v.trim() : fallback;
+    }
 
     /*
      *IP and port of callback url.
      *please replace the IP and Port of your Application deployment environment address, when you use the demo.
      */
-    public static final String CALLBACK_BASE_URL = "http://192.88.88.88:9999";
+    public static final String CALLBACK_BASE_URL = envOr("HW_VOICE_CALLBACK_BASE_URL", "http://127.0.0.1:9999");
 
     /*
      * complete callback url
@@ -57,4 +62,4 @@ public class Constant {
     public static final String VOICE_VERIFICATION_COMERCIAL = BASE_URL + "/rest/httpsessions/callVerify/v1.0";
     public static final String CALL_NOTIFY_COMERCIAL = BASE_URL + "/rest/httpsessions/callnotify/v2.0";
     public static final String VOICE_FILE_DOWNLOAD = BASE_URL + "/rest/provision/voice/record/v1.0";
-}
+}

+ 9 - 6
fs-service/src/main/resources/application-config-druid-jnmy.yml

@@ -67,20 +67,23 @@ fs :
     expire: 31536000
     header: AppToken
 nuonuo:
-  key: 10924508
-  secret: A2EB20764D304D16
+  # 密钥改由环境变量 NUONUO_APP_KEY / NUONUO_APP_SECRET / NUONUO_TOKEN(见 scrm.env)
+  # key: 10924508
+  # secret: A2EB20764D304D16
 
 # 存储捅配置
 tencent_cloud_config:
-  secret_id: AKIDLl1tguyrZ6QddTCi2BLJ4e3OXVIuJVVK
-  secret_key: g9R6kLrMp8EDzXszylLispiQxHRN6cw5
+  # 密钥改由环境变量 TENCENT_CLOUD_SECRET_ID / TENCENT_CLOUD_SECRET_KEY(见 scrm.env)
+  # secret_id: AKIDLl1tguyrZ6QddTCi2BLJ4e3OXVIuJVVK
+  # secret_key: g9R6kLrMp8EDzXszylLispiQxHRN6cw5
   bucket: jnmy-1323137866
   app_id: 1323137866
   region: ap-chongqing
   proxy: jnmy
 tmp_secret_config:
-  secret_id: AKIDCj7NSNAovtqeJpBau8GZ4CGB71thXIx
-  secret_key: lTB5zwqqz7CNhzDOWivFWedgfTBgxgB
+  # 临时密钥:测试环境变量时一并注释;若临时凭证上传失败可恢复
+  # secret_id: AKIDCj7NSNAovtqeJpBau8GZ4CGB71thXIx
+  # secret_key: lTB5zwqqz7CNhzDOWivFWedgfTBgxgB
   bucket: fs-131972100
   app_id: 1319721001
   region: ap-chongqing

+ 3 - 3
fs-service/src/main/resources/application-dev-czt.yml

@@ -77,7 +77,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -125,7 +125,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -175,7 +175,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-dev-jnlzjk.yml

@@ -80,7 +80,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -131,7 +131,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -180,7 +180,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-dev-yjb.yml

@@ -74,7 +74,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -122,7 +122,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -171,7 +171,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-dev.yml

@@ -74,7 +74,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -122,7 +122,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -171,7 +171,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-bjczwh.yml

@@ -77,7 +77,7 @@ spring:
           url-pattern: /druid/*
           # 控制台管理用户名和密码
           login-username: fs
-          login-password: 123456
+          login-password: ${DRUID_LOGIN_PASSWORD:}
         filter:
           stat:
             enabled: true
@@ -125,7 +125,7 @@ spring:
           url-pattern: /druid/*
           # 控制台管理用户名和密码
           login-username: fs
-          login-password: 123456
+          login-password: ${DRUID_LOGIN_PASSWORD:}
         filter:
           stat:
             enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-bjzm-test.yml

@@ -77,7 +77,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -125,7 +125,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-bjzm.yml

@@ -77,7 +77,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -125,7 +125,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -174,7 +174,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-bly-test.yml

@@ -68,7 +68,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -116,7 +116,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-bly.yml

@@ -68,7 +68,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -116,7 +116,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -165,7 +165,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-bnkc-test.yml

@@ -77,7 +77,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -125,7 +125,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-bnkc.yml

@@ -77,7 +77,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -125,7 +125,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -174,7 +174,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-cfryt-test.yml

@@ -76,7 +76,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -124,7 +124,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-cfryt.yml

@@ -76,7 +76,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -124,7 +124,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-cqtyt-test.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -131,7 +131,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-cqtyt.yml

@@ -68,7 +68,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -120,7 +120,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -169,7 +169,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-czt.yml

@@ -77,7 +77,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -125,7 +125,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -174,7 +174,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-ddgy.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -131,7 +131,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -180,7 +180,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-drk-test.yml

@@ -69,7 +69,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -117,7 +117,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-drk.yml

@@ -69,7 +69,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -117,7 +117,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -166,7 +166,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-fby.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -127,7 +127,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -176,7 +176,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-fzbt.yml

@@ -67,7 +67,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -119,7 +119,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -168,7 +168,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-gzzdy.yml

@@ -68,7 +68,7 @@ spring:
           url-pattern: /druid/*
           # 控制台管理用户名和密码
           login-username: fs
-          login-password: 123456
+          login-password: ${DRUID_LOGIN_PASSWORD:}
         filter:
           stat:
             enabled: true
@@ -117,7 +117,7 @@ spring:
           url-pattern: /druid/*
           # 控制台管理用户名和密码
           login-username: fs
-          login-password: 123456
+          login-password: ${DRUID_LOGIN_PASSWORD:}
         filter:
           stat:
             enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-hat.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -131,7 +131,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -180,7 +180,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-hcl.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -127,7 +127,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -176,7 +176,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-hdt.yml

@@ -81,7 +81,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -129,7 +129,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -178,7 +178,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-heyantang-test.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -127,7 +127,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-heyantang.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -127,7 +127,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -176,7 +176,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-hst.yml

@@ -68,7 +68,7 @@ spring:
           url-pattern: /druid/*
           # 控制台管理用户名和密码
           login-username: fs
-          login-password: 123456
+          login-password: ${DRUID_LOGIN_PASSWORD:}
         filter:
           stat:
             enabled: true
@@ -117,7 +117,7 @@ spring:
           url-pattern: /druid/*
           # 控制台管理用户名和密码
           login-username: fs
-          login-password: 123456
+          login-password: ${DRUID_LOGIN_PASSWORD:}
         filter:
           stat:
             enabled: true
@@ -166,7 +166,7 @@ spring:
           url-pattern: /druid/*
           # 控制台管理用户名和密码
           login-username: fs
-          login-password: 123456
+          login-password: ${DRUID_LOGIN_PASSWORD:}
         filter:
           stat:
             enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-hsyy.yml

@@ -76,7 +76,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -124,7 +124,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-hyt-test.yml

@@ -77,7 +77,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -129,7 +129,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-hyt.yml

@@ -77,7 +77,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -129,7 +129,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -178,7 +178,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-hzyy.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -127,7 +127,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -176,7 +176,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-jkj.yml

@@ -69,7 +69,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -117,7 +117,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-jnlzjk.yml

@@ -77,7 +77,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -125,7 +125,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-jnmy-test.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -127,7 +127,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -176,7 +176,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-jnmy.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -127,7 +127,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -177,7 +177,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-jnsyj-test.yml

@@ -81,7 +81,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -134,7 +134,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-jnsyj.yml

@@ -81,7 +81,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -134,7 +134,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -183,7 +183,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-jzzx-test.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -131,7 +131,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-jzzx.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -131,7 +131,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -180,7 +180,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-knt-test.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -131,7 +131,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-knt.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -131,7 +131,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -180,7 +180,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-knt2.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -131,7 +131,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -180,7 +180,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-kyt.yml

@@ -72,7 +72,7 @@ spring:
           url-pattern: /druid/*
           # 控制台管理用户名和密码
           login-username: fs
-          login-password: 123456
+          login-password: ${DRUID_LOGIN_PASSWORD:}
         filter:
           stat:
             enabled: true
@@ -121,7 +121,7 @@ spring:
           url-pattern: /druid/*
           # 控制台管理用户名和密码
           login-username: fs
-          login-password: 123456
+          login-password: ${DRUID_LOGIN_PASSWORD:}
         filter:
           stat:
             enabled: true
@@ -170,7 +170,7 @@ spring:
           url-pattern: /druid/*
           # 控制台管理用户名和密码
           login-username: fs
-          login-password: 123456
+          login-password: ${DRUID_LOGIN_PASSWORD:}
         filter:
           stat:
             enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-lmjy-test.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -127,7 +127,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-lmjy.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -127,7 +127,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -176,7 +176,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-myhk-test.yml

@@ -80,7 +80,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -129,7 +129,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-myhk.yml

@@ -77,7 +77,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -129,7 +129,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -178,7 +178,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-nmgyt-test.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -127,7 +127,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-nmgyt.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -127,7 +127,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -176,7 +176,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-qdtst-test.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -127,7 +127,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-qdtst.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -127,7 +127,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -176,7 +176,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-sczy.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -131,7 +131,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -180,7 +180,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-sft-test.yml

@@ -68,7 +68,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -116,7 +116,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-sft.yml

@@ -68,7 +68,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -120,7 +120,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -169,7 +169,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-shdn.yml

@@ -77,7 +77,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -125,7 +125,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-sxjz.yml

@@ -77,7 +77,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -125,7 +125,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -174,7 +174,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 2 - 2
fs-service/src/main/resources/application-druid-syysy-test.yml

@@ -76,7 +76,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -124,7 +124,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-syysy.yml

@@ -76,7 +76,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -124,7 +124,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -173,7 +173,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-whhm.yml

@@ -69,7 +69,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -117,7 +117,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -166,7 +166,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-xfk.yml

@@ -79,7 +79,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -127,7 +127,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -176,7 +176,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-xzt.yml

@@ -70,7 +70,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -118,7 +118,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -167,7 +167,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

+ 3 - 3
fs-service/src/main/resources/application-druid-yjb.yml

@@ -69,7 +69,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -117,7 +117,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true
@@ -166,7 +166,7 @@ spring:
                     url-pattern: /druid/*
                     # 控制台管理用户名和密码
                     login-username: fs
-                    login-password: 123456
+                    login-password: ${DRUID_LOGIN_PASSWORD:}
                 filter:
                     stat:
                         enabled: true

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff