[ 
https://issues.apache.org/jira/browse/HDFS-15765?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17699439#comment-17699439
 ] 

ASF GitHub Bot commented on HDFS-15765:
---------------------------------------

saxenapranav commented on code in PR #5447:
URL: https://github.com/apache/hadoop/pull/5447#discussion_r1133411855


##########
hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/BasicAuthConfigurator.java:
##########
@@ -33,6 +33,16 @@ public class BasicAuthConfigurator implements 
ConnectionConfigurator {
   private final ConnectionConfigurator parent;
   private final String credentials;
 
+  static public ConnectionConfigurator getConfigurator(

Review Comment:
   Since this method has to be called by URLConnectionFactory which is in same 
package. Lets have it package-protected and remove `public`



##########
hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/BasicAuthConfigurator.java:
##########
@@ -33,6 +33,16 @@ public class BasicAuthConfigurator implements 
ConnectionConfigurator {
   private final ConnectionConfigurator parent;
   private final String credentials;
 
+  static public ConnectionConfigurator getConfigurator(

Review Comment:
   Should this method be moved to `URLConnectionFactory` class only?
   Reason being, when external class calls ` 
BasicAuthConfigurator.getConfigurator`, to developer it can look that we want 
something out of `BasicAuthConfigurator`, but instead it either gives 
BasicAuthConfigurator object or parent-configurator object. What you feel?



##########
hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java:
##########
@@ -307,6 +310,20 @@ public StorageStatistics provide() {
                 return new DFSOpsCountStatistics();
               }
             });
+    pathPrefix = PATH_PREFIX;
+    boolean useBasePath = conf.getBoolean(
+        HdfsClientConfigKeys.DFS_CLIENT_WEBHDFS_USE_BASE_PATH_KEY,
+        HdfsClientConfigKeys.DFS_CLIENT_WEBHDFS_USE_BASE_PATH_DEFAULT
+    );
+    if (uri.getPath() != null && !uri.getPath().equals("") && useBasePath) {

Review Comment:
   although uri can not be null, but better to have null-check on that.





> Add support for Kerberos and Basic Auth in webhdfs
> --------------------------------------------------
>
>                 Key: HDFS-15765
>                 URL: https://issues.apache.org/jira/browse/HDFS-15765
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: hadoop-client
>            Reporter: Pushpendra Singh
>            Priority: Minor
>              Labels: pull-request-available
>
> webhdfs's HTTP operation like get ( GetOpParam.java) operation and other HTTP 
> operation has 'requireAuth' set to false and expected to work with Delegation 
> token only. However, when working with webhdfs over Apache Knox, delegation 
> token authentication is not supported, we should support Kerberos 
> authentication (SPNEGO) or Basic authentication for WebHdfsFileSystem if user 
> turns on a configuration.
> Further webhdfs (WebHDFSFileSystem.java)  is calling 'public URLConnection 
> openConnection(URL url)' and providing no way to use the kerberos 
> authentication, if configured.
> Even after setting the UserGroupInformation with user name and keytab, 
> openConnection is not using the keytab for authentication.
> Also WebHdfsFileSystem doesn't provide any support for HTTP BASIC 
> authentication (username/password). Provide support to read the password via 
> environment variable.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to