This is an automated email from the ASF dual-hosted git repository.
snemeth pushed a commit to branch branch-3.2
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-3.2 by this push:
new 351c64f MAPREDUCE-7260. Cross origin request support for Job history
server web UI. Contributed by Adam Antal
351c64f is described below
commit 351c64f32773b203f42979e6677e57b3969874cf
Author: Szilard Nemeth <[email protected]>
AuthorDate: Wed Jan 29 14:47:10 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: [email protected]
For additional commands, e-mail: [email protected]