diff --git a/src/backend/build.gradle b/src/backend/build.gradle index 453bb86898..ea55721f5c 100644 --- a/src/backend/build.gradle +++ b/src/backend/build.gradle @@ -27,7 +27,7 @@ import com.dorongold.gradle.tasktree.TaskTreePlugin buildscript { ext { set('springDependencyManagePluginVersion', "1.0.11.RELEASE") - set("springBootVersion", "2.6.13") + set("springBootVersion", "2.7.11") set("gradleJooqVersion", "3.0.0") } @@ -68,7 +68,7 @@ buildscript { plugins { id "java-library" id "io.spring.dependency-management" version '1.0.11.RELEASE' apply false - id 'org.springframework.boot' version '2.6.13' apply false + id 'org.springframework.boot' version '2.7.11' apply false id "idea" id 'nu.studer.jooq' version '3.0.0' } @@ -82,7 +82,7 @@ ext { set("springVersion", "5.3.25") // https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies - set("springBootVersion", "2.6.13") + set("springBootVersion", "2.7.11") // https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies set('springCloudVersion', "2021.0.5") set('springCloudOtelVersion', "1.1.3") @@ -94,7 +94,8 @@ ext { set('jacksonVersion', "2.13.5") set('jaxrsVersion', "2.0") // https://mvnrepository.com/artifact/ch.qos.logback/logback-core - set('logbackVersion', "1.2.10") + // Fix CVE-2023-6378 1.2.11->1.2.13 + set('logbackVersion', "1.2.13") // https://mvnrepository.com/artifact/org.slf4j/slf4j-api set('slf4jVersion', "1.7.30") set('servletVersion', "3.0.1") @@ -118,13 +119,14 @@ ext { // https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient set('apacheHttpClientVersion', "4.5.13") set('apacheThriftVersion', "0.15.0") - set('commonsIOVersion', "2.6") + // Fix CVE-2024-47554 CVE-2021-29425 2.6->2.14.0 + set('commonsIOVersion', "2.14.0") set('javaxServletVersion', "4.0.1") - set('guavaVersion', "28.2-jre") + // Fix CVE-2023-2976 CVE-2020-8908 28.2-jre->32.0.0-android + set('guavaVersion', "32.0.0-android") set('caffeineVersion', "2.9.3") set('jjwtVersion', "0.9.1") set('hibernateValidatorVersion', "6.1.4.Final") - set('micrometerPrometheusVersion', "1.5.1") set('flapdoodleEmbeddedMongdbDBVersion', "4.4.0") set('jodaTimeVersion', "2.10.5") set('bcprovVersion', "1.70") @@ -137,8 +139,6 @@ ext { set('kubernetesJavaClientVersion', "11.0.4") set('springCloudKubernetesVersion', "2.0.6") set('cryptoJavaSDKVersion', "1.1.3") - // Fix CVE-2023-44487 - set('tomcat.version', "9.0.90") // Fix CVE-2019-10086,CVE-2014-0114 set('commonsBeanutilsVersion', "1.9.4") if (System.getProperty("bkjobVersion")) { @@ -153,8 +153,32 @@ ext { set('embeddedRedisVersion', "0.6") set('openai4jVersion', "0.18.0") set('shardingJdbcVersion', "5.4.1") - set('snakeyamlVersion', "1.33") set('bkDevOpsLeafVersion', "1.0.2-RELEASE") + // Fix CVE-2023-44981,CVE-2024-23944 3.7.1->3.8.4 + set('zookeeperVersion', "3.8.4") + // Fix CVE-2023-3635 2.8.0->3.4.0 + set('okioVersion', "3.4.0") + // Fix CVE-2023-34062 1.0.24->1.0.39 + set('reactorNettyHttpVersion', "1.0.39") + set('reactorNettyCoreVersion', "1.0.39") + // Fix CVE-2023-44487 4.1.84.Final->4.1.100.Final + set('nettyCodecHttp2Version', "4.1.100.Final") + // Fix CVE-2024-38809 CVE-2024-22262 CVE-2024-22259 CVE-2024-22243 5.3.23->5.3.39 + set('springWebVersion', "5.3.39") + // Fix CVE-2021-0341 4.9.1->4.9.2 + set('okHttpVersion', "4.9.2") + // Fix CVE-2023-46120 5.13.1->5.18.0 + set('amqpClientVersion', "5.18.0") + // Fix CVE-2023-4759 5.13.1.202206130422-r->6.6.1.202309021850-r + set('jgitVersion', "6.6.1.202309021850-r") + + // 使用Spring Boot内置的版本号变量,不采用驼峰命名,保持与官方BOM文件一致 + // Fix CVE-2023-22102 8.0.33->8.2.0 + set('mysql.version', "8.2.0") + // Fix CVE-2023-44487, CVE-2024-52316 + set('tomcat.version', "9.0.96") + // Fix CVE-2022-41854 CVE-2022-38752 CVE-2022-38751 CVE-2022-38749 CVE-2022-25857 CVE-2022-1471 1.29->1.33 + set('snakeyaml.version', "2.0") } group "com.tencent.bk.job" @@ -313,7 +337,6 @@ subprojects { dependency "com.github.ben-manes.caffeine:caffeine:$caffeineVersion" dependency group: 'io.jsonwebtoken', name: 'jjwt', version: "$jjwtVersion" dependency "net.sourceforge.jchardet:jchardet:1.0" - dependency "io.micrometer:micrometer-registry-prometheus:$micrometerPrometheusVersion" dependency "de.flapdoodle.embed:de.flapdoodle.embed.mongo.spring26x:$flapdoodleEmbeddedMongdbDBVersion" dependency "de.flapdoodle.embed:de.flapdoodle.embed.mongo:$flapdoodleEmbeddedMongdbDBVersion" dependency "joda-time:joda-time:$jodaTimeVersion" @@ -352,8 +375,16 @@ subprojects { dependency "com.github.kstyrc:embedded-redis:$embeddedRedisVersion" dependency "dev.ai4j:openai4j:$openai4jVersion" dependency "org.apache.shardingsphere:shardingsphere-jdbc-core:$shardingJdbcVersion" - dependency "org.yaml:snakeyaml:$snakeyamlVersion" dependency "com.tencent.devops.leaf:leaf-boot-starter:$bkDevOpsLeafVersion" + dependency "org.apache.zookeeper:zookeeper:$zookeeperVersion" + dependency "com.squareup.okio:okio:$okioVersion" + dependency "io.projectreactor.netty:reactor-netty-http:$reactorNettyHttpVersion" + dependency "io.projectreactor.netty:reactor-netty-core:$reactorNettyCoreVersion" + dependency "io.netty:netty-codec-http2:$nettyCodecHttp2Version" + dependency "org.springframework:spring-web:$springWebVersion" + dependency "com.squareup.okhttp3:okhttp:$okHttpVersion" + dependency "com.rabbitmq:amqp-client:$amqpClientVersion" + dependency "org.eclipse.jgit:org.eclipse.jgit:$jgitVersion" } } dependencies { diff --git a/src/backend/commons/common-mysql-sharding/leaf_gen_jooq.gradle b/src/backend/commons/common-mysql-sharding/leaf_gen_jooq.gradle index d79c2dbbe1..6ac30f1e32 100644 --- a/src/backend/commons/common-mysql-sharding/leaf_gen_jooq.gradle +++ b/src/backend/commons/common-mysql-sharding/leaf_gen_jooq.gradle @@ -25,7 +25,7 @@ apply plugin: 'nu.studer.jooq' dependencies { api "org.jooq:jooq" - jooqRuntime "mysql:mysql-connector-java" + jooqRuntime "com.mysql:mysql-connector-j" } def databaseName = "job_leaf" diff --git a/src/backend/commons/common-service/src/test/java/FeatureToggleTest.java b/src/backend/commons/common-service/src/test/java/FeatureToggleTest.java index 97029e6495..16bdc4cdba 100644 --- a/src/backend/commons/common-service/src/test/java/FeatureToggleTest.java +++ b/src/backend/commons/common-service/src/test/java/FeatureToggleTest.java @@ -40,6 +40,7 @@ import org.junit.jupiter.api.Test; import org.mockito.MockedStatic; import org.mockito.Mockito; +import org.yaml.snakeyaml.LoaderOptions; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.Constructor; @@ -54,7 +55,8 @@ class FeatureToggleTest { @BeforeAll static void beforeAll() { - Yaml yaml = new Yaml(new Constructor(FeatureToggleProperties.class)); + Constructor constructor = new Constructor(FeatureToggleProperties.class, new LoaderOptions()); + Yaml yaml = new Yaml(constructor); InputStream inputStream = FeatureToggleTest.class.getClassLoader() .getResourceAsStream("features_1.yaml"); FeatureToggleProperties featureToggleProperties = yaml.load(inputStream); diff --git a/src/backend/job-analysis/boot-job-analysis/build.gradle b/src/backend/job-analysis/boot-job-analysis/build.gradle index 2f2e65f57a..8b75387720 100644 --- a/src/backend/job-analysis/boot-job-analysis/build.gradle +++ b/src/backend/job-analysis/boot-job-analysis/build.gradle @@ -32,7 +32,7 @@ dependencies { implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap' implementation 'org.springframework:spring-webmvc' implementation(group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis') - runtimeOnly('mysql:mysql-connector-java') + runtimeOnly('com.mysql:mysql-connector-j') testImplementation("com.h2database:h2") } diff --git a/src/backend/job-assemble/build.gradle b/src/backend/job-assemble/build.gradle index 80183d6905..72f42b1ffc 100644 --- a/src/backend/job-assemble/build.gradle +++ b/src/backend/job-assemble/build.gradle @@ -40,7 +40,7 @@ dependencies { implementation project(":job-analysis:service-job-analysis") implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap' - runtimeOnly 'mysql:mysql-connector-java' + runtimeOnly 'com.mysql:mysql-connector-j' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.junit.jupiter:junit-jupiter' diff --git a/src/backend/job-backup/boot-job-backup/build.gradle b/src/backend/job-backup/boot-job-backup/build.gradle index 054e3e1233..4b2e6c7189 100644 --- a/src/backend/job-backup/boot-job-backup/build.gradle +++ b/src/backend/job-backup/boot-job-backup/build.gradle @@ -32,7 +32,7 @@ dependencies { implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap' implementation 'org.springframework:spring-webmvc' implementation(group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis') - runtimeOnly('mysql:mysql-connector-java') + runtimeOnly('com.mysql:mysql-connector-j') testImplementation("com.h2database:h2") } diff --git a/src/backend/job-crontab/boot-job-crontab/build.gradle b/src/backend/job-crontab/boot-job-crontab/build.gradle index 57b7f9a824..482181cb06 100644 --- a/src/backend/job-crontab/boot-job-crontab/build.gradle +++ b/src/backend/job-crontab/boot-job-crontab/build.gradle @@ -32,7 +32,7 @@ dependencies { implementation(group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis') implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap' implementation 'org.springframework:spring-webmvc' - runtimeOnly 'mysql:mysql-connector-java' + runtimeOnly 'com.mysql:mysql-connector-j' testImplementation("com.h2database:h2") } diff --git a/src/backend/job-execute/boot-job-execute/build.gradle b/src/backend/job-execute/boot-job-execute/build.gradle index 33419ab984..17f84ee1a5 100644 --- a/src/backend/job-execute/boot-job-execute/build.gradle +++ b/src/backend/job-execute/boot-job-execute/build.gradle @@ -28,7 +28,7 @@ dependencies { api project(":commons:common-i18n") implementation 'org.springframework.boot:spring-boot-starter-jdbc' implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap' - runtimeOnly 'mysql:mysql-connector-java' + runtimeOnly 'com.mysql:mysql-connector-j' testImplementation("com.h2database:h2") } diff --git a/src/backend/job-file-gateway/boot-job-file-gateway/build.gradle b/src/backend/job-file-gateway/boot-job-file-gateway/build.gradle index 5e68063241..1f5cd5045b 100644 --- a/src/backend/job-file-gateway/boot-job-file-gateway/build.gradle +++ b/src/backend/job-file-gateway/boot-job-file-gateway/build.gradle @@ -31,7 +31,7 @@ dependencies { implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap' implementation 'org.springframework:spring-webmvc' implementation(group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis') - runtimeOnly('mysql:mysql-connector-java') + runtimeOnly('com.mysql:mysql-connector-j') } springBoot { getMainClass().set("com.tencent.bk.job.file_gateway.JobFileGatewayBootApplication") diff --git a/src/backend/job-manage/api-job-manage/src/main/java/com/tencent/bk/job/manage/model/migration/BkPlatformInfo.java b/src/backend/job-manage/api-job-manage/src/main/java/com/tencent/bk/job/manage/model/migration/BkPlatformInfo.java index 2c0566d465..1c6e85fb38 100644 --- a/src/backend/job-manage/api-job-manage/src/main/java/com/tencent/bk/job/manage/model/migration/BkPlatformInfo.java +++ b/src/backend/job-manage/api-job-manage/src/main/java/com/tencent/bk/job/manage/model/migration/BkPlatformInfo.java @@ -44,8 +44,8 @@ public class BkPlatformInfo { @JsonProperty("appLogo") private String appLogo = "/static/images/logo.png"; - @JsonProperty("favIcon") - private String favIcon = "/static/images/favicon.icon"; + @JsonProperty("favicon") + private String favicon = "/static/images/favicon.icon"; @JsonProperty("helperText") private String helperText = "联系BK助手"; diff --git a/src/backend/job-manage/boot-job-manage/build.gradle b/src/backend/job-manage/boot-job-manage/build.gradle index 914ef17644..5105e496cd 100644 --- a/src/backend/job-manage/boot-job-manage/build.gradle +++ b/src/backend/job-manage/boot-job-manage/build.gradle @@ -32,7 +32,7 @@ dependencies { implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap' implementation 'org.springframework:spring-webmvc' implementation(group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis') - runtimeOnly('mysql:mysql-connector-java') + runtimeOnly('com.mysql:mysql-connector-j') testImplementation("com.h2database:h2") } diff --git a/src/backend/task_gen_jooq.gradle b/src/backend/task_gen_jooq.gradle index bf29ad52db..76d42daf0d 100644 --- a/src/backend/task_gen_jooq.gradle +++ b/src/backend/task_gen_jooq.gradle @@ -25,7 +25,7 @@ apply plugin: 'nu.studer.jooq' dependencies { api "org.jooq:jooq" - jooqRuntime "mysql:mysql-connector-java" + jooqRuntime "com.mysql:mysql-connector-j" } def nameArr = name.split('-') diff --git a/src/backend/task_job_package.gradle b/src/backend/task_job_package.gradle index 26a7bc3e10..c5e00103ad 100644 --- a/src/backend/task_job_package.gradle +++ b/src/backend/task_job_package.gradle @@ -79,7 +79,7 @@ task postProcessRelease(type: GenCompleteDependJarListAndRemoveInfectedJarsTask) remove "logback-classic-.*jar" remove "logback-core-.*jar" remove "mchange-commons-java-.*jar" - remove "mysql-connector-java-.*jar" + remove "com.mysql:mysql-connector-j-.*jar" remove "org.eclipse.jgit-.*jar" remove "org.eclipse.jgit.http.apache-.*jar" remove "reactive-streams-.*jar" diff --git a/src/frontend/index-dev.html b/src/frontend/index-dev.html index 65f2af9bd0..612073835b 100644 --- a/src/frontend/index-dev.html +++ b/src/frontend/index-dev.html @@ -28,11 +28,6 @@
- -