[ 
https://issues.apache.org/jira/browse/BEAM-895?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daniel Halperin closed BEAM-895.
--------------------------------
    Resolution: Fixed

> Transport.newStorageClient requires credentials
> -----------------------------------------------
>
>                 Key: BEAM-895
>                 URL: https://issues.apache.org/jira/browse/BEAM-895
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-java-core
>            Reporter: Frances Perry
>            Assignee: Pei He
>             Fix For: 0.4.0-incubating
>
>
> Transport.newStorageClient requires credentials, even if those aren't needed.
> Impact: Examples use publicly accessible files on Google Cloud Storage, 
> however reading those is still requiring the user to authenticate with Google 
> Cloud Storage.
> java.lang.reflect.InvocationTargetException
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:497)
>       at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293)
>       at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.RuntimeException: Unable to get application default 
> credentials. Please see 
> https://developers.google.com/accounts/docs/application-default-credentials 
> for details on how to specify credentials. This version of the SDK is 
> dependent on the gcloud core component version 2015.02.05 or newer to be able 
> to get credentials from the currently authorized user via gcloud auth.
>       at 
> org.apache.beam.sdk.util.Credentials.getCredential(Credentials.java:123)
>       at 
> org.apache.beam.sdk.util.GcpCredentialFactory.getCredential(GcpCredentialFactory.java:43)
>       at 
> org.apache.beam.sdk.options.GcpOptions$GcpUserCredentialsFactory.create(GcpOptions.java:264)
>       at 
> org.apache.beam.sdk.options.GcpOptions$GcpUserCredentialsFactory.create(GcpOptions.java:254)
>       at 
> org.apache.beam.sdk.options.ProxyInvocationHandler.returnDefaultHelper(ProxyInvocationHandler.java:549)
>       at 
> org.apache.beam.sdk.options.ProxyInvocationHandler.getDefault(ProxyInvocationHandler.java:490)
>       at 
> org.apache.beam.sdk.options.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:152)
>       at com.sun.proxy.$Proxy52.getGcpCredential(Unknown Source)
>       at 
> org.apache.beam.sdk.util.Transport.newStorageClient(Transport.java:148)
>       at 
> org.apache.beam.sdk.util.GcsUtil$GcsUtilFactory.create(GcsUtil.java:96)
>       at 
> org.apache.beam.sdk.util.GcsUtil$GcsUtilFactory.create(GcsUtil.java:84)
>       at 
> org.apache.beam.sdk.options.ProxyInvocationHandler.returnDefaultHelper(ProxyInvocationHandler.java:549)
>       at 
> org.apache.beam.sdk.options.ProxyInvocationHandler.getDefault(ProxyInvocationHandler.java:490)
>       at 
> org.apache.beam.sdk.options.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:152)
>       at com.sun.proxy.$Proxy52.getGcsUtil(Unknown Source)
>       at 
> org.apache.beam.sdk.util.GcsIOChannelFactory.match(GcsIOChannelFactory.java:43)
>       at org.apache.beam.sdk.io.TextIO$Read$Bound.apply(TextIO.java:283)
>       at org.apache.beam.sdk.io.TextIO$Read$Bound.apply(TextIO.java:195)
>       at 
> org.apache.beam.sdk.runners.PipelineRunner.apply(PipelineRunner.java:76)
>       at 
> org.apache.beam.runners.direct.DirectRunner.apply(DirectRunner.java:226)
>       at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:400)
>       at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:323)
>       at org.apache.beam.sdk.values.PBegin.apply(PBegin.java:58)
>       at org.apache.beam.sdk.Pipeline.apply(Pipeline.java:173)
>       at org.apache.beam.examples.WordCount.main(WordCount.java:195)
>       ... 6 more
> Caused by: java.io.IOException: The Application Default Credentials are not 
> available. They are available if running on Google App Engine, Google Compute 
> Engine, or Google Cloud Shell. Otherwise, the environment variable 
> GOOGLE_APPLICATION_CREDENTIALS must be defined pointing to a file defining 
> the credentials. See 
> https://developers.google.com/accounts/docs/application-default-credentials 
> for more information.
>       at 
> com.google.api.client.googleapis.auth.oauth2.DefaultCredentialProvider.getDefaultCredential(DefaultCredentialProvider.java:98)
>       at 
> com.google.api.client.googleapis.auth.oauth2.GoogleCredential.getApplicationDefault(GoogleCredential.java:213)
>       at 
> com.google.api.client.googleapis.auth.oauth2.GoogleCredential.getApplicationDefault(GoogleCredential.java:191)
>       at 
> org.apache.beam.sdk.util.Credentials.getCredential(Credentials.java:121)
>       ... 30 more



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to