2016-08-25 2 views
0

Я стартер с BigQuery. И моя проблема связана с аутентификацией. верительных Файл был создан и магазин по адресу:Проблемы с аутентификацией BigQuery

/home/ltloi/.config/gcloud/application_default_credentials.json

Содержание:

{ 
    "type": "service_account", 
    "project_id": "xxx", 
    "private_key_id": "xxx", 
    "private_key": "-----BEGIN PRIVATE KEY-----xxx\n-----END PRIVATE KEY-----\n", 
    "client_email": "xxx", 
    "client_id": "xxx", 
    "auth_uri": "https://accounts.google.com/o/oauth2/auth", 
    "token_uri": "https://accounts.google.com/o/oauth2/token", 
    "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", 
    "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/bigqueryservices1%40neon-deployment-141106.iam.gserviceaccount.com" 
} 

Исходник-:

// just authentication with google big query 
public static Bigquery createAuthorizedClient() throws IOException { 
    // Create the credential 
    HttpTransport transport = new NetHttpTransport(); 
    JsonFactory jsonFactory = new JacksonFactory(); 

    GoogleCredential credential = GoogleCredential.getApplicationDefault(transport, jsonFactory); 

    // Depending on the environment that provides the default credentials (e.g. Compute Engine, App 
    // Engine), the credentials may require us to specify the scopes we need explicitly. 
    // Check for this case, and inject the Bigquery scope if required. 
    if (credential.createScopedRequired()) { 
     credential = credential.createScoped(BigqueryScopes.all()); 
    } 

    return new Bigquery.Builder(transport, jsonFactory, credential) 
     .setApplicationName("Bigquery Samples") 
     .build(); 
    } 

Проблемы Проблема: Исключение в нить «главный» java.io.IOException: Ошибка чтения файла удостоверении от места

/home/ltloi/.config/gcloud/application_default_credentials.json

Ошибка:

java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty at com.google.api.client.googleapis.auth.oauth2.DefaultCredentialProvider.getCredentialUsingWellKnownFile(DefaultCredentialProvider.java:251) at com.google.api.client.googleapis.auth.oauth2.DefaultCredentialProvider.getDefaultCredentialUnsynchronized(DefaultCredentialProvider.java:117) at com.google.api.client.googleapis.auth.oauth2.DefaultCredentialProvider.getDefaultCredential(DefaultCredentialProvider.java:91) at com.google.api.client.googleapis.auth.oauth2.GoogleCredential.getApplicationDefault(GoogleCredential.java:213) at com.google.cloud.bigquery.samples.GettingStarted.createAuthorizedClient(GettingStarted.java:53) at com.google.cloud.bigquery.samples.GettingStarted.main(GettingStarted.java:135)

При попытке отладки и код показывает, что происходит с SSL формы выпуска HttpClient.

Эксперты, пожалуйста, помогите решить проблему. Я пытаюсь добавить SSL в https://accounts.google.com/o/oauth2/auth

https://www.googleapis.com/oauth2/v1/certs

, но не может решить.

Я также устанавливаю Cloud SDK, но также НЕ МОЖЕТ разрешаться.

{ 
    "client_id": "XXXX", 
    "client_secret": "XXX", 
    "refresh_token": "XXXX", 
    "type": "authorized_user" 
} 

Примечание: Я Done gcloud беты аутентификация приложений по умолчанию Войтиgcloud беты аутентификация приложения печать по умолчанию доступа лексемы

Благодаря & С уважением,

ответ

0

Были приложения по умолчанию учетные данные, созданные с помощью следующей команды?

gcloud beta auth application-default login 

Я думаю, что есть два дополнительных быстрых теста, которые вы могли бы сделать, чтобы приблизиться к источнику проблем. Во-первых, вы можете попробовать это, чтобы убедиться, что ваши учетные данные в порядке:

gcloud beta auth application-default print-access-token 

Затем вы можете скопировать и вставить этот краткий питон скрипт, чтобы убедиться, что он работает (отсюда: https://cloud.google.com/bigquery/authentication)

# Grab the application's default credentials from the environment. 
credentials = GoogleCredentials.get_application_default() 
# Construct the service object for interacting with the BigQuery API. 
bigquery_service = build('bigquery', 'v2', credentials=credentials) 
+0

Привет , gcloud beta auth application-default login & gcloud beta auth application-default print-access-token работает правильно. –

+0

Тот же вопрос, когда я пытаюсь: https://cloud.google.com/dataflow/docs/quickstarts/quickstart-java-maven –