You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@storm.apache.org by bo...@apache.org on 2018/08/03 20:46:07 UTC
[18/36] storm git commit: STORM-1311: UI Migration from clj to java
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-webapp/src/main/java/org/apache/storm/daemon/common/AuthorizationExceptionMapper.java
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/common/AuthorizationExceptionMapper.java b/storm-webapp/src/main/java/org/apache/storm/daemon/common/AuthorizationExceptionMapper.java
index 57467e1..251ada8 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/common/AuthorizationExceptionMapper.java
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/common/AuthorizationExceptionMapper.java
@@ -21,6 +21,8 @@ package org.apache.storm.daemon.common;
import java.util.HashMap;
import java.util.Map;
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;
@@ -28,13 +30,16 @@ import javax.ws.rs.ext.Provider;
import org.apache.storm.generated.AuthorizationException;
import org.json.simple.JSONValue;
+import static org.apache.storm.daemon.ui.exceptionmappers.ExceptionMapperUtils.getResponse;
+
@Provider
public class AuthorizationExceptionMapper implements ExceptionMapper<AuthorizationException> {
+
+ @Inject
+ public javax.inject.Provider<HttpServletRequest> request;
+
@Override
public Response toResponse(AuthorizationException ex) {
- Map<String, String> body = new HashMap<>();
- body.put("error", "Not Authorized");
- body.put("errorMessage", ex.get_msg());
- return Response.status(403).entity(JSONValue.toJSONString(body)).type("application/json").build();
+ return getResponse(ex, request);
}
}
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-webapp/src/main/java/org/apache/storm/daemon/common/JsonResponseBuilder.java
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/common/JsonResponseBuilder.java b/storm-webapp/src/main/java/org/apache/storm/daemon/common/JsonResponseBuilder.java
index dc39bc6..6ca0fdc 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/common/JsonResponseBuilder.java
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/common/JsonResponseBuilder.java
@@ -22,7 +22,7 @@ import java.util.Collections;
import java.util.Map;
import javax.ws.rs.core.Response;
-import org.apache.storm.ui.UIHelpers;
+import org.apache.storm.daemon.ui.UIHelpers;
/**
* Response builder for JSON. It utilizes {@link UIHelpers} to construct JSON body and headers.
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-webapp/src/main/java/org/apache/storm/daemon/drpc/DRPCServer.java
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/drpc/DRPCServer.java b/storm-webapp/src/main/java/org/apache/storm/daemon/drpc/DRPCServer.java
index 7d3ef5d..559993d 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/drpc/DRPCServer.java
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/drpc/DRPCServer.java
@@ -29,6 +29,8 @@ import org.apache.storm.Config;
import org.apache.storm.DaemonConfig;
import org.apache.storm.daemon.drpc.webapp.DRPCApplication;
import org.apache.storm.daemon.drpc.webapp.ReqContextFilter;
+import org.apache.storm.daemon.ui.FilterConfiguration;
+import org.apache.storm.daemon.ui.UIHelpers;
import org.apache.storm.generated.DistributedRPC;
import org.apache.storm.generated.DistributedRPCInvocations;
import org.apache.storm.metric.StormMetricsRegistry;
@@ -36,8 +38,6 @@ import org.apache.storm.security.auth.IHttpCredentialsPlugin;
import org.apache.storm.security.auth.ServerAuthUtils;
import org.apache.storm.security.auth.ThriftConnectionType;
import org.apache.storm.security.auth.ThriftServer;
-import org.apache.storm.ui.FilterConfiguration;
-import org.apache.storm.ui.UIHelpers;
import org.apache.storm.utils.ObjectReader;
import org.apache.storm.utils.Utils;
import org.eclipse.jetty.server.Server;
@@ -189,22 +189,25 @@ public class DRPCServer implements AutoCloseable {
closed = true;
}
}
-
+
/**
+ * The port the DRPC handler server is listening on.
* @return The port the DRPC handler server is listening on.
*/
public int getDrpcPort() {
return handlerServer.getPort();
}
-
+
/**
+ * The port the DRPC invoke server is listening on.
* @return The port the DRPC invoke server is listening on.
*/
public int getDrpcInvokePort() {
return invokeServer.getPort();
}
-
+
/**
+ * The port the HTTP server is listening on. Not available until {@link #start() } has run.
* @return The port the HTTP server is listening on. Not available until {@link #start() } has run.
*/
public int getHttpServerPort() {
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-webapp/src/main/java/org/apache/storm/daemon/drpc/webapp/ReqContextFilter.java
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/drpc/webapp/ReqContextFilter.java b/storm-webapp/src/main/java/org/apache/storm/daemon/drpc/webapp/ReqContextFilter.java
index cec6828..e16c6db 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/drpc/webapp/ReqContextFilter.java
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/drpc/webapp/ReqContextFilter.java
@@ -28,10 +28,14 @@ import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import javax.ws.rs.container.PreMatching;
+import javax.ws.rs.ext.Provider;
import org.apache.storm.security.auth.IHttpCredentialsPlugin;
import org.apache.storm.security.auth.ReqContext;
+@Provider
+@PreMatching
public class ReqContextFilter implements Filter {
private final IHttpCredentialsPlugin httpCredsHandler;
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/LogviewerServer.java
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/LogviewerServer.java b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/LogviewerServer.java
index bd45ddd..07ac14b 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/LogviewerServer.java
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/LogviewerServer.java
@@ -34,9 +34,9 @@ import org.apache.storm.daemon.logviewer.utils.DirectoryCleaner;
import org.apache.storm.daemon.logviewer.utils.LogCleaner;
import org.apache.storm.daemon.logviewer.utils.WorkerLogs;
import org.apache.storm.daemon.logviewer.webapp.LogviewerApplication;
+import org.apache.storm.daemon.ui.FilterConfiguration;
+import org.apache.storm.daemon.ui.UIHelpers;
import org.apache.storm.metric.StormMetricsRegistry;
-import org.apache.storm.ui.FilterConfiguration;
-import org.apache.storm.ui.UIHelpers;
import org.apache.storm.utils.ConfigUtils;
import org.apache.storm.utils.ObjectReader;
import org.apache.storm.utils.Utils;
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogPageHandler.java
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogPageHandler.java b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogPageHandler.java
index 0f498b3..32e79eb 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogPageHandler.java
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogPageHandler.java
@@ -37,7 +37,6 @@ import static java.util.stream.Collectors.toCollection;
import static java.util.stream.Collectors.toList;
import static org.apache.commons.lang.StringEscapeUtils.escapeHtml;
-import j2html.TagCreator;
import j2html.tags.DomContent;
import java.io.ByteArrayOutputStream;
@@ -65,13 +64,12 @@ import org.apache.storm.daemon.logviewer.utils.DirectoryCleaner;
import org.apache.storm.daemon.logviewer.utils.LogviewerResponseBuilder;
import org.apache.storm.daemon.logviewer.utils.ResourceAuthorizer;
import org.apache.storm.daemon.logviewer.utils.WorkerLogs;
+import org.apache.storm.daemon.ui.InvalidRequestException;
+import org.apache.storm.daemon.ui.UIHelpers;
import org.apache.storm.daemon.utils.StreamUtil;
import org.apache.storm.daemon.utils.UrlBuilder;
-import org.apache.storm.ui.InvalidRequestException;
-import org.apache.storm.ui.UIHelpers;
import org.apache.storm.utils.ConfigUtils;
import org.apache.storm.utils.ServerUtils;
-import org.apache.storm.utils.Utils;
import org.jooq.lambda.Unchecked;
public class LogviewerLogPageHandler {
@@ -103,7 +101,7 @@ public class LogviewerLogPageHandler {
* @param user username
* @param port worker's port, null for all workers
* @param topologyId topology ID, null for all topologies
- * @param callback callback for JSONP
+ * @param callback callbackParameterName for JSONP
* @param origin origin
* @return list of worker logs for given criteria
*/
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogSearchHandler.java
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogSearchHandler.java b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogSearchHandler.java
index 8d552e9..a26396c 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogSearchHandler.java
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/handler/LogviewerLogSearchHandler.java
@@ -59,9 +59,9 @@ import org.apache.storm.daemon.logviewer.utils.DirectoryCleaner;
import org.apache.storm.daemon.logviewer.utils.LogviewerResponseBuilder;
import org.apache.storm.daemon.logviewer.utils.ResourceAuthorizer;
import org.apache.storm.daemon.logviewer.utils.WorkerLogs;
+import org.apache.storm.daemon.ui.InvalidRequestException;
import org.apache.storm.daemon.utils.StreamUtil;
import org.apache.storm.daemon.utils.UrlBuilder;
-import org.apache.storm.ui.InvalidRequestException;
import org.apache.storm.utils.ObjectReader;
import org.apache.storm.utils.ServerUtils;
import org.apache.storm.utils.Utils;
@@ -117,7 +117,7 @@ public class LogviewerLogSearchHandler {
* @param search search string
* @param numMatchesStr the count of maximum matches
* @param offsetStr start offset for log file
- * @param callback callback for JSONP
+ * @param callback callbackParameterName for JSONP
* @param origin origin
* @return Response containing JSON content representing search result
*/
@@ -173,7 +173,7 @@ public class LogviewerLogSearchHandler {
* @param fileOffsetStr index (offset) of the log files
* @param offsetStr start offset for log file
* @param searchArchived true if the request wants to search also archived files, false if not
- * @param callback callback for JSONP
+ * @param callback callbackParameterName for JSONP
* @param origin origin
* @return Response containing JSON content representing search result
*/
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/utils/LogviewerResponseBuilder.java
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/utils/LogviewerResponseBuilder.java b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/utils/LogviewerResponseBuilder.java
index ee94435..b92a559 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/utils/LogviewerResponseBuilder.java
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/utils/LogviewerResponseBuilder.java
@@ -40,7 +40,7 @@ import javax.ws.rs.core.Response;
import javax.ws.rs.core.StreamingOutput;
import org.apache.storm.daemon.common.JsonResponseBuilder;
-import org.apache.storm.ui.UIHelpers;
+import org.apache.storm.daemon.ui.UIHelpers;
public class LogviewerResponseBuilder {
@@ -61,7 +61,7 @@ public class LogviewerResponseBuilder {
* Build a Response object representing success response with JSON entity.
*
* @param entity entity object to represent it as JSON
- * @param callback callback for JSONP
+ * @param callback callbackParameterName for JSONP
* @param origin origin
* @see {@link JsonResponseBuilder}
*/
@@ -112,7 +112,7 @@ public class LogviewerResponseBuilder {
* Build a Response object representing unauthorized user, with JSON response.
*
* @param user username
- * @param callback callback for JSONP
+ * @param callback callbackParameterName for JSONP
*/
public static Response buildUnauthorizedUserJsonResponse(String user, String callback) {
return new JsonResponseBuilder().setData(UIHelpers.unauthorizedUserJson(user))
@@ -123,7 +123,7 @@ public class LogviewerResponseBuilder {
* Build a Response object representing exception, with JSON response.
*
* @param ex Exception object
- * @param callback callback for JSONP
+ * @param callback callbackParameterName for JSONP
*/
public static Response buildExceptionJsonResponse(Exception ex, String callback) {
int statusCode = 500;
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/webapp/LogviewerResource.java
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/webapp/LogviewerResource.java b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/webapp/LogviewerResource.java
index b46c6a9..85285ac 100644
--- a/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/webapp/LogviewerResource.java
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/logviewer/webapp/LogviewerResource.java
@@ -38,10 +38,11 @@ import org.apache.storm.daemon.logviewer.handler.LogviewerLogDownloadHandler;
import org.apache.storm.daemon.logviewer.handler.LogviewerLogPageHandler;
import org.apache.storm.daemon.logviewer.handler.LogviewerLogSearchHandler;
import org.apache.storm.daemon.logviewer.handler.LogviewerProfileHandler;
+import org.apache.storm.daemon.ui.InvalidRequestException;
+import org.apache.storm.daemon.ui.UIHelpers;
+import org.apache.storm.daemon.ui.resources.StormApiResource;
import org.apache.storm.metric.StormMetricsRegistry;
import org.apache.storm.security.auth.IHttpCredentialsPlugin;
-import org.apache.storm.ui.InvalidRequestException;
-import org.apache.storm.ui.UIHelpers;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -137,7 +138,7 @@ public class LogviewerResource {
String user = httpCredsHandler.getUserName(request);
String topologyId = request.getParameter("topoId");
String portStr = request.getParameter("port");
- String callback = request.getParameter("callback");
+ String callback = request.getParameter("callbackParameterName");
String origin = request.getHeader("Origin");
return logviewer.listLogFiles(user, portStr != null ? Integer.parseInt(portStr) : null, topologyId, callback, origin);
@@ -154,7 +155,7 @@ public class LogviewerResource {
String user = httpCredsHandler.getUserName(request);
String topologyId = request.getParameter("topoId");
String portStr = request.getParameter("port");
- String callback = request.getParameter("callback");
+ String callback = request.getParameter(StormApiResource.callbackParameterName);
String origin = request.getHeader("Origin");
return logviewer.listLogFiles(user, portStr != null ? Integer.parseInt(portStr) : null, topologyId, callback, origin);
@@ -223,7 +224,7 @@ public class LogviewerResource {
String searchString = request.getParameter("search-string");
String numMatchesStr = request.getParameter("num-matches");
String startByteOffset = request.getParameter("start-byte-offset");
- String callback = request.getParameter("callback");
+ String callback = request.getParameter(StormApiResource.callbackParameterName);
String origin = request.getHeader("Origin");
try {
@@ -251,7 +252,7 @@ public class LogviewerResource {
String startFileOffset = request.getParameter("start-file-offset");
String startByteOffset = request.getParameter("start-byte-offset");
String searchArchived = request.getParameter("search-archived");
- String callback = request.getParameter("callback");
+ String callback = request.getParameter(StormApiResource.callbackParameterName);
String origin = request.getHeader("Origin");
return logSearchHandler.deepSearchLogsForTopology(topologyId, user, searchString, numMatchesStr, portStr,
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-webapp/src/main/java/org/apache/storm/daemon/ui/FilterConfiguration.java
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/FilterConfiguration.java b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/FilterConfiguration.java
new file mode 100644
index 0000000..be9ecd5
--- /dev/null
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/FilterConfiguration.java
@@ -0,0 +1,68 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version
+ * 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
+ * and limitations under the License.
+ */
+
+package org.apache.storm.daemon.ui;
+
+import java.util.Map;
+
+public class FilterConfiguration {
+ private String filterClass;
+ private String filterName;
+ private Map<String, String> filterParams;
+
+ /**
+ * FilterConfiguration.
+ * @param filterClass filterClass
+ * @param filterParams filterParams
+ */
+ public FilterConfiguration(String filterClass, Map<String, String> filterParams) {
+ this.filterParams = filterParams;
+ this.filterClass = filterClass;
+ this.filterName = null;
+ }
+
+ /**
+ * FilterConfiguration.
+ * @param filterClass filterClass
+ * @param filterName filterName
+ * @param filterParams filterParams
+ */
+ public FilterConfiguration(String filterClass, String filterName, Map<String, String> filterParams) {
+ this.filterClass = filterClass;
+ this.filterName = filterName;
+ this.filterParams = filterParams;
+ }
+
+ public String getFilterName() {
+ return filterName;
+ }
+
+ public void setFilterName(String filterName) {
+ this.filterName = filterName;
+ }
+
+ public String getFilterClass() {
+ return filterClass;
+ }
+
+ public void setFilterClass(String filterClass) {
+ this.filterClass = filterClass;
+ }
+
+ public Map<String, String> getFilterParams() {
+ return filterParams;
+ }
+
+ public void setFilterParams(Map<String, String> filterParams) {
+ this.filterParams = filterParams;
+ }
+}
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-webapp/src/main/java/org/apache/storm/daemon/ui/IConfigurator.java
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/IConfigurator.java b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/IConfigurator.java
new file mode 100644
index 0000000..93a557b
--- /dev/null
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/IConfigurator.java
@@ -0,0 +1,19 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version
+ * 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
+ * and limitations under the License.
+ */
+
+package org.apache.storm.daemon.ui;
+
+import org.eclipse.jetty.server.Server;
+
+public interface IConfigurator {
+ void execute(Server s);
+}
http://git-wip-us.apache.org/repos/asf/storm/blob/034ac677/storm-webapp/src/main/java/org/apache/storm/daemon/ui/InvalidRequestException.java
----------------------------------------------------------------------
diff --git a/storm-webapp/src/main/java/org/apache/storm/daemon/ui/InvalidRequestException.java b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/InvalidRequestException.java
new file mode 100644
index 0000000..1745c11
--- /dev/null
+++ b/storm-webapp/src/main/java/org/apache/storm/daemon/ui/InvalidRequestException.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.storm.daemon.ui;
+
+public class InvalidRequestException extends Exception {
+
+ public InvalidRequestException() {
+ super();
+ }
+
+ public InvalidRequestException(String msg) {
+ super(msg);
+ }
+
+ public InvalidRequestException(String msg, Throwable cause) {
+ super(msg, cause);
+ }
+
+ public InvalidRequestException(Throwable cause) {
+ super(cause);
+ }
+}