La biblioteca cliente de Java para Spanner funciona con Spanner Omni de la misma manera que con Spanner. En este documento, se muestra cómo establecer conexiones seguras con Spanner Omni configurando la biblioteca cliente de Java. Para establecer estas conexiones, debes configurar las opciones del cliente cuando creas un cliente administrativo de la base de datos o un cliente de la base de datos.
La biblioteca cliente de Java admite conexiones de texto sin formato, TLS y mTLS.
Para obtener más información, consulta Comienza a usar Spanner en Java en la documentación de Spanner.
Antes de comenzar
Para comenzar a usar Spanner Omni en Java, usa la versión 6.115.0 o posterior de la biblioteca cliente de Java.
Si usas Maven sin la lista de materiales (BOM), agrega lo siguiente a las dependencias del archivo pom.xml:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-spanner</artifactId>
<version>6.115.0</version>
</dependency>
Configura el objeto SpannerOptions
Mientras configuras el objeto SpannerOptions para crear un objeto DatabaseClient o DatabaseAdminClient, especifica el extremo de Omni de Spanner con setExperimentalHost().
Usa la comunicación de texto simple
Para establecer una conexión de texto sin formato, especifica el extremo de Spanner Omni y usa el método usePlainText():
SpannerOptions options =
SpannerOptions.newBuilder()
.setExperimentalHost("http://ENDPOINT") // Replace with your Spanner Omni endpoint
.usePlainText()
.build();
Spanner spanner = options.getService();
Usa una configuración de TLS
Cuando configuras el objeto SpannerOptions para una conexión TLS, no necesitas establecer ninguna propiedad de credenciales adicional. Debes agregar el certificado de CA al almacén de confianza de Java.
Para agregar el certificado de la AC al almacén de certificados de confianza de Java, usa el siguiente comando:
sudo keytool -import -trustcacerts -file /.spanner/certs/ca.crt -alias spanner-ca -keystore $JAVA_HOME/lib/security/cacerts
Como alternativa, puedes pasar un almacén de certificados de la AC personalizado directamente cuando ejecutes la aplicación:
java -Djavax.net.ssl.trustStore=PATH_TO_CUSTOM_CACERTS -Djavax.net.ssl.trustStorePassword=changeit app
Para mantener la compatibilidad, crea tu almacén de confianza personalizado sobre el almacén de confianza de Java haciendo una copia:
cp $JAVA_HOME/lib/security/cacerts /PATH_TO_CUSTOM_CACERTS
Usa una configuración de mTLS
Para usar una conexión mTLS, convierte la clave que generó Spanner Omni a un formato compatible con Java con el siguiente comando:
openssl pkcs8 -topk8 -in ~/.spanner/certs/client.key -out ~/.spanner/certs/java-client.key -nocrypt
En el siguiente ejemplo, se muestra cómo configurar el objeto SpannerOptions para usar un certificado de cliente:
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 la base de datos
A continuación, crea la base de datos. Especifica el proyecto como default cuando sea necesario en el código de la biblioteca. Por ejemplo, especifica default cuando crees un DatabaseId:
DatabaseId dbId = DatabaseId.of("default", "default", DATABASE_ID);
DatabaseClient client = spanner.getDatabaseClient(dbId);