[ 
https://issues.apache.org/jira/browse/HADOOP-17725?focusedWorklogId=603486&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-603486
 ]

ASF GitHub Bot logged work on HADOOP-17725:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 28/May/21 12:07
            Start Date: 28/May/21 12:07
    Worklog Time Spent: 10m 
      Work Description: sadikovi commented on pull request #3041:
URL: https://github.com/apache/hadoop/pull/3041#issuecomment-850372026


   Tested commit c8ed0cc25bd094240b6274df447bdc33aa93546c. Ran the following 
code 
   
   ```scala
   import org.apache.hadoop.fs._
   
   val conf = spark.sessionState.newHadoopConf
   
   conf.set("fs.azure.account.auth.type", "OAuth")
   conf.set("fs.azure.account.oauth.provider.type", 
"org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
   conf.set("fs.azure.account.oauth2.client.id", "<client-id>")
   // 
conf.set("fs.azure.account.oauth2.client.secret.<account>.dfs.core.windows.net",
 "<client-secret>")
   // conf.set("fs.azure.account.oauth2.client.secret", "<client-secret>")
   conf.set("fs.azure.account.oauth2.client.endpoint", 
"https://login.microsoftonline.com/<endpoint>")
   
   val path = new Path("abfss://<container>@<account>.dfs.core.windows.net/")
   val fs = path.getFileSystem(conf)
   fs.getFileStatus(path)
   ``` 
   
   with the storage account in West US, everything seems to be work correctly. 
If I comment out one or more configs, e.g. client-secret or client-id, the 
error message is as follows:
   ```
   TokenAccessProviderException: Unable to load OAuth token provider class.
   ...
   Caused by: ConfigurationPropertyNotFoundException: Configuration property 
fs.azure.account.oauth2.client.secret not found.
   ...
   ```
   
   The code works when commenting out `fs.azure.account.oauth2.client.secret` 
or `fs.azure.account.oauth2.client.secret.<account>.dfs.core.windows.net`, the 
same is applicable to other configs.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 603486)
    Time Spent: 3h  (was: 2h 50m)

> Improve error message for token providers in ABFS
> -------------------------------------------------
>
>                 Key: HADOOP-17725
>                 URL: https://issues.apache.org/jira/browse/HADOOP-17725
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: fs/azure, hadoop-thirdparty
>    Affects Versions: 3.3.0
>            Reporter: Ivan
>            Assignee: Viraj Jasani
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 3h
>  Remaining Estimate: 0h
>
> It would be good to improve error messages for token providers in ABFS. 
> Currently, when a configuration key is not found or mistyped, the error is 
> not very clear on what went wrong. It would be good to indicate that the key 
> was required but not found in Hadoop configuration when creating a token 
> provider.
> For example, when running the following code:
> {code:java}
> import org.apache.hadoop.conf._
> import org.apache.hadoop.fs._
> val conf = new Configuration()
> conf.set("fs.azure.account.auth.type", "OAuth")
> conf.set("fs.azure.account.oauth.provider.type", 
> "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
> conf.set("fs.azure.account.oauth2.client.id", "my-client-id")
> // 
> conf.set("fs.azure.account.oauth2.client.secret.my-account.dfs.core.windows.net",
>  "my-secret")
> conf.set("fs.azure.account.oauth2.client.endpoint", "my-endpoint")
> val path = new Path("abfss://contai...@my-account.dfs.core.windows.net/")
> val fs = path.getFileSystem(conf)
> fs.getFileStatus(path){code}
> The following exception is thrown:
> {code:java}
> TokenAccessProviderException: Unable to load OAuth token provider class.
> ...
> Caused by: UncheckedExecutionException: java.lang.NullPointerException: 
> clientSecret
> ...
> Caused by: NullPointerException: clientSecret {code}
> which does not tell what configuration key was not loaded.
>  
> IMHO, it would be good if the exception was something like this:
> {code:java}
> TokenAccessProviderException: Unable to load OAuth token provider class.
> ...
> Caused by: ConfigurationPropertyNotFoundException: Configuration property 
> fs.azure.account.oauth2.client.secret not found. {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-issues-h...@hadoop.apache.org

Reply via email to