A biblioteca de cliente Java para Spanner funciona com o Spanner Omni da mesma forma que funciona com o Spanner. Neste documento, mostramos como estabelecer conexões seguras com o Spanner Omni configurando a biblioteca de cliente Java. Para estabelecer essas conexões, defina as opções do cliente ao criar um cliente administrativo ou um cliente de banco de dados.
A biblioteca de cliente Java é compatível com conexões de texto simples, TLS e mTLS.
Para mais informações, consulte Começar a usar o Spanner em Java na documentação do Spanner.
Antes de começar
Para começar a usar o Spanner Omni em Java, use a biblioteca de cliente Java versão 6.115.0 ou mais recente.
Se você usa o Maven sem a lista de materiais (BOM), adicione o seguinte às dependências do arquivo
pom.xml:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-spanner</artifactId>
<version>6.115.0</version>
</dependency>
Configurar o objeto SpannerOptions
Ao configurar o
objeto SpannerOptions
para criar um
DatabaseClient ou
DatabaseAdminClient,
especifique o endpoint do Spanner Omni usando setExperimentalHost().
Usar comunicação em texto simples
Para estabelecer uma conexão de texto simples, especifique o endpoint do Spanner Omni
e use o método usePlainText():
SpannerOptions options =
SpannerOptions.newBuilder()
.setExperimentalHost("http://ENDPOINT") // Replace with your Spanner Omni endpoint
.usePlainText()
.build();
Spanner spanner = options.getService();
Usar uma configuração de TLS
Ao configurar o objeto SpannerOptions para uma conexão TLS, não é necessário definir outras propriedades de credenciais. Adicione o certificado da CA ao keystore de confiança do Java.
Para adicionar o certificado de CA ao truststore do Java, use o seguinte comando:
sudo keytool -import -trustcacerts -file /.spanner/certs/ca.crt -alias spanner-ca -keystore $JAVA_HOME/lib/security/cacerts
Como alternativa, você pode transmitir um armazenamento de certificado de CA personalizado diretamente ao executar o aplicativo:
java -Djavax.net.ssl.trustStore=PATH_TO_CUSTOM_CACERTS -Djavax.net.ssl.trustStorePassword=changeit app
Para manter a compatibilidade, crie seu keystore de confiança personalizado com base no keystore de confiança do Java fazendo uma cópia:
cp $JAVA_HOME/lib/security/cacerts /PATH_TO_CUSTOM_CACERTS
Usar uma configuração de mTLS
Para usar uma conexão mTLS, converta a chave gerada pelo Spanner Omni em um formato compatível com Java usando o seguinte comando:
openssl pkcs8 -topk8 -in ~/.spanner/certs/client.key -out ~/.spanner/certs/java-client.key -nocrypt
O exemplo a seguir mostra como configurar o objeto SpannerOptions para usar
um certificado do 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();
Crie o banco de dados
Em seguida, crie o banco de dados. Especifique o projeto como default quando necessário no código da biblioteca. Por exemplo, especifique default ao criar um
DatabaseId:
DatabaseId dbId = DatabaseId.of("default", "default", DATABASE_ID);
DatabaseClient client = spanner.getDatabaseClient(dbId);