¿Cómo puedo crear un proveedor de credenciales de origen de datos personalizado que, por ejemplo, lea las credenciales de un archivo en el disco? Necesito una forma de establecer las credenciales del código. Creo que ese es el camino a seguir en Quarkus.

Quarkus.datasource.username = Quiero configurar esto en el código

Quarkus.datasource.password = Quiero configurar esto en el código

Solo veo una integración de bóveda de hashicorp. Necesito una manera de hacer esto en un proveedor de credenciales personalizado. Puedo ver que hay una manera de establecer la clase que representa a su proveedor, pero ¿qué interfaz debe implementar esa clase?

De los documentos:

Quarkus.datasource.credentials-provider =?

Quarkus.datasource.credentials-provider-type =?

El tipo de proveedor de credenciales. Es el valor @Named del bean de proveedor de credenciales. Se utiliza para discriminar si hay múltiples beans CredentialsProvider disponibles. Para Vault es: vault-credentials-provider. No es necesario si solo hay un proveedor de credenciales disponible.

¿Alguien puede ayudarme con esto?

1
overthetop 24 abr. 2020 a las 14:56

2 respuestas

Interesante. Hemos diseñado ese contrato solo con Vault en mente, por lo que la interfaz se llama io.quarkus.vault.CredentialsProvider y está en el módulo quarkus-vault-spi.

Dicho esto, creo que podría agregar ese módulo a su proyecto (no tiene ninguna dependencia de Vault). Entonces podría implementar esa interfaz y las cosas deberían estar bien.

Su CredentialsProvider debe ser un bean CDI, por lo que debe hacerlo @Singleton o @ApplicationScoped.

Entonces solo necesitaría definir un valor para quarkus.datasource.credentials-provider=<value here>. El nombre se pasa al proveedor de las credenciales y se usa en el caso de Vault.

En su caso, solo necesita ser definida.

Si funciona para usted, ¿podría abrir un problema en nuestro rastreador? Creo que deberíamos hacer que esa interfaz sea parte de la extensión del origen de datos y no específica de Vault.

0
Guillaume Smet 24 abr. 2020 a las 12:36

Sí, o.quarkus.vault.CredentialsProvider está destinado a ser HashiCorp Vault neutral. Consulte este problema para obtener orientación: https://github.com/quarkusio/ quarkus / issues / 6896 # issuecomment-581014674

0
Sergey Beryozkin 24 abr. 2020 a las 12:47