Describe el error
azure-spring-boot-starter-keyvault-secrets
tiene propiedades de configuración de ruptura (y mal documentadas).
Excepción o seguimiento de pila
Llamar a esto con una bóveda de claves que contiene un secreto deshabilitado es un buen ejemplo que muestra que:
java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: java.lang.IllegalStateException: Failed to configure KeyVault property source
Caused by: com.azure.core.exception.ResourceModifiedException: Status code 403, "{"error":{"code":"Forbidden","message":"Operation get is not allowed on a disabled secret.","innererror":{"code":"SecretDisabled"}}}"
Reproducir
Pasos para reproducir el comportamiento:
property.yaml
(!):yaml
azure:
keyvault:
allow:
telemetry: false
enabled: true
uri: https://${KEYVAULT_NAME}.vault.azure.net/
client-id: ${AZURE_CLIENT_ID}
client-key: ${KEYVAULT_CLIENT_SECRET:not-a-secret}
tenant-id: ${AZURE_TENANT}
secret:
keys: test1
test1
y el secreto deshabilitado test2
.*Configuración
azure-spring-boot-starter-keyvault-secrets
2.3.3Comportamiento esperado
Comportamiento similar al de 2.2.X (como se documenta):
azure.keyvault.secret.keys
es una propiedad para indicar que si la aplicación usa claves secretas específicas, si esta propiedad está configurada, la aplicación solo cargará las claves en la propiedad y no cargará todas las claves desde el almacén de claves[...]
Si no desea participar, simplemente desactívelo estableciendo la siguiente configuración en application.properties.
azure.keyvault.allow.telemetry=false
→ Solo se recuperan test1
. No se envía telemetría.
Contexto adicional
AZURE_KEYVAULT_SECRET_KEYS = "azure.keyvault.secret.keys"
SECRET_KEYS("secret-keys"),
Lista de verificación de información
Por favor, asegúrese de haber agregado toda la siguiente información arriba y marque los campos obligatorios; de lo contrario, trataremos al emisor como un informe incompleto.
Hola, @ frank-fischer-by.
Gracias por comunicarte.
IMU, secret-keys
es más razonable que secret.keys
. Lo mismo que allow-telemetry
.
Perdón por el cambio de ruptura.
Y perdón por el documento no actualizado.
He creado un PR para arreglar el documento;
Hola @chenrujun ,
gracias por la actualización.
Estoy bien de cualquier manera, solo me preguntaba acerca de la inconsistencia.
Ahora que sé cuáles son los valores correctos, puedo cambiar la configuración 🙂.
Gracias por responder y actuar tan rápido 👍.
Volver a calificar su PR: Creo que mencionar el cambio radical en el Changelog podría ayudar a otras personas a evitarlo.
Hola, @ frank-fischer-by.
Creo que mencionar el cambio radical en el registro de cambios podría ayudar a otras personas a evitarlo.
Tiene sentido. Muchas gracias por su sugerencia. 🙇