You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by sn...@apache.org on 2020/01/29 13:46:13 UTC

[hadoop] branch trunk updated: MAPREDUCE-7260. Cross origin request support for Job history server web UI. Contributed by Adam Antal

This is an automated email from the ASF dual-hosted git repository.

snemeth pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 7f3e1e0  MAPREDUCE-7260. Cross origin request support for Job history server web UI. Contributed by Adam Antal
7f3e1e0 is described below

commit 7f3e1e0c07c33e08f9a2c06bd4573638ba11ca47
Author: Szilard Nemeth <sn...@apache.org>
AuthorDate: Wed Jan 29 14:42:52 2020 +0100

    MAPREDUCE-7260. Cross origin request support for Job history server web UI. Contributed by Adam Antal
---
 .../hadoop/mapreduce/v2/jobhistory/JHAdminConfig.java     |  7 +++++++
 .../hadoop/mapreduce/v2/hs/HistoryClientService.java      | 15 +++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-common/src/main/java/org/apache/hadoop/mapreduce/v2/jobhistory/JHAdminConfig.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-common/src/main/java/org/apache/hadoop/mapreduce/v2/jobhistory/JHAdminConfig.java
index 9e964e1..1c11e77 100644
--- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-common/src/main/java/org/apache/hadoop/mapreduce/v2/jobhistory/JHAdminConfig.java
+++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-common/src/main/java/org/apache/hadoop/mapreduce/v2/jobhistory/JHAdminConfig.java
@@ -256,6 +256,13 @@ public class JHAdminConfig {
       "xframe-options";
 
   /**
+   * CORS settings.
+   */
+  public static final String MR_HISTORY_ENABLE_CORS_FILTER = MR_HISTORY_PREFIX +
+      "webapp.cross-origin.enabled";
+  public static final boolean DEFAULT_MR_HISTORY_ENABLE_CORS_FILTER = false;
+
+  /**
    * Settings for .jhist file format.
    */
   public static final String MR_HS_JHIST_FORMAT =
diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryClientService.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryClientService.java
index b63aef4..ccccaeb 100644
--- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryClientService.java
+++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryClientService.java
@@ -75,6 +75,7 @@ import org.apache.hadoop.mapreduce.v2.hs.webapp.HsWebApp;
 import org.apache.hadoop.mapreduce.v2.jobhistory.JHAdminConfig;
 import org.apache.hadoop.mapreduce.v2.util.MRWebAppUtil;
 import org.apache.hadoop.net.NetUtils;
+import org.apache.hadoop.security.HttpCrossOriginFilterInitializer;
 import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.security.UserGroupInformation.AuthenticationMethod;
 import org.apache.hadoop.security.token.Token;
@@ -154,6 +155,9 @@ public class HistoryClientService extends AbstractService {
   @VisibleForTesting
   protected void initializeWebApp(Configuration conf) throws IOException {
     webApp = new HsWebApp(history);
+
+    setupFilters(conf);
+
     InetSocketAddress bindAddress = MRWebAppUtil.getJHSWebBindAddress(conf);
     ApplicationClientProtocol appClientProtocol =
         ClientRMProxy.createRMProxy(conf, ApplicationClientProtocol.class);
@@ -196,6 +200,17 @@ public class HistoryClientService extends AbstractService {
     return this.bindAddress;
   }
 
+  private void setupFilters(Configuration conf) {
+    boolean enableCorsFilter =
+        conf.getBoolean(JHAdminConfig.MR_HISTORY_ENABLE_CORS_FILTER,
+            JHAdminConfig.DEFAULT_MR_HISTORY_ENABLE_CORS_FILTER);
+
+    if (enableCorsFilter) {
+      conf.setBoolean(HttpCrossOriginFilterInitializer.PREFIX
+          + HttpCrossOriginFilterInitializer.ENABLED_SUFFIX, true);
+    }
+  }
+
   private class HSClientProtocolHandler implements HSClientProtocol {
 
     private RecordFactory recordFactory = RecordFactoryProvider.getRecordFactory(null);


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org