STORM-708. CORS support 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/2c486b31 Tree: http://git-wip-us.apache.org/repos/asf/storm/tree/2c486b31 Diff: http://git-wip-us.apache.org/repos/asf/storm/diff/2c486b31 Branch: refs/heads/master Commit: 2c486b31844a18808364cfb3ff68ec967ec46124 Parents: 0201a90 Author: Sriharsha Chintalapani <[email protected]> Authored: Sun Mar 22 11:03:42 2015 -0700 Committer: Sriharsha Chintalapani <[email protected]> Committed: Sun Mar 22 11:03:42 2015 -0700 ---------------------------------------------------------------------- storm-core/src/clj/backtype/storm/ui/core.clj | 3 ++- storm-core/src/clj/backtype/storm/ui/helpers.clj | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/storm/blob/2c486b31/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 c64f35d..a13fcf3 100644 --- a/storm-core/src/clj/backtype/storm/ui/core.clj +++ b/storm-core/src/clj/backtype/storm/ui/core.clj @@ -892,7 +892,8 @@ (defnk json-response [data callback :serialize-fn to-json :status 200] {:status status - :headers (merge {"Cache-Control" "no-cache, no-store"} + :headers (merge {"Cache-Control" "no-cache, no-store" + "Access-Control-Allow-Origin" "*"} (if (not-nil? callback) {"Content-Type" "application/javascript;charset=utf-8"} {"Content-Type" "application/json;charset=utf-8"})) :body (if (not-nil? callback) http://git-wip-us.apache.org/repos/asf/storm/blob/2c486b31/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 562a407..a7eb280 100644 --- a/storm-core/src/clj/backtype/storm/ui/helpers.clj +++ b/storm-core/src/clj/backtype/storm/ui/helpers.clj @@ -23,10 +23,12 @@ (:use [backtype.storm.util :only [clojurify-structure uuid defnk url-encode]]) (:use [clj-time coerce format]) (:import [backtype.storm.generated ExecutorInfo ExecutorSummary]) + (:import [java.util EnumSet]) (:import [org.eclipse.jetty.server Server] [org.eclipse.jetty.server.nio SelectChannelConnector] [org.eclipse.jetty.server.ssl SslSocketConnector] [org.eclipse.jetty.servlet ServletHolder FilterMapping] + [org.eclipse.jetty.server DispatcherType] [org.eclipse.jetty.servlets CrossOriginFilter]) (:require [ring.util servlet]) (:require [compojure.route :as route] @@ -174,7 +176,8 @@ $(\"table#%s\").each(function(i) { $(this).tablesorter({ sortList: %s, headers: (doto (org.eclipse.jetty.servlet.FilterHolder. (CrossOriginFilter.)) (.setInitParameter CrossOriginFilter/ALLOWED_ORIGINS_PARAM "*") (.setInitParameter CrossOriginFilter/ALLOWED_METHODS_PARAM "GET, POST, PUT") - (.setInitParameter CrossOriginFilter/ALLOWED_HEADERS_PARAM "*"))) + (.setInitParameter CrossOriginFilter/ALLOWED_HEADERS_PARAM "X-Requested-With, X-Requested-By, Access-Control-Allow-Origin, Content-Type, Content-Length, Accept, Origin") + )) (defn config-filter [server handler filters-confs] (if filters-confs @@ -182,7 +185,7 @@ $(\"table#%s\").each(function(i) { $(this).tablesorter({ sortList: %s, headers: (ring.util.servlet/servlet handler)) context (doto (org.eclipse.jetty.servlet.ServletContextHandler. server "/") (.addServlet servlet-holder "/"))] - (.addFilter context (cors-filter-handler) "/*" FilterMapping/ALL) + (.addFilter context (cors-filter-handler) "/*" (EnumSet/allOf DispatcherType)) (doseq [{:keys [filter-name filter-class filter-params]} filters-confs] (if filter-class (let [filter-holder (doto (org.eclipse.jetty.servlet.FilterHolder.)
