Программисты JAVA общаются здесь
Anonymous
Обновление Spring-Boot до версии 3.4.0 сделает GCP Secretmanager не работать
Сообщение
Anonymous » 12 июн 2025, 20:48
фон
Начнем обновлять пружину с 3.3.6 до 3.4.0 .
build.gradle
Код: Выделить всё
//build.gradle
//old
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.6'
id 'io.spring.dependency-management' version '1.1.6'
id 'org.sonarqube' version '5.1.0.4882'
id 'jacoco'
id 'com.gorylenko.gradle-git-properties' version '2.4.2'
id 'project-report'
}
ext {
set('springCloudGcpVersion', "5.8.0")
set('springCloudVersion', "2023.0.4")
}
dependencies {
implementation platform('com.google.cloud:spring-cloud-gcp-dependencies:5.8.0')
implementation platform('org.springframework.cloud:spring-cloud-dependencies:2023.0.4')
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
implementation 'org.bouncycastle:bcprov-jdk18on:1.79'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'com.google.cloud:spring-cloud-gcp-starter-secretmanager'
implementation 'com.google.cloud:spring-cloud-gcp-starter-storage'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0'
implementation 'org.apache.commons:commons-collections4:4.4'
implementation 'org.mapstruct:mapstruct:1.6.3'
annotationProcessor 'org.mapstruct:mapstruct-processor:1.6.3'
annotationProcessor 'org.projectlombok:lombok-mapstruct-binding:0.2.0'
annotationProcessor 'org.projectlombok:lombok'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'org.postgresql:postgresql'
}
dependencyManagement {
imports {
mavenBom "com.google.cloud:spring-cloud-gcp-dependencies:${springCloudGcpVersion}"
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
< /code>
//build.gradle
//new
plugins {
id 'java'
id 'org.springframework.boot' version '3.4.0'
id 'io.spring.dependency-management' version '1.1.6'
id 'org.sonarqube' version '5.1.0.4882'
id 'jacoco'
id 'com.gorylenko.gradle-git-properties' version '2.4.2'
id 'project-report'
}
ext {
set('springCloudGcpVersion', "5.9.0")
set('springCloudVersion', "2024.0.0")
}
dependencies {
implementation platform('com.google.cloud:spring-cloud-gcp-dependencies:5.9.0')
implementation platform('org.springframework.cloud:spring-cloud-dependencies:2024.0.0')
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap'
implementation 'org.springframework.cloud:spring-cloud-starter-openfeign'
implementation 'org.bouncycastle:bcprov-jdk18on:1.79'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'com.google.cloud:spring-cloud-gcp-starter-secretmanager'
implementation 'com.google.cloud:spring-cloud-gcp-starter-storage'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0'
implementation 'org.apache.commons:commons-collections4:4.4'
implementation 'org.mapstruct:mapstruct:1.6.3'
annotationProcessor 'org.mapstruct:mapstruct-processor:1.6.3'
annotationProcessor 'org.projectlombok:lombok-mapstruct-binding:0.2.0'
annotationProcessor 'org.projectlombok:lombok'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'org.postgresql:postgresql'
}
dependencyManagement {
imports {
mavenBom "com.google.cloud:spring-cloud-gcp-dependencies:${springCloudGcpVersion}"
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
< /code>
lib version
[list]
[*]org.springframework.boot: 3.3.6 -> 3.4.0
[*]com.google.cloud:spring-cloud-gcp-dependencie: 5.8.0 -> 5.9.0
[*]org.springframework.cloud:spring-cloud-dependencies: 2023.0.4 -> 2024.0.0
[*]org.springdoc:springdoc-openapi-starter-webmvc-ui: 2.6.0 -> 2.7.0
[/list]
Problem
Now, datasource connect failed because using secretmanager
для регистрации DB Connection Infomation.
детали проблемы и тест
Код: Выделить всё
# application.yml
spring:
config:
import: "sm://"
datasource:
url: jdbc:postgresql://localhost:5432/cehr?currentSchema=XXXX
username: ${sm://psql-username}
password: ${sm://psql-password}
< /code>
@Service
public class XXXService extends CommonService {
@Autowired
private SecretManagerTemplate secretManagerTemplate;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
@Value("${sm://psql-username}")
private String username2;
@Value("${sm://psql-password}")
private String password2;
public void execute() {
System.out.println("username = " + username);
System.out.println("password = " + password);
System.out.println("username2 = " + username2);
System.out.println("password2 = " + password2);
System.out.println("psql-username = " + secretManagerTemplate.getSecretString("sm://psql-username"));
System.out.println("psql-password = " + secretManagerTemplate.getSecretString("sm://psql-password"));
}
}
< /code>
# output
username = //psql-username
password = //psql-password
username2 = //psql-username
password2 = //psql-password
psql-username = ********** (correct)
psql-password = ********** (correct)
< /code>
Problem analysis
[list]
[*]secretmanager
Работать с помощью secretmanagertemplate
[*]
не работайте с помощью Application.yml
[/list]
Подробнее здесь:
https://stackoverflow.com/questions/792 ... r-not-work
1749750536
Anonymous
фон Начнем обновлять пружину с 3.3.6 до 3.4.0 . build.gradle [code]//build.gradle //old plugins { id 'java' id 'org.springframework.boot' version '3.3.6' id 'io.spring.dependency-management' version '1.1.6' id 'org.sonarqube' version '5.1.0.4882' id 'jacoco' id 'com.gorylenko.gradle-git-properties' version '2.4.2' id 'project-report' } ext { set('springCloudGcpVersion', "5.8.0") set('springCloudVersion', "2023.0.4") } dependencies { implementation platform('com.google.cloud:spring-cloud-gcp-dependencies:5.8.0') implementation platform('org.springframework.cloud:spring-cloud-dependencies:2023.0.4') implementation 'org.springframework.boot:spring-boot-starter' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.cloud:spring-cloud-starter-openfeign' implementation 'org.bouncycastle:bcprov-jdk18on:1.79' implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'com.google.cloud:spring-cloud-gcp-starter-secretmanager' implementation 'com.google.cloud:spring-cloud-gcp-starter-storage' implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0' implementation 'org.apache.commons:commons-collections4:4.4' implementation 'org.mapstruct:mapstruct:1.6.3' annotationProcessor 'org.mapstruct:mapstruct-processor:1.6.3' annotationProcessor 'org.projectlombok:lombok-mapstruct-binding:0.2.0' annotationProcessor 'org.projectlombok:lombok' compileOnly 'org.projectlombok:lombok' runtimeOnly 'org.postgresql:postgresql' } dependencyManagement { imports { mavenBom "com.google.cloud:spring-cloud-gcp-dependencies:${springCloudGcpVersion}" mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } } < /code> //build.gradle //new plugins { id 'java' id 'org.springframework.boot' version '3.4.0' id 'io.spring.dependency-management' version '1.1.6' id 'org.sonarqube' version '5.1.0.4882' id 'jacoco' id 'com.gorylenko.gradle-git-properties' version '2.4.2' id 'project-report' } ext { set('springCloudGcpVersion', "5.9.0") set('springCloudVersion', "2024.0.0") } dependencies { implementation platform('com.google.cloud:spring-cloud-gcp-dependencies:5.9.0') implementation platform('org.springframework.cloud:spring-cloud-dependencies:2024.0.0') implementation 'org.springframework.boot:spring-boot-starter' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap' implementation 'org.springframework.cloud:spring-cloud-starter-openfeign' implementation 'org.bouncycastle:bcprov-jdk18on:1.79' implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'com.google.cloud:spring-cloud-gcp-starter-secretmanager' implementation 'com.google.cloud:spring-cloud-gcp-starter-storage' implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0' implementation 'org.apache.commons:commons-collections4:4.4' implementation 'org.mapstruct:mapstruct:1.6.3' annotationProcessor 'org.mapstruct:mapstruct-processor:1.6.3' annotationProcessor 'org.projectlombok:lombok-mapstruct-binding:0.2.0' annotationProcessor 'org.projectlombok:lombok' compileOnly 'org.projectlombok:lombok' runtimeOnly 'org.postgresql:postgresql' } dependencyManagement { imports { mavenBom "com.google.cloud:spring-cloud-gcp-dependencies:${springCloudGcpVersion}" mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}" } } < /code> lib version [list] [*]org.springframework.boot: 3.3.6 -> 3.4.0 [*]com.google.cloud:spring-cloud-gcp-dependencie: 5.8.0 -> 5.9.0 [*]org.springframework.cloud:spring-cloud-dependencies: 2023.0.4 -> 2024.0.0 [*]org.springdoc:springdoc-openapi-starter-webmvc-ui: 2.6.0 -> 2.7.0 [/list] Problem Now, datasource connect failed because using secretmanager[/code] для регистрации DB Connection Infomation. детали проблемы и тест [code]# application.yml spring: config: import: "sm://" datasource: url: jdbc:postgresql://localhost:5432/cehr?currentSchema=XXXX username: ${sm://psql-username} password: ${sm://psql-password} < /code> @Service public class XXXService extends CommonService { @Autowired private SecretManagerTemplate secretManagerTemplate; @Value("${spring.datasource.username}") private String username; @Value("${spring.datasource.password}") private String password; @Value("${sm://psql-username}") private String username2; @Value("${sm://psql-password}") private String password2; public void execute() { System.out.println("username = " + username); System.out.println("password = " + password); System.out.println("username2 = " + username2); System.out.println("password2 = " + password2); System.out.println("psql-username = " + secretManagerTemplate.getSecretString("sm://psql-username")); System.out.println("psql-password = " + secretManagerTemplate.getSecretString("sm://psql-password")); } } < /code> # output username = //psql-username password = //psql-password username2 = //psql-username password2 = //psql-password psql-username = ********** (correct) psql-password = ********** (correct) < /code> Problem analysis [list] [*]secretmanager[/code] Работать с помощью secretmanagertemplate [*][code]secretmanager[/code] не работайте с помощью Application.yml [/list] Подробнее здесь: [url]https://stackoverflow.com/questions/79284050/spring-boot-upgrade-to-version-3-4-0-make-gcp-secretmanager-not-work[/url]
0 Ответы
16 Просмотры
Последнее сообщение Anonymous
26 дек 2024, 12:59
0 Ответы
0 Просмотры
Последнее сообщение Anonymous
03 сен 2025, 11:13
0 Ответы
0 Просмотры
Последнее сообщение Anonymous
03 сен 2025, 11:13
0 Ответы
26 Просмотры
Последнее сообщение Anonymous
30 сен 2024, 10:03
0 Ответы
22 Просмотры
Последнее сообщение Anonymous
07 окт 2024, 10:52