BigQuery身份验证问题
我是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。
请专家帮忙解决。我已经尝试添加的 https://accounts.google.com/o/oauth2/auth
https://www.googleapis.com/oauth2/v1/certs
SSL却不能解析。
我也安装Cloud SDK,但也无法解决。
{
"client_id": "XXXX",
"client_secret": "XXX",
"refresh_token": "XXXX",
"type": "authorized_user"
}
注:我已经做了gcloud公测身份验证的应用程序的默认登录gcloud公测身份验证应用程序默认的打印访问令牌
感谢&问候,
被应用默认使用以下命令创建凭证?
gcloud beta auth application-default login
我想还有两个额外的快速测试,你可以做更接近的问题来源。首先,你可以试试这个,以验证您的凭据都很好:
gcloud beta auth application-default print-access-token
然后,你可以复制并粘贴此简短的Python脚本,以验证它的工作原理(从这里开始: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)
喜,gcloud beta auth application-default login&gcloud beta auth application-default print-access-token work is correct。 –
同样的问题,当我尝试:https://cloud.google.com/dataflow/docs/quickstarts/quickstart-java-maven –