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