Closed mad closed 4 years ago
Полезная функциональность, сделаем
Павел, спасибо за issue! Мы это сделали)
На самом деле мы полностью переделали модуль auth-iam - скрестили его с yandex-cloud/java-sdk, чтобы можно было использовать все доступные в облаке способы аутентификации.
Теперь можно заиспользовать любой CredentialProvider, просто передав его при настройке транспорта.
Например, провайдер по работе с метаданными:
CredentialProvider provider = Auth.computeEngineBuilder()
.withDefaultBackgroundUpdater()
.build();
GrpcTransport transport = GrpcTransport.forEndpoint("some-ydb-endpoint", "my_db")
.withAuthProvider(CloudAuthProvider.newAuthProvider(provider))
.build();
А вот как будет выглядеть предыдущий вариант (с апи-ключами):
CredentialProvider provider = ApiKeyCredentialProvider.builder()
.fromFile(/path/to/json/file"")
.withDefaultBackgroundUpdater()
.build();
GrpcTransport transport = GrpcTransport.forEndpoint("some-ydb-endpoint", "my_db")
.withAuthProvider(CloudAuthProvider.newAuthProvider(provider))
.build();
Чуть побольше примеров работы с CredentialProvider можно найти здесь - https://github.com/yandex-cloud/java-sdk/blob/master/java-sdk-examples/src/main/java/yandex.cloud.sdk/examples/auth/AuthExample.java
Что-то наподобие IamAuthContext