I am playing around with the Google Cloud DLP Java library. I've set up my service credentials and saved them in a JSON file as per the instructions here:
https://cloud.google.com/dlp/docs/libraries.
The documentation states that the preferred way to authenticate is by setting the environment variable GOOGLE_APPLICATION_CREDENTIALS
to point to the path of the JSON file that contains the credentials. This is not all that practical in my case. I have a Spring Boot application where all the code (as well as the JSON file with the credentials) is embedded in a "fat jar". I can easily use the class loader to obtain an InputStream to the resource, but I can't really point to it inside the jar file from an environment variable. It's also not practical to create an environment variable from within a running JVM without resorting to hacks like using reflection, etc.
Some other Google Cloud libraries have service classes that can be initialized with a GoogleCredentials
object, but I haven't found a way of doing this with the DLP library. Is there any way of passing a GoogleCredentials
into the DlpServiceClient
?