You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by pt...@apache.org on 2016/07/22 21:03:33 UTC
[1/3] storm git commit: Implement HTTP X-Frame-Options for Storm UI
Repository: storm
Updated Branches:
refs/heads/0.10.x-branch 8134e786f -> a51a28968
Implement HTTP X-Frame-Options for Storm UI
Project: http://git-wip-us.apache.org/repos/asf/storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/4e2e4a99
Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/4e2e4a99
Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/4e2e4a99
Branch: refs/heads/0.10.x-branch
Commit: 4e2e4a990183ceee73009de60e5eafabeb11baa2
Parents: 8134e78
Author: Tibor Kiss <ti...@gmail.com>
Authored: Tue Jul 19 13:40:36 2016 +0200
Committer: Tibor Kiss <ti...@gmail.com>
Committed: Wed Jul 20 14:18:42 2016 +0200
----------------------------------------------------------------------
conf/defaults.yaml | 1 +
storm-core/src/clj/backtype/storm/ui/core.clj | 8 ++++--
.../src/clj/backtype/storm/ui/helpers.clj | 30 ++++++++++++++++++--
storm-core/src/jvm/backtype/storm/Config.java | 6 ++++
4 files changed, 40 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/storm/blob/4e2e4a99/conf/defaults.yaml
----------------------------------------------------------------------
diff --git a/conf/defaults.yaml b/conf/defaults.yaml
index 8ff0c12..0368325 100644
--- a/conf/defaults.yaml
+++ b/conf/defaults.yaml
@@ -77,6 +77,7 @@ ui.filter.params: null
ui.users: null
ui.header.buffer.bytes: 4096
ui.http.creds.plugin: backtype.storm.security.auth.DefaultHttpCredentialsPlugin
+ui.http.x-frame-options: DENY
logviewer.port: 8000
logviewer.childopts: "-Xmx128m"
http://git-wip-us.apache.org/repos/asf/storm/blob/4e2e4a99/storm-core/src/clj/backtype/storm/ui/core.clj
----------------------------------------------------------------------
diff --git a/storm-core/src/clj/backtype/storm/ui/core.clj b/storm-core/src/clj/backtype/storm/ui/core.clj
index 41a2146..8226f28 100644
--- a/storm-core/src/clj/backtype/storm/ui/core.clj
+++ b/storm-core/src/clj/backtype/storm/ui/core.clj
@@ -1086,7 +1086,11 @@
https-ts-password (conf UI-HTTPS-TRUSTSTORE-PASSWORD)
https-ts-type (conf UI-HTTPS-TRUSTSTORE-TYPE)
https-want-client-auth (conf UI-HTTPS-WANT-CLIENT-AUTH)
- https-need-client-auth (conf UI-HTTPS-NEED-CLIENT-AUTH)]
+ https-need-client-auth (conf UI-HTTPS-NEED-CLIENT-AUTH)
+ http-x-frame-options (conf UI-HTTP-X-FRAME-OPTIONS)]
+
+ (validate-x-frame-options! http-x-frame-options)
+
(storm-run-jetty {:port (conf UI-PORT)
:host (conf UI-HOST)
:https-port https-port
@@ -1104,7 +1108,7 @@
https-want-client-auth)
(doseq [connector (.getConnectors server)]
(.setRequestHeaderSize connector header-buffer-size))
- (config-filter server app filters-confs))}))
+ (config-filter server app filters-confs http-x-frame-options))}))
(catch Exception ex
(log-error ex))))
http://git-wip-us.apache.org/repos/asf/storm/blob/4e2e4a99/storm-core/src/clj/backtype/storm/ui/helpers.clj
----------------------------------------------------------------------
diff --git a/storm-core/src/clj/backtype/storm/ui/helpers.clj b/storm-core/src/clj/backtype/storm/ui/helpers.clj
index ab80f98..76e41a4 100644
--- a/storm-core/src/clj/backtype/storm/ui/helpers.clj
+++ b/storm-core/src/clj/backtype/storm/ui/helpers.clj
@@ -174,13 +174,37 @@
(.setInitParameter CrossOriginFilter/ACCESS_CONTROL_ALLOW_ORIGIN_HEADER "*")
))
-(defn config-filter [server handler filters-confs]
- (if filters-confs
+(defn validate-x-frame-options!
+ [x-frame-options]
+ (if (.startsWith x-frame-options "ALLOW-FROM http") nil
+ (case x-frame-options
+ "DENY" nil
+ "SAMEORIGIN" nil
+ (throw
+ (IllegalArgumentException. "Invalid X-Frame-Option specified!")))))
+
+(defn x-frame-options-filter-handler
+ [x-frame-options]
+ (let [filter (proxy [javax.servlet.Filter] []
+ (doFilter [request response chain]
+ (.setHeader response "X-Frame-Options" x-frame-options)
+ (.doFilter chain request response))
+ (init [config])
+ (destroy [])
+ )]
+ (org.eclipse.jetty.servlet.FilterHolder. filter)))
+
+
+(defn config-filter
+ ([server handler filters-conf] (config-filter server handler filters-conf nil))
+ ([server handler filters-confs http-x-frame-options] (if filters-confs
(let [servlet-holder (ServletHolder.
(ring.util.servlet/servlet handler))
context (doto (org.eclipse.jetty.servlet.ServletContextHandler. server "/")
(.addServlet servlet-holder "/"))]
(.addFilter context (cors-filter-handler) "/*" (EnumSet/allOf DispatcherType))
+ (if-not (blank? http-x-frame-options)
+ (.addFilter context (x-frame-options-filter-handler http-x-frame-options) "/*" FilterMapping/ALL))
(doseq [{:keys [filter-name filter-class filter-params]} filters-confs]
(if filter-class
(let [filter-holder (doto (org.eclipse.jetty.servlet.FilterHolder.)
@@ -188,7 +212,7 @@
(.setName (or filter-name filter-class))
(.setInitParameters (or filter-params {})))]
(.addFilter context filter-holder "/*" FilterMapping/ALL))))
- (.setHandler server context))))
+ (.setHandler server context)))))
(defn ring-response-from-exception [ex]
{:headers {}
http://git-wip-us.apache.org/repos/asf/storm/blob/4e2e4a99/storm-core/src/jvm/backtype/storm/Config.java
----------------------------------------------------------------------
diff --git a/storm-core/src/jvm/backtype/storm/Config.java b/storm-core/src/jvm/backtype/storm/Config.java
index 2acf2a0..f55d1e3 100644
--- a/storm-core/src/jvm/backtype/storm/Config.java
+++ b/storm-core/src/jvm/backtype/storm/Config.java
@@ -691,6 +691,12 @@ public class Config extends HashMap<String, Object> {
public static final String UI_HTTPS_NEED_CLIENT_AUTH = "ui.https.need.client.auth";
public static final Object UI_HTTPS_NEED_CLIENT_AUTH_SCHEMA = Boolean.class;
+ /**
+ * Value of X-FRAME-OPTIONS HTTP Header option used by Storm UI.
+ */
+ public static final String UI_HTTP_X_FRAME_OPTIONS = "ui.http.x-frame-options";
+ public static final Object UI_HTTP_X_FRAME_OPTIONS_SCHEMA = String.class;
+
/**
* List of DRPC servers so that the DRPCSpout knows who to talk to.
[2/3] storm git commit: Merge branch
'feature/x-frame-options-support-in-ui' of github.com:tibkiss/storm into
0.10.x-branch
Posted by pt...@apache.org.
Merge branch 'feature/x-frame-options-support-in-ui' of github.com:tibkiss/storm into 0.10.x-branch
Project: http://git-wip-us.apache.org/repos/asf/storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/28822469
Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/28822469
Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/28822469
Branch: refs/heads/0.10.x-branch
Commit: 288224698f45aea6efdb38059dcb23c840c8fc17
Parents: 8134e78 4e2e4a9
Author: P. Taylor Goetz <pt...@gmail.com>
Authored: Fri Jul 22 15:28:16 2016 -0400
Committer: P. Taylor Goetz <pt...@gmail.com>
Committed: Fri Jul 22 15:28:16 2016 -0400
----------------------------------------------------------------------
conf/defaults.yaml | 1 +
storm-core/src/clj/backtype/storm/ui/core.clj | 8 ++++--
.../src/clj/backtype/storm/ui/helpers.clj | 30 ++++++++++++++++++--
storm-core/src/jvm/backtype/storm/Config.java | 6 ++++
4 files changed, 40 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
[3/3] storm git commit: add STORM-1989 to changelog
Posted by pt...@apache.org.
add STORM-1989 to changelog
Project: http://git-wip-us.apache.org/repos/asf/storm/repo
Commit: http://git-wip-us.apache.org/repos/asf/storm/commit/a51a2896
Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/a51a2896
Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/a51a2896
Branch: refs/heads/0.10.x-branch
Commit: a51a28968091d0055488cb5ac54c427d241c51d3
Parents: 2882246
Author: P. Taylor Goetz <pt...@gmail.com>
Authored: Fri Jul 22 15:29:42 2016 -0400
Committer: P. Taylor Goetz <pt...@gmail.com>
Committed: Fri Jul 22 15:29:42 2016 -0400
----------------------------------------------------------------------
CHANGELOG.md | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/storm/blob/a51a2896/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 431a93e..0e79f96 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,5 @@
## 0.10.2
+ * STORM-1989: X-Frame-Options support for Storm UI
* STORM-1834: Documentation How to Generate Certificates For Local Testing SSL Setup
* STORM-1754: Correct java version in 0.10.x storm-starter
* STORM-1750: Ensure worker dies when report-error-and-die is called.