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);