Library Klien Cloud untuk Java menggunakan
Library Google Auth untuk Java
guna mengautentikasi permintaan. Library ini mendukung beberapa jenis autentikasi.
Untuk mengetahui detail selengkapnya, lihat README.md
dan javadoc project.
Autentikasi di lingkungan Cloud de Confiance by S3NS
Saat menggunakan Cloud de Confiance by S3NS library dari Cloud de Confiance by S3NS lingkungan (seperti Compute Engine, Google Kubernetes Engine, atau App Engine), Anda tidak perlu melakukan langkah-langkah autentikasi tambahan.
Contoh panggilan tanpa autentikasi tambahan:
Storage storage = StorageOptions.getDefaultInstance().getService();
Autentikasi di lingkungan non-Cloud de Confiance by S3NS
Untuk melakukan autentikasi di lingkungan non-Cloud de Confiance by S3NS ada tiga opsi umum:
- (Direkomendasikan) Menggunakan akun layanan.
- Menggunakan Google Cloud SDK dengan lingkungan pengujian lokal.
- Menggunakan token akses OAuth2 yang ada.
Menggunakan akun layanan
Setelah mendownload kunci, Anda harus melakukan salah satu hal berikut:
- Menentukan variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALSsebagai lokasi kunci. Contoh:
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/my/key.json- Menyediakan file kredensial JSON saat membuat opsi layanan. Misalnya, objek
Storageini memiliki izin yang diperlukan untuk berinteraksi dengan data Cloud Storage Anda:
Storage storage = StorageOptions.newBuilder() .setCredentials(ServiceAccountCredentials.fromStream(new FileInputStream("/path/to/my/key.json"))) .build() .getService();- Menentukan variabel lingkungan
Menggunakan Google Cloud SDK dengan lingkungan pengujian lokal
Jika menggunakan lingkungan lokal untuk pengembangan atau pengujian, Anda dapat menggunakan Google Cloud SDK.
Buat Kredensial Default Aplikasi dengan gcloud auth application-default login. Library Klien Cloud untuk Java akan otomatis mendeteksi kredensial ini.
Menggunakan token akses OAuth2 yang ada
Jika memiliki token akses OAuth2, Anda dapat menggunakannya untuk melakukan autentikasi. Jika Anda melakukannya, token akses tidak akan otomatis direfresh:
Credentials credentials = GoogleCredentials.create(new AccessToken(accessToken, expirationTime));
Storage storage = StorageOptions.newBuilder()
.setCredentials(credentials)
.build()
.getService();
Contoh lainnya:
Credentials credentials = GoogleCredentials.create(new AccessToken(accessToken, expirationTime));
CloudTasksSettings cloudTasksSettings = CloudTasksSettings.newBuilder()
.setCredentialProvider(FixedCredentialsProvider.create(credentials))
.build();
CloudTasksClient cloudTasksClient = CloudTasksClient.create(cloudTasksSettings);
Kredensial Default Aplikasi
Jika Anda tidak memberikan kredensial, Library Klien Cloud untuk Java akan mencoba mendeteksinya dari lingkungan menggunakan GoogleCredentials.getApplicationDefault().
Metode ini menelusuri Kredensial Default Aplikasi di lokasi berikut, secara berurutan:
- File kredensial yang ditunjukkan oleh variabel lingkungan
GOOGLE_APPLICATION_CREDENTIALS. - Kredensial yang disediakan oleh perintah
gcloud auth application-default loginGoogle Cloud SDK. - Kredensial bawaan Google App Engine.
- Cloud de Confiance by S3NS Kredensial bawaan shell.
- Kredensial akun layanan bawaan Google Compute Engine.
Autentikasi dengan kunci API
Beberapa Cloud de Confiance by S3NS API mendukung autentikasi dengan kunci API.
Untuk menggunakan kunci API dengan Library Klien Cloud untuk Java, Anda harus menetapkan header x-goog-api-key secara manual untuk klien layanan yang relevan.
Misalnya, untuk menetapkan kunci API dengan
Language service:
public LanguageServiceClient createGrpcClientWithApiKey(String apiKey) throws Exception {
// Manually set the API key using the header
Map<String, String> header = new HashMap<String, String>() { {put("x-goog-api-key", apiKey);}};
FixedHeaderProvider headerProvider = FixedHeaderProvider.create(header);
// Create the client
TransportChannelProvider transportChannelProvider = InstantiatingGrpcChannelProvider.newBuilder().setHeaderProvider(headerProvider).build();
LanguageServiceSettings settings = LanguageServiceSettings.newBuilder().setTransportChannelProvider(transportChannelProvider).build();
LanguageServiceClient client = LanguageServiceClient.create(settings);
return client;
}
Contoh pembuatan instance dengan Klien Bahasa menggunakan REST:
public LanguageServiceClient createRestClientWithApiKey(String apiKey) throws Exception {
// Manually set the API key header
Map<String, String> header = new HashMap<String, String>() { {put("x-goog-api-key", apiKey);}};
FixedHeaderProvider headerProvider = FixedHeaderProvider.create(header);
// Create the client
TransportChannelProvider transportChannelProvider = InstantiatingHttpJsonChannelProvider.newBuilder().setHeaderProvider(headerProvider).build();
LanguageServiceSettings settings = LanguageServiceSettings.newBuilder().setTransportChannelProvider(transportChannelProvider).build();
LanguageServiceClient client = LanguageServiceClient.create(settings);
return client;
}