Repository: sqoop Updated Branches: refs/heads/sqoop2 320bf6040 -> 24b8107ab
Sqoop2: Ensure Connector/Driver/Version only support GET method (Veena Basavaraj via Abraham Elmahrek) Project: http://git-wip-us.apache.org/repos/asf/sqoop/repo Commit: http://git-wip-us.apache.org/repos/asf/sqoop/commit/24b8107a Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/24b8107a Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/24b8107a Branch: refs/heads/sqoop2 Commit: 24b8107ab19918c6d2c5e5b2c5631f8416991eab Parents: 320bf60 Author: Abraham Elmahrek <[email protected]> Authored: Mon Oct 27 12:49:53 2014 -0700 Committer: Abraham Elmahrek <[email protected]> Committed: Mon Oct 27 12:50:48 2014 -0700 ---------------------------------------------------------------------- .../apache/sqoop/handler/ConnectorRequestHandler.java | 11 +++++++++-- .../apache/sqoop/handler/DriverRequestHandler.java | 14 +++++++++++--- .../apache/sqoop/handler/VersionRequestHandler.java | 11 +++++++++-- 3 files changed, 29 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/sqoop/blob/24b8107a/server/src/main/java/org/apache/sqoop/handler/ConnectorRequestHandler.java ---------------------------------------------------------------------- diff --git a/server/src/main/java/org/apache/sqoop/handler/ConnectorRequestHandler.java b/server/src/main/java/org/apache/sqoop/handler/ConnectorRequestHandler.java index 5b03a8f..5694ea5 100644 --- a/server/src/main/java/org/apache/sqoop/handler/ConnectorRequestHandler.java +++ b/server/src/main/java/org/apache/sqoop/handler/ConnectorRequestHandler.java @@ -33,6 +33,7 @@ import org.apache.sqoop.json.ConnectorsBean; import org.apache.sqoop.json.JsonBean; import org.apache.sqoop.model.MConnector; import org.apache.sqoop.server.RequestContext; +import org.apache.sqoop.server.RequestContext.Method; import org.apache.sqoop.server.RequestHandler; import org.apache.sqoop.server.common.ServerError; @@ -48,6 +49,12 @@ public class ConnectorRequestHandler implements RequestHandler { @Override public JsonBean handleEvent(RequestContext ctx) { + // connector only support GET requests + if (ctx.getMethod() != Method.GET) { + throw new SqoopException(ServerError.SERVER_0002, "Unsupported HTTP method for connector:" + + ctx.getMethod()); + } + List<MConnector> connectors; Map<Long, ResourceBundle> configParamBundles; Locale locale = ctx.getAcceptLanguageHeader(); @@ -59,7 +66,7 @@ public class ConnectorRequestHandler implements RequestHandler { connectors = ConnectorManager.getInstance().getConnectorConfigurables(); configParamBundles = ConnectorManager.getInstance().getResourceBundles(locale); AuditLoggerManager.getInstance().logAuditEvent(ctx.getUserName(), - ctx.getRequest().getRemoteAddr(), "get", "connector", "all"); + ctx.getRequest().getRemoteAddr(), "get", "connectors", "all"); return new ConnectorsBean(connectors, configParamBundles); } else { @@ -88,4 +95,4 @@ public class ConnectorRequestHandler implements RequestHandler { return new ConnectorBean(connectors, configParamBundles); } } -} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/sqoop/blob/24b8107a/server/src/main/java/org/apache/sqoop/handler/DriverRequestHandler.java ---------------------------------------------------------------------- diff --git a/server/src/main/java/org/apache/sqoop/handler/DriverRequestHandler.java b/server/src/main/java/org/apache/sqoop/handler/DriverRequestHandler.java index be9685b..81efb89 100644 --- a/server/src/main/java/org/apache/sqoop/handler/DriverRequestHandler.java +++ b/server/src/main/java/org/apache/sqoop/handler/DriverRequestHandler.java @@ -19,11 +19,14 @@ package org.apache.sqoop.handler; import org.apache.log4j.Logger; import org.apache.sqoop.audit.AuditLoggerManager; +import org.apache.sqoop.common.SqoopException; import org.apache.sqoop.driver.Driver; import org.apache.sqoop.json.DriverBean; import org.apache.sqoop.json.JsonBean; import org.apache.sqoop.server.RequestContext; import org.apache.sqoop.server.RequestHandler; +import org.apache.sqoop.server.RequestContext.Method; +import org.apache.sqoop.server.common.ServerError; public class DriverRequestHandler implements RequestHandler { @@ -36,10 +39,15 @@ public class DriverRequestHandler implements RequestHandler { @Override public JsonBean handleEvent(RequestContext ctx) { + // driver only support GET requests + if (ctx.getMethod() != Method.GET) { + throw new SqoopException(ServerError.SERVER_0002, "Unsupported HTTP method for driver:" + + ctx.getMethod()); + } AuditLoggerManager.getInstance().logAuditEvent(ctx.getUserName(), ctx.getRequest().getRemoteAddr(), "get", "driver", ""); - return new DriverBean(Driver.getInstance().getDriver(), Driver.getInstance() - .getBundle(ctx.getAcceptLanguageHeader())); + return new DriverBean(Driver.getInstance().getDriver(), Driver.getInstance().getBundle( + ctx.getAcceptLanguageHeader())); } -} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/sqoop/blob/24b8107a/server/src/main/java/org/apache/sqoop/handler/VersionRequestHandler.java ---------------------------------------------------------------------- diff --git a/server/src/main/java/org/apache/sqoop/handler/VersionRequestHandler.java b/server/src/main/java/org/apache/sqoop/handler/VersionRequestHandler.java index 0bf188c..2eaa0ac 100644 --- a/server/src/main/java/org/apache/sqoop/handler/VersionRequestHandler.java +++ b/server/src/main/java/org/apache/sqoop/handler/VersionRequestHandler.java @@ -18,13 +18,15 @@ package org.apache.sqoop.handler; import org.apache.log4j.Logger; -import org.apache.sqoop.common.VersionInfo; import org.apache.sqoop.audit.AuditLoggerManager; +import org.apache.sqoop.common.SqoopException; +import org.apache.sqoop.common.VersionInfo; import org.apache.sqoop.json.JsonBean; import org.apache.sqoop.json.VersionBean; import org.apache.sqoop.server.RequestContext; +import org.apache.sqoop.server.RequestContext.Method; import org.apache.sqoop.server.RequestHandler; - +import org.apache.sqoop.server.common.ServerError; /** * Version request handler is supporting following resources: * @@ -52,6 +54,11 @@ public class VersionRequestHandler implements RequestHandler { @Override public JsonBean handleEvent(RequestContext ctx) { + // version only support GET requests + if (ctx.getMethod() != Method.GET) { + throw new SqoopException(ServerError.SERVER_0002, "Unsupported HTTP method for version:" + + ctx.getMethod()); + } AuditLoggerManager.getInstance() .logAuditEvent(ctx.getUserName(), ctx.getRequest().getRemoteAddr(), "show", "version", "");
