Utilizza la libreria client Java per connetterti a Spanner Omni

La libreria client Java per Spanner funziona con Spanner Omni allo stesso modo di Spanner. Questo documento mostra come stabilire connessioni sicure a Spanner Omni configurando la libreria client Java. Queste connessioni vengono stabilite impostando le opzioni client quando crei un client amministrativo del database o un client di database.

La libreria client Java supporta connessioni in testo non crittografato, TLS e mTLS.

Per saperne di più, consulta la sezione Guida introduttiva a Spanner in Java nella documentazione di Spanner.

Prima di iniziare

Per iniziare a utilizzare Spanner Omni in Java, utilizza la libreria client Java versione 6.115.0 o successive.

Se utilizzi Maven senza la distinta materiali (BOM), aggiungi quanto segue alle dipendenze del file pom.xml:

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-spanner</artifactId>
  <version>6.115.0</version>
</dependency>

Configura l'oggetto SpannerOptions

Mentre configuri l'oggetto SpannerOptions per creare un DatabaseClient o un DatabaseAdminClient, specifica l'endpoint Spanner Omni utilizzando setExperimentalHost().

Utilizzare la comunicazione in testo normale

Per stabilire una connessione in testo normale, specifica l'endpoint Spanner Omni e utilizza il metodo usePlainText():

SpannerOptions options =
    SpannerOptions.newBuilder()
        .setExperimentalHost("http://ENDPOINT") // Replace with your Spanner Omni endpoint
        .usePlainText()
        .build();
Spanner spanner = options.getService();

Utilizzare una configurazione TLS

Quando configuri l'oggetto SpannerOptions per una connessione TLS, non devi impostare proprietà delle credenziali aggiuntive. Devi aggiungere il certificato CA al truststore Java.

Per aggiungere il certificato CA al truststore Java, utilizza questo comando:

sudo keytool -import -trustcacerts -file /.spanner/certs/ca.crt -alias spanner-ca -keystore $JAVA_HOME/lib/security/cacerts

In alternativa, puoi passare direttamente un archivio di certificati CA personalizzato quando esegui l'applicazione:

java -Djavax.net.ssl.trustStore=PATH_TO_CUSTOM_CACERTS -Djavax.net.ssl.trustStorePassword=changeit app

Per mantenere la compatibilità, crea il tuo truststore personalizzato sopra il truststore Java creando una copia:

cp $JAVA_HOME/lib/security/cacerts /PATH_TO_CUSTOM_CACERTS

Utilizzare una configurazione mTLS

Per utilizzare una connessione mTLS, converti la chiave generata da Spanner Omni in un formato compatibile con Java utilizzando il seguente comando:

openssl pkcs8 -topk8 -in ~/.spanner/certs/client.key -out ~/.spanner/certs/java-client.key -nocrypt

L'esempio seguente mostra come configurare l'oggetto SpannerOptions per utilizzare un certificato client:

   SpannerOptions options =
        SpannerOptions.newBuilder()
           .setExperimentalHost("https://ENDPOINT") // Replace with your Spanner Omni endpoint
.useClientCert("PATH_TO_CLIENT_CERT","PATH_TO_CLIENT_CERT_KEY")
.build();
   Spanner spanner = options.getService();

Crea il database

A questo punto, crea il database. Specifica il progetto come default, se necessario, nel codice della libreria. Ad esempio, specifica default quando crei un DatabaseId:

DatabaseId dbId = DatabaseId.of("default", "default", DATABASE_ID);
DatabaseClient client = spanner.getDatabaseClient(dbId);