You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sqoop.apache.org by ab...@apache.org on 2015/01/20 20:24:11 UTC
sqoop git commit: SQOOP-1834: Sqoop2: RBAC pluggable framework
Repository: sqoop
Updated Branches:
refs/heads/sqoop2 308365bbf -> 49f104bb5
SQOOP-1834: Sqoop2: RBAC pluggable framework
(Richard Zhou 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/49f104bb
Tree: http://git-wip-us.apache.org/repos/asf/sqoop/tree/49f104bb
Diff: http://git-wip-us.apache.org/repos/asf/sqoop/diff/49f104bb
Branch: refs/heads/sqoop2
Commit: 49f104bb5f390032d03967481bec9d74268334b2
Parents: 308365b
Author: Abraham Elmahrek <ab...@apache.org>
Authored: Mon Jan 19 19:40:18 2015 -0800
Committer: Abraham Elmahrek <ab...@apache.org>
Committed: Mon Jan 19 19:40:18 2015 -0800
----------------------------------------------------------------------
.../java/org/apache/sqoop/core/SqoopServer.java | 3 +
.../security/AuthorizationAccessController.java | 28 ++++
.../sqoop/security/AuthorizationHandler.java | 48 +++++++
.../sqoop/security/AuthorizationManager.java | 135 +++++++++++++++++++
.../sqoop/security/AuthorizationValidator.java | 29 ++++
.../sqoop/security/SecurityConstants.java | 31 +++++
.../apache/sqoop/security/SecurityError.java | 11 +-
.../apache/sqoop/security/SecurityFactory.java | 61 ++++++++-
dist/src/main/server/conf/sqoop.properties | 9 +-
.../DefaultAuthorizationAccessController.java | 26 ++++
.../DefaultAuthorizationHandler.java | 26 ++++
.../DefaultAuthorizationValidator.java | 26 ++++
12 files changed, 429 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/sqoop/blob/49f104bb/core/src/main/java/org/apache/sqoop/core/SqoopServer.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/sqoop/core/SqoopServer.java b/core/src/main/java/org/apache/sqoop/core/SqoopServer.java
index fe467e3..e78e4d9 100644
--- a/core/src/main/java/org/apache/sqoop/core/SqoopServer.java
+++ b/core/src/main/java/org/apache/sqoop/core/SqoopServer.java
@@ -24,6 +24,7 @@ import org.apache.sqoop.driver.Driver;
import org.apache.sqoop.driver.JobManager;
import org.apache.sqoop.repository.RepositoryManager;
import org.apache.sqoop.security.AuthenticationManager;
+import org.apache.sqoop.security.AuthorizationManager;
/**
* Entry point for initializing and destroying Sqoop server
@@ -39,6 +40,7 @@ public class SqoopServer {
ConnectorManager.getInstance().destroy();
RepositoryManager.getInstance().destroy();
AuditLoggerManager.getInstance().destroy();
+ AuthorizationManager.getInstance().destroy();
AuthenticationManager.getInstance().destroy();
SqoopConfiguration.getInstance().destroy();
LOG.info("Sqoop server has been correctly terminated");
@@ -49,6 +51,7 @@ public class SqoopServer {
LOG.info("Booting up Sqoop server");
SqoopConfiguration.getInstance().initialize();
AuthenticationManager.getInstance().initialize();
+ AuthorizationManager.getInstance().initialize();
AuditLoggerManager.getInstance().initialize();
RepositoryManager.getInstance().initialize();
ConnectorManager.getInstance().initialize();
http://git-wip-us.apache.org/repos/asf/sqoop/blob/49f104bb/core/src/main/java/org/apache/sqoop/security/AuthorizationAccessController.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/sqoop/security/AuthorizationAccessController.java b/core/src/main/java/org/apache/sqoop/security/AuthorizationAccessController.java
new file mode 100644
index 0000000..698a940
--- /dev/null
+++ b/core/src/main/java/org/apache/sqoop/security/AuthorizationAccessController.java
@@ -0,0 +1,28 @@
+/**
+ * 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.sqoop.security;
+
+import org.apache.log4j.Logger;
+
+/***
+ * AuthorizationAccessController is responsible for managing access rule and principal.
+ */
+public abstract class AuthorizationAccessController {
+
+ private static final Logger LOG = Logger.getLogger(AuthorizationAccessController.class);
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/sqoop/blob/49f104bb/core/src/main/java/org/apache/sqoop/security/AuthorizationHandler.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/sqoop/security/AuthorizationHandler.java b/core/src/main/java/org/apache/sqoop/security/AuthorizationHandler.java
new file mode 100644
index 0000000..865c6dc
--- /dev/null
+++ b/core/src/main/java/org/apache/sqoop/security/AuthorizationHandler.java
@@ -0,0 +1,48 @@
+/**
+ * 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.sqoop.security;
+
+import org.apache.log4j.Logger;
+
+/***
+ * AuthorizationHandler is responsible for controlling role based access.
+ */
+public abstract class AuthorizationHandler {
+
+ private static final Logger LOG = Logger.getLogger(AuthorizationHandler.class);
+
+ protected AuthorizationAccessController authorizationAccessController;
+
+ protected AuthorizationValidator authorizationValidator;
+
+ public AuthorizationValidator getAuthorizationValidator() {
+ return authorizationValidator;
+ }
+
+ public void setAuthorizationValidator(AuthorizationValidator authorizationValidator) {
+ this.authorizationValidator = authorizationValidator;
+ }
+
+ public AuthorizationAccessController getAuthorizationAccessController() {
+ return authorizationAccessController;
+ }
+
+ public void setAuthorizationAccessController(AuthorizationAccessController authorizationAccessController) {
+ this.authorizationAccessController = authorizationAccessController;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/sqoop/blob/49f104bb/core/src/main/java/org/apache/sqoop/security/AuthorizationManager.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/sqoop/security/AuthorizationManager.java b/core/src/main/java/org/apache/sqoop/security/AuthorizationManager.java
new file mode 100644
index 0000000..4d66bf7
--- /dev/null
+++ b/core/src/main/java/org/apache/sqoop/security/AuthorizationManager.java
@@ -0,0 +1,135 @@
+/**
+ * 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.sqoop.security;
+
+import org.apache.log4j.Logger;
+import org.apache.sqoop.common.MapContext;
+import org.apache.sqoop.core.Reconfigurable;
+import org.apache.sqoop.core.SqoopConfiguration;
+
+/***
+ * AuthorizationManager is responsible for managing AuthorizationHandler.
+ */
+public class AuthorizationManager implements Reconfigurable {
+
+ private static final Logger LOG = Logger.getLogger(AuthorizationManager.class);
+
+ /**
+ * Default authorization handler
+ */
+ public static final String DEFAULT_AUTHORIZATION_HANDLER = "org.apache.sqoop.security.Authorization.DefaultAuthorizationHandler";
+
+ /**
+ * Default authorization access controller
+ */
+ public static final String DEFAULT_AUTHORIZATION_ACCESS_CONTROLLER = "org.apache.sqoop.security.Authorization.DefaultAuthorizationAccessController";
+
+ /**
+ * Default authorization validator
+ */
+ public static final String DEFAULT_AUTHORIZATION_VALIDATOR = "org.apache.sqoop.security.Authorization.DefaultAuthorizationValidator";
+
+ /**
+ * Default authorization auto upgrade option value
+ */
+ protected static boolean DEFAULT_AUTO_UPGRADE = false;
+
+ /**
+ * Private instance to singleton of this class.
+ */
+ private static AuthorizationManager instance;
+
+ /**
+ * Create default object
+ */
+ static {
+ instance = new AuthorizationManager();
+ }
+
+ /**
+ * Return current instance.
+ *
+ * @return Current instance
+ */
+ public static AuthorizationManager getInstance() {
+ return instance;
+ }
+
+ /**
+ * Allows to set instance in case that it's need.
+ * <p/>
+ * This method should not be normally used as the default instance should be sufficient. One target
+ * user use case for this method are unit tests.
+ *
+ * @param newInstance New instance
+ */
+ public static void setInstance(AuthorizationManager newInstance) {
+ instance = newInstance;
+ }
+
+ /**
+ * Private AuthenticiationHandler to singleton of this class.
+ */
+ private static AuthorizationHandler authorizationHandler;
+
+ /**
+ * Return current authorization handler.
+ *
+ * @return Current authorization handler
+ */
+ public static AuthorizationHandler getAuthorizationHandler() {
+ return authorizationHandler;
+ }
+
+ public synchronized void initialize() throws ClassNotFoundException, IllegalAccessException, InstantiationException {
+ LOG.trace("Begin authorization manager initialization");
+ MapContext mapContext = SqoopConfiguration.getInstance().getContext();
+
+ String handler = mapContext.getString(SecurityConstants.AUTHORIZATION_HANDLER,
+ DEFAULT_AUTHORIZATION_HANDLER).trim();
+ authorizationHandler = SecurityFactory.getAuthorizationHandler(handler);
+
+ String accessController = mapContext.getString(
+ SecurityConstants.AUTHORIZATION_ACCESS_CONTROLLER,
+ DEFAULT_AUTHORIZATION_ACCESS_CONTROLLER).trim();
+ AuthorizationAccessController authorizationAccessController =
+ SecurityFactory.getAuthorizationAccessController(accessController);
+ authorizationHandler.setAuthorizationAccessController(authorizationAccessController);
+
+ String validator = mapContext.getString(SecurityConstants.AUTHORIZATION_VALIDATOR,
+ DEFAULT_AUTHORIZATION_VALIDATOR).trim();
+ AuthorizationValidator authorizationValidator =
+ SecurityFactory.getAuthorizationValidator(validator);
+ authorizationHandler.setAuthorizationValidator(authorizationValidator);
+
+ LOG.info("Authorization loaded.");
+ }
+
+ public synchronized void destroy() {
+ LOG.trace("Begin authorization manager destroy");
+ }
+
+ @Override
+ public synchronized void configurationChanged() {
+ LOG.info("Begin authorization manager reconfiguring");
+ // If there are configuration options for AuthorizationManager,
+ // implement the reconfiguration procedure right here.
+ LOG.info("Authorization manager reconfigured");
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/sqoop/blob/49f104bb/core/src/main/java/org/apache/sqoop/security/AuthorizationValidator.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/sqoop/security/AuthorizationValidator.java b/core/src/main/java/org/apache/sqoop/security/AuthorizationValidator.java
new file mode 100644
index 0000000..7c41015
--- /dev/null
+++ b/core/src/main/java/org/apache/sqoop/security/AuthorizationValidator.java
@@ -0,0 +1,29 @@
+/**
+ * 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.sqoop.security;
+
+import org.apache.log4j.Logger;
+
+/***
+ * AuthorizationHandler is responsible for checking access.
+ */
+public abstract class AuthorizationValidator {
+
+ private static final Logger LOG = Logger.getLogger(AuthorizationValidator.class);
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/sqoop/blob/49f104bb/core/src/main/java/org/apache/sqoop/security/SecurityConstants.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/sqoop/security/SecurityConstants.java b/core/src/main/java/org/apache/sqoop/security/SecurityConstants.java
index a00573a..3db8f43 100644
--- a/core/src/main/java/org/apache/sqoop/security/SecurityConstants.java
+++ b/core/src/main/java/org/apache/sqoop/security/SecurityConstants.java
@@ -102,6 +102,37 @@ public final class SecurityConstants {
PREFIX_AUTHENTICATION_KERBEROS_HTTP_CONFIG + "keytab";
/**
+ * All authorization related configuration is prefixed with this:
+ * <tt>org.apache.sqoop.security.authorization.</tt>
+ */
+ public static final String PREFIX_AUTHORIZATION_CONFIG =
+ PREFIX_SECURITY_CONFIG + "authorization.";
+
+ /**
+ * The config specifies the sqoop authorization handler class.
+ * The default type is org.apache.sqoop.security.DefaultAuthorizationHandler
+ * <tt>org.apache.sqoop.security.authorization.handler</tt>.
+ */
+ public static final String AUTHORIZATION_HANDLER =
+ PREFIX_AUTHORIZATION_CONFIG + "handler";
+
+ /**
+ * The config specifies the sqoop authorization access controller class.
+ * The default type is org.apache.sqoop.security.DefaultAuthorizationAccessController
+ * <tt>org.apache.sqoop.security.authorization.AccessController</tt>.
+ */
+ public static final String AUTHORIZATION_ACCESS_CONTROLLER =
+ PREFIX_AUTHORIZATION_CONFIG + "access_controller";
+
+ /**
+ * The config specifies the sqoop authorization validator class.
+ * The default type is org.apache.sqoop.security.DefaultAuthorizationValidator
+ * <tt>org.apache.sqoop.security.authorization.Validator</tt>.
+ */
+ public static final String AUTHORIZATION_VALIDATOR =
+ PREFIX_AUTHORIZATION_CONFIG + "validator";
+
+ /**
* The config specifies the token kind in delegation token.
*/
public static final String TOKEN_KIND = "sqoop_token_kind";
http://git-wip-us.apache.org/repos/asf/sqoop/blob/49f104bb/core/src/main/java/org/apache/sqoop/security/SecurityError.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/sqoop/security/SecurityError.java b/core/src/main/java/org/apache/sqoop/security/SecurityError.java
index e4ba221..c68b666 100644
--- a/core/src/main/java/org/apache/sqoop/security/SecurityError.java
+++ b/core/src/main/java/org/apache/sqoop/security/SecurityError.java
@@ -40,7 +40,16 @@ public enum SecurityError implements ErrorCode {
AUTH_0005("Unable to find Kerberos keytab for http"),
/** The system was not able to find Kerberos principal for http in sqoop configuration. */
- AUTH_0006("Unable to find Kerberos principal for http");
+ AUTH_0006("Unable to find Kerberos principal for http"),
+
+ /** The system was not able to find authorization handler. */
+ AUTH_0007("Unable to find authorization handler"),
+
+ /** The system was not able to find authorization access controller. */
+ AUTH_0008("Unable to find authorization access controller"),
+
+ /** The system was not able to find authorization validator. */
+ AUTH_0009("Unable to find authorization validator");
private final String message;
http://git-wip-us.apache.org/repos/asf/sqoop/blob/49f104bb/core/src/main/java/org/apache/sqoop/security/SecurityFactory.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/sqoop/security/SecurityFactory.java b/core/src/main/java/org/apache/sqoop/security/SecurityFactory.java
index 3e6df67..b427410 100644
--- a/core/src/main/java/org/apache/sqoop/security/SecurityFactory.java
+++ b/core/src/main/java/org/apache/sqoop/security/SecurityFactory.java
@@ -31,7 +31,7 @@ public class SecurityFactory {
if (handlerClass == null) {
throw new SqoopException(SecurityError.AUTH_0004,
- "Authentication Handler Class: " + handler);
+ "Authentication Handler Class is null: " + handler);
}
AuthenticationHandler newHandler;
@@ -39,8 +39,65 @@ public class SecurityFactory {
newHandler = (AuthenticationHandler) handlerClass.newInstance();
} catch (Exception ex) {
throw new SqoopException(SecurityError.AUTH_0004,
- "Authentication Handler Class: " + handler, ex);
+ "Authentication Handler Class Exception: " + handler, ex);
}
return newHandler;
}
+
+ public static AuthorizationHandler getAuthorizationHandler(String handler) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
+
+ Class<?> handlerClass = ClassUtils.loadClass(handler);
+
+ if (handlerClass == null) {
+ throw new SqoopException(SecurityError.AUTH_0007,
+ "Authorization Handler Class is null: " + handler);
+ }
+
+ AuthorizationHandler newHandler;
+ try {
+ newHandler = (AuthorizationHandler) handlerClass.newInstance();
+ } catch (Exception ex) {
+ throw new SqoopException(SecurityError.AUTH_0007,
+ "Authorization Handler Class Exception: " + handler, ex);
+ }
+ return newHandler;
+ }
+
+ public static AuthorizationAccessController getAuthorizationAccessController(String accessController) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
+
+ Class<?> accessControllerClass = ClassUtils.loadClass(accessController);
+
+ if (accessControllerClass == null) {
+ throw new SqoopException(SecurityError.AUTH_0008,
+ "Authorization Access Controller Class is null: " + accessController);
+ }
+
+ AuthorizationAccessController newAccessController;
+ try {
+ newAccessController = (AuthorizationAccessController) accessControllerClass.newInstance();
+ } catch (Exception ex) {
+ throw new SqoopException(SecurityError.AUTH_0008,
+ "Authorization Access Controller Class Exception: " + accessController, ex);
+ }
+ return newAccessController;
+ }
+
+ public static AuthorizationValidator getAuthorizationValidator(String validator) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
+
+ Class<?> validatorClass = ClassUtils.loadClass(validator);
+
+ if (validatorClass == null) {
+ throw new SqoopException(SecurityError.AUTH_0009,
+ "Authorization Validator Class is null: " + validator);
+ }
+
+ AuthorizationValidator newValidator;
+ try {
+ newValidator = (AuthorizationValidator) validatorClass.newInstance();
+ } catch (Exception ex) {
+ throw new SqoopException(SecurityError.AUTH_0009,
+ "Authorization Validator Class Exception: " + validator, ex);
+ }
+ return newValidator;
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/sqoop/blob/49f104bb/dist/src/main/server/conf/sqoop.properties
----------------------------------------------------------------------
diff --git a/dist/src/main/server/conf/sqoop.properties b/dist/src/main/server/conf/sqoop.properties
index e22e8b0..824c5eb 100755
--- a/dist/src/main/server/conf/sqoop.properties
+++ b/dist/src/main/server/conf/sqoop.properties
@@ -156,4 +156,11 @@ org.apache.sqoop.execution.engine=org.apache.sqoop.execution.mapreduce.Mapreduce
#org.apache.sqoop.security.authentication.enable.doAs=true
#org.apache.sqoop.security.authentication.proxyuser.#USER#.users=*
#org.apache.sqoop.security.authentication.proxyuser.#USER#.groups=*
-#org.apache.sqoop.security.authentication.proxyuser.#USER#.hosts=*
\ No newline at end of file
+#org.apache.sqoop.security.authentication.proxyuser.#USER#.hosts=*
+
+#
+# Authorization configuration
+#
+#org.apache.sqoop.security.authorization.handler=org.apache.sqoop.security.Authorization.DefaultAuthorizationHandler
+#org.apache.sqoop.security.authorization.access_controller=org.apache.sqoop.security.Authorization.DefaultAuthorizationAccessController
+#org.apache.sqoop.security.authorization.validator=org.apache.sqoop.security.Authorization.DefaultAuthorizationValidator
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/sqoop/blob/49f104bb/security/src/main/java/org/apache/sqoop/security/Authorization/DefaultAuthorizationAccessController.java
----------------------------------------------------------------------
diff --git a/security/src/main/java/org/apache/sqoop/security/Authorization/DefaultAuthorizationAccessController.java b/security/src/main/java/org/apache/sqoop/security/Authorization/DefaultAuthorizationAccessController.java
new file mode 100644
index 0000000..c8839f8
--- /dev/null
+++ b/security/src/main/java/org/apache/sqoop/security/Authorization/DefaultAuthorizationAccessController.java
@@ -0,0 +1,26 @@
+/**
+ * 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.sqoop.security.Authorization;
+
+import org.apache.log4j.Logger;
+import org.apache.sqoop.security.AuthorizationAccessController;
+
+public class DefaultAuthorizationAccessController extends AuthorizationAccessController {
+
+ private static final Logger LOG = Logger.getLogger(DefaultAuthorizationAccessController.class);
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/sqoop/blob/49f104bb/security/src/main/java/org/apache/sqoop/security/Authorization/DefaultAuthorizationHandler.java
----------------------------------------------------------------------
diff --git a/security/src/main/java/org/apache/sqoop/security/Authorization/DefaultAuthorizationHandler.java b/security/src/main/java/org/apache/sqoop/security/Authorization/DefaultAuthorizationHandler.java
new file mode 100644
index 0000000..a176b4d
--- /dev/null
+++ b/security/src/main/java/org/apache/sqoop/security/Authorization/DefaultAuthorizationHandler.java
@@ -0,0 +1,26 @@
+/**
+ * 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.sqoop.security.Authorization;
+
+import org.apache.log4j.Logger;
+import org.apache.sqoop.security.AuthorizationHandler;
+
+public class DefaultAuthorizationHandler extends AuthorizationHandler {
+
+ private static final Logger LOG = Logger.getLogger(DefaultAuthorizationHandler.class);
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/sqoop/blob/49f104bb/security/src/main/java/org/apache/sqoop/security/Authorization/DefaultAuthorizationValidator.java
----------------------------------------------------------------------
diff --git a/security/src/main/java/org/apache/sqoop/security/Authorization/DefaultAuthorizationValidator.java b/security/src/main/java/org/apache/sqoop/security/Authorization/DefaultAuthorizationValidator.java
new file mode 100644
index 0000000..0842c81
--- /dev/null
+++ b/security/src/main/java/org/apache/sqoop/security/Authorization/DefaultAuthorizationValidator.java
@@ -0,0 +1,26 @@
+/**
+ * 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.sqoop.security.Authorization;
+
+import org.apache.log4j.Logger;
+import org.apache.sqoop.security.AuthorizationValidator;
+
+public class DefaultAuthorizationValidator extends AuthorizationValidator {
+
+ private static final Logger LOG = Logger.getLogger(DefaultAuthorizationValidator.class);
+}
\ No newline at end of file