|
@@ -24,11 +24,15 @@ import java.net.InetSocketAddress;
|
|
|
import java.net.MalformedURLException;
|
|
|
import java.net.URI;
|
|
|
import java.net.URL;
|
|
|
+import java.util.LinkedHashSet;
|
|
|
+import java.util.Set;
|
|
|
|
|
|
import org.apache.hadoop.classification.InterfaceAudience;
|
|
|
import org.apache.hadoop.conf.ConfigurationWithLogging;
|
|
|
import org.apache.hadoop.conf.Configuration;
|
|
|
import org.apache.hadoop.http.HttpServer2;
|
|
|
+import org.apache.hadoop.security.AuthenticationFilterInitializer;
|
|
|
+import org.apache.hadoop.security.authentication.server.ProxyUserAuthenticationFilterInitializer;
|
|
|
import org.apache.hadoop.security.authorize.AccessControlList;
|
|
|
import org.apache.hadoop.security.ssl.SSLFactory;
|
|
|
import org.slf4j.Logger;
|
|
@@ -98,6 +102,24 @@ public class HttpFSServerWebServer {
|
|
|
int port = conf.getInt(HTTP_PORT_KEY, HTTP_PORT_DEFAULT);
|
|
|
URI endpoint = new URI(scheme, null, host, port, null, null, null);
|
|
|
|
|
|
+ // Allow the default authFilter HttpFSAuthenticationFilter
|
|
|
+ String configuredInitializers = conf.get(HttpServer2.
|
|
|
+ FILTER_INITIALIZER_PROPERTY);
|
|
|
+ if (configuredInitializers != null) {
|
|
|
+ Set<String> target = new LinkedHashSet<String>();
|
|
|
+ String[] parts = configuredInitializers.split(",");
|
|
|
+ for (String filterInitializer : parts) {
|
|
|
+ if (!filterInitializer.equals(AuthenticationFilterInitializer.class.
|
|
|
+ getName()) && !filterInitializer.equals(
|
|
|
+ ProxyUserAuthenticationFilterInitializer.class.getName())) {
|
|
|
+ target.add(filterInitializer);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String actualInitializers =
|
|
|
+ org.apache.commons.lang3.StringUtils.join(target, ",");
|
|
|
+ conf.set(HttpServer2.FILTER_INITIALIZER_PROPERTY, actualInitializers);
|
|
|
+ }
|
|
|
+
|
|
|
httpServer = new HttpServer2.Builder()
|
|
|
.setName(NAME)
|
|
|
.setConf(conf)
|