Die Java-Clientbibliothek für Spanner funktioniert mit Spanner Omni genauso wie mit Spanner. In diesem Dokument wird beschrieben, wie Sie sichere Verbindungen zu Spanner Omni herstellen, indem Sie die Java-Clientbibliothek konfigurieren. Sie stellen diese Verbindungen her, indem Sie Clientoptionen festlegen, wenn Sie einen Datenbankverwaltungsclient oder einen Datenbankclient erstellen.
Die Java-Clientbibliothek unterstützt Nur-Text-, TLS- und mTLS-Verbindungen.
Weitere Informationen finden Sie in der Spanner-Dokumentation unter Erste Schritte mit Spanner in Java.
Hinweis
Wenn Sie mit Spanner Omni in Java beginnen möchten, verwenden Sie die Java-Clientbibliothek in Version 6.115.0 oder höher.
Wenn Sie Maven ohne die Materialliste (Bill of Materials, BOM) verwenden, fügen Sie den Abhängigkeiten der Datei pom.xml Folgendes hinzu:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-spanner</artifactId>
<version>6.115.0</version>
</dependency>
SpannerOptions-Objekt konfigurieren
Wenn Sie das Objekt SpannerOptions konfigurieren, um ein DatabaseClient oder DatabaseAdminClient zu erstellen, geben Sie den Spanner Omni-Endpunkt mit setExperimentalHost() an.
Reinen Text verwenden
Wenn Sie eine Nur-Text-Verbindung herstellen möchten, geben Sie den Spanner Omni-Endpunkt an und verwenden Sie die Methode usePlainText():
SpannerOptions options =
SpannerOptions.newBuilder()
.setExperimentalHost("http://ENDPOINT") // Replace with your Spanner Omni endpoint
.usePlainText()
.build();
Spanner spanner = options.getService();
TLS-Einrichtung verwenden
Wenn Sie das SpannerOptions-Objekt für eine TLS-Verbindung konfigurieren, müssen Sie keine zusätzlichen Anmeldedaten festlegen. Sie müssen das CA-Zertifikat dem Java-Truststore hinzufügen.
Verwenden Sie den folgenden Befehl, um das CA-Zertifikat dem Java-Truststore hinzuzufügen:
sudo keytool -import -trustcacerts -file /.spanner/certs/ca.crt -alias spanner-ca -keystore $JAVA_HOME/lib/security/cacerts
Alternativ können Sie einen benutzerdefinierten CA-Zertifikatspeicher direkt beim Ausführen der Anwendung übergeben:
java -Djavax.net.ssl.trustStore=PATH_TO_CUSTOM_CACERTS -Djavax.net.ssl.trustStorePassword=changeit app
Um die Kompatibilität aufrechtzuerhalten, erstellen Sie Ihren benutzerdefinierten Truststore auf Grundlage des Java-Truststores, indem Sie eine Kopie erstellen:
cp $JAVA_HOME/lib/security/cacerts /PATH_TO_CUSTOM_CACERTS
mTLS-Einrichtung verwenden
Wenn Sie eine mTLS-Verbindung verwenden möchten, konvertieren Sie den von Spanner Omni generierten Schlüssel mit dem folgenden Befehl in ein mit Java kompatibles Format:
openssl pkcs8 -topk8 -in ~/.spanner/certs/client.key -out ~/.spanner/certs/java-client.key -nocrypt
Das folgende Beispiel zeigt, wie das SpannerOptions-Objekt für die Verwendung eines Clientzertifikats konfiguriert wird:
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();
Datenbank erstellen
Erstellen Sie als Nächstes die Datenbank. Geben Sie das Projekt bei Bedarf im Bibliothekscode als default an. Geben Sie beispielsweise default an, wenn Sie ein DatabaseId erstellen:
DatabaseId dbId = DatabaseId.of("default", "default", DATABASE_ID);
DatabaseClient client = spanner.getDatabaseClient(dbId);