Обновление Spring-Boot до версии 3.4.0 сделает GCP Secretmanager не работатьJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Обновление Spring-Boot до версии 3.4.0 сделает GCP Secretmanager не работать

Сообщение Anonymous »

фон

Начнем обновлять пружину с 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
[*]

Код: Выделить всё

secretmanager
не работайте с помощью Application.yml
[/list]

Подробнее здесь: https://stackoverflow.com/questions/792 ... r-not-work
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»