You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2015/10/28 01:20:40 UTC

[2/6] incubator-ranger git commit: RANGER-586:Ranger plugins should not add dependent libraries to component's CLASSPATH

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/a2c72902/ranger-yarn-plugin-shim/src/main/java/org/apache/ranger/authorization/yarn/authorizer/RangerYarnAuthorizer.java
----------------------------------------------------------------------
diff --git a/ranger-yarn-plugin-shim/src/main/java/org/apache/ranger/authorization/yarn/authorizer/RangerYarnAuthorizer.java b/ranger-yarn-plugin-shim/src/main/java/org/apache/ranger/authorization/yarn/authorizer/RangerYarnAuthorizer.java
new file mode 100644
index 0000000..289d1c0
--- /dev/null
+++ b/ranger-yarn-plugin-shim/src/main/java/org/apache/ranger/authorization/yarn/authorizer/RangerYarnAuthorizer.java
@@ -0,0 +1,205 @@
+
+/*
+ * 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.ranger.authorization.yarn.authorizer;
+
+import java.util.Map;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.security.UserGroupInformation;
+import org.apache.hadoop.security.authorize.AccessControlList;
+import org.apache.hadoop.yarn.security.AccessType;
+import org.apache.hadoop.yarn.security.PrivilegedEntity;
+import org.apache.hadoop.yarn.security.YarnAuthorizationProvider;
+import org.apache.ranger.plugin.classloader.RangerPluginClassLoader;
+
+
+
+public class RangerYarnAuthorizer extends YarnAuthorizationProvider {
+	private static final Log LOG  = LogFactory.getLog(RangerYarnAuthorizer.class);
+
+	private static final String   RANGER_PLUGIN_TYPE                      = "yarn";
+	private static final String[] RANGER_PLUGIN_LIB_DIR                   = new String[] {"lib/ranger-yarn-plugin"};
+	private static final String   RANGER_YARN_AUTHORIZER_IMPL_CLASSNAME   = "org.apache.ranger.authorization.yarn.authorizer.RangerYarnAuthorizer";
+
+	private YarnAuthorizationProvider 	 	yarnAuthorizationProviderImpl = null;
+	private static RangerPluginClassLoader  rangerPluginClassLoader  	  = null;
+	
+	public RangerYarnAuthorizer() {
+		if(LOG.isDebugEnabled()) {
+			LOG.debug("==> RangerYarnAuthorizer.RangerYarnAuthorizer()");
+		}
+
+		this.init();
+
+		if(LOG.isDebugEnabled()) {
+			LOG.debug("<== RangerYarnAuthorizer.RangerYarnAuthorizer()");
+		}
+	}
+
+	private void init(){
+		if(LOG.isDebugEnabled()) {
+			LOG.debug("==> RangerYarnAuthorizer.init()");
+		}
+
+		try {
+			
+			rangerPluginClassLoader = RangerPluginClassLoader.getInstance(RANGER_PLUGIN_TYPE, this.getClass());
+			
+			@SuppressWarnings("unchecked")
+			Class<YarnAuthorizationProvider> cls = (Class<YarnAuthorizationProvider>) Class.forName(RANGER_YARN_AUTHORIZER_IMPL_CLASSNAME, true, rangerPluginClassLoader);
+
+			activatePluginClassLoader();
+
+			yarnAuthorizationProviderImpl = cls.newInstance();
+		} catch (Exception e) {
+			// check what need to be done
+			LOG.error("Error Enabling RangerYarnPluing", e);
+		} finally {
+			deactivatePluginClassLoader();
+		}
+
+		if(LOG.isDebugEnabled()) {
+			LOG.debug("<== RangerYarnAuthorizer.init()");
+		}
+	}
+
+	@Override
+	public void init(Configuration conf) {
+		if(LOG.isDebugEnabled()) {
+			LOG.debug("==> RangerYarnAuthorizer.init()");
+		}
+
+		try {
+			activatePluginClassLoader();
+
+			yarnAuthorizationProviderImpl.init(conf);
+		} finally {
+			deactivatePluginClassLoader();
+		}
+
+		if(LOG.isDebugEnabled()) {
+			LOG.debug("<== RangerYarnAuthorizer.start()");
+		}
+	}
+
+	@Override
+	public boolean checkPermission(AccessType accessType, PrivilegedEntity target, UserGroupInformation user) {
+		
+		boolean ret = false;
+		
+		if(LOG.isDebugEnabled()) {
+			LOG.debug("==> RangerYarnAuthorizer.checkPermission()");
+		}
+
+		try {
+			activatePluginClassLoader();
+
+			ret = yarnAuthorizationProviderImpl.checkPermission(accessType, target, user);
+		} finally {
+			deactivatePluginClassLoader();
+		}
+
+		if(LOG.isDebugEnabled()) {
+			LOG.debug("<== RangerYarnAuthorizer.checkPermission()");
+		}
+		
+		return ret;
+	}
+
+	@Override
+	public void setPermission(PrivilegedEntity target,	Map<AccessType, AccessControlList> acls, UserGroupInformation ugi) {
+		
+		if(LOG.isDebugEnabled()) {
+			LOG.debug("==> RangerYarnAuthorizer.setPermission()");
+		}
+
+		try {
+			activatePluginClassLoader();
+
+			yarnAuthorizationProviderImpl.setPermission(target, acls, ugi);
+		} finally {
+			deactivatePluginClassLoader();
+		}
+
+		if(LOG.isDebugEnabled()) {
+			LOG.debug("<== RangerYarnAuthorizer.setPermission()");
+		}
+	}
+
+	@Override
+	public void setAdmins(AccessControlList acls, UserGroupInformation ugi) {
+		if(LOG.isDebugEnabled()) {
+			LOG.debug("==> RangerYarnAuthorizer.setAdmins()");
+		}
+
+		try {
+			activatePluginClassLoader();
+
+			yarnAuthorizationProviderImpl.setAdmins(acls, ugi);
+		} finally {
+			deactivatePluginClassLoader();
+		}
+
+		if(LOG.isDebugEnabled()) {
+			LOG.debug("<== RangerYarnAuthorizer.setAdmins()");
+		}
+	}
+
+	@Override
+	public boolean isAdmin(UserGroupInformation ugi) {
+		
+		boolean ret = false;
+		
+		if(LOG.isDebugEnabled()) {
+			LOG.debug("==> RangerYarnAuthorizer.setAdmins()");
+		}
+
+		try {
+			activatePluginClassLoader();
+
+			ret = yarnAuthorizationProviderImpl.isAdmin(ugi);
+		} finally {
+			deactivatePluginClassLoader();
+		}
+
+		if(LOG.isDebugEnabled()) {
+			LOG.debug("<== RangerYarnAuthorizer.setAdmins()");
+		}
+		
+		return ret;
+	}
+	
+	private void activatePluginClassLoader() {
+		if(rangerPluginClassLoader != null) {
+			rangerPluginClassLoader.activate();
+		}
+	}
+
+	private void deactivatePluginClassLoader() {
+		if(rangerPluginClassLoader != null) {
+			rangerPluginClassLoader.deactivate();
+		}
+	}
+
+	
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/a2c72902/src/main/assembly/hbase-agent.xml
----------------------------------------------------------------------
diff --git a/src/main/assembly/hbase-agent.xml b/src/main/assembly/hbase-agent.xml
index 0f22066..0ffc65c 100644
--- a/src/main/assembly/hbase-agent.xml
+++ b/src/main/assembly/hbase-agent.xml
@@ -28,21 +28,34 @@
      <binaries>
         <includeDependencies>false</includeDependencies>
         <unpack>false</unpack>
+	    <directoryMode>755</directoryMode>
+	    <fileMode>644</fileMode>
+  	    <outputDirectory>/lib</outputDirectory>
+     </binaries>
+     <includes>
+	  <include>security_plugins.ranger-hbase-plugin-shim:ranger-hbase-plugin-shim</include>
+	  <include>security_plugins.ranger-plugin-classloader:ranger-plugin-classloader</include>
+     </includes>
+    </moduleSet>    
+    <moduleSet>
+     <binaries>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
 	<directoryMode>755</directoryMode>
 	<fileMode>644</fileMode>
         <dependencySets>
             <dependencySet>
-                <outputDirectory>/lib</outputDirectory>
+                <outputDirectory>/lib/ranger-hbase-plugin-impl</outputDirectory>
                 <includes>
                     <include>com.google.code.gson:gson*</include>
                     <include>org.eclipse.persistence:eclipselink</include>
-		    <include>org.apache.httpcomponents:httpmime:jar:${httpcomponent.httpmime.version}</include>
-		    <include>org.noggit:noggit:jar:${noggit.version}</include>
+		    		<include>org.apache.httpcomponents:httpmime:jar:${httpcomponent.httpmime.version}</include>
+		   			<include>org.noggit:noggit:jar:${noggit.version}</include>
                 </includes>
                 <unpack>false</unpack>
             </dependencySet>
         </dependencySets>
-        <outputDirectory>/lib</outputDirectory>
+        <outputDirectory>/lib/ranger-hbase-plugin-impl</outputDirectory>
      </binaries>
      <includes>
 	<include>org.apache.ranger:ranger_solrj</include>
@@ -55,7 +68,7 @@
     </moduleSet>
     <moduleSet>
      <binaries>
-        <includeDependencies>false</includeDependencies>
+        <includeDependencies>true</includeDependencies>
         <dependencySets>
                 <dependencySet>
                     <outputDirectory>/install/lib</outputDirectory>
@@ -67,7 +80,7 @@
                         <include>commons-io:commons-io:jar:${commons.io.version}</include>
                         <include>commons-lang:commons-lang</include>
                         <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                        <include>com.google.guava:guava:jar:${guava.version}</include>
+                        <include>com.google.guava:guava:jar:${google.guava.version}</include>
                         <include>org.hamcrest:hamcrest-all</include>
                         <include>junit:junit</include>
                         <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/a2c72902/src/main/assembly/hdfs-agent.xml
----------------------------------------------------------------------
diff --git a/src/main/assembly/hdfs-agent.xml b/src/main/assembly/hdfs-agent.xml
index 2c18001..deec461 100644
--- a/src/main/assembly/hdfs-agent.xml
+++ b/src/main/assembly/hdfs-agent.xml
@@ -24,39 +24,24 @@
   <baseDirectory>${project.name}-${project.version}-hdfs-plugin</baseDirectory>
   <includeBaseDirectory>true</includeBaseDirectory>
   <moduleSets>
+    
     <moduleSet>
      <binaries>
         <includeDependencies>false</includeDependencies>
         <unpack>false</unpack>
 	    <directoryMode>755</directoryMode>
 	    <fileMode>644</fileMode>
-  		<dependencySets>
-   			<dependencySet>
-     			<outputDirectory>/lib</outputDirectory>
-				<includes>
-					<include>com.google.code.gson:gson*</include>
-					<include>org.eclipse.persistence:javax.persistence</include>
-					<include>org.eclipse.persistence:eclipselink</include>
-					<include>org.apache.httpcomponents:httpmime:jar:${httpcomponent.httpmime.version}</include>
-					<include>org.noggit:noggit:jar:${noggit.version}</include>
-				</includes>
-				<unpack>false</unpack>
-  			</dependencySet>
-  		</dependencySets>
-        <outputDirectory>/lib</outputDirectory>
+  	    <outputDirectory>/lib</outputDirectory>
      </binaries>
      <includes>
-	<include>org.apache.ranger:ranger_solrj</include>
-	<include>security_plugins.ranger-plugins-audit:ranger-plugins-audit</include>
-	<include>security_plugins.ranger-plugins-cred:ranger-plugins-cred</include>
-	<include>security_plugins.ranger-plugins-impl:ranger-plugins-impl</include>
-	<include>security_plugins.ranger-plugins-common:ranger-plugins-common</include>
-	<include>security_plugins.ranger-hdfs-plugin:ranger-hdfs-plugin</include>
-     </includes>
+	  <include>security_plugins.ranger-hdfs-plugin-shim:ranger-hdfs-plugin-shim</include>
+	  <include>security_plugins.ranger-plugin-classloader:ranger-plugin-classloader</include>
+      </includes>
     </moduleSet>
+    
     <moduleSet>
      <binaries>
-        <includeDependencies>false</includeDependencies>
+        <includeDependencies>true</includeDependencies>
   		<dependencySets>
                 <dependencySet>
                     <outputDirectory>/install/lib</outputDirectory>
@@ -68,9 +53,9 @@
                         <include>commons-io:commons-io:jar:${commons.io.version}</include>
                         <include>commons-lang:commons-lang</include>
                         <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                        <include>com.google.guava:guava:jar:${guava.version}</include>
+                        <include>com.google.guava:guava:jar:${google.guava.version}</include>
                         <include>org.hamcrest:hamcrest-all</include>
-                        <include>junit:junit</include>
+                        <include>junit:junit:${junit.version}</include>
                         <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
                         <include>org.apache.hadoop:hadoop-common:jar:${hadoop-common.version}</include>
                         <include>org.apache.hadoop:hadoop-auth:jar:${hadoop-common.version}</include>
@@ -85,6 +70,38 @@
         <include>org.apache.ranger:credentialbuilder</include>
      </includes>
     </moduleSet>
+    
+    <moduleSet>
+     <binaries>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+	    <directoryMode>755</directoryMode>
+	    <fileMode>644</fileMode>
+  		<dependencySets>
+   			<dependencySet>
+     			<outputDirectory>/lib/ranger-hdfs-plugin-impl</outputDirectory>
+				<includes>
+					<include>com.google.code.gson:gson*</include>
+					<include>org.eclipse.persistence:javax.persistence</include>
+					<include>org.eclipse.persistence:eclipselink</include>
+					<include>org.apache.httpcomponents:httpmime:jar:${httpcomponent.httpmime.version}</include>
+					<include>org.noggit:noggit:jar:${noggit.version}</include>
+				</includes>
+				<unpack>false</unpack>
+  			</dependencySet>
+  		</dependencySets>
+        <outputDirectory>/lib/ranger-hdfs-plugin-impl</outputDirectory>
+     </binaries>
+    <includes>
+	<include>org.apache.ranger:ranger_solrj</include>
+	<include>security_plugins.ranger-plugins-audit:ranger-plugins-audit</include>
+	<include>security_plugins.ranger-plugins-cred:ranger-plugins-cred</include>
+	<include>security_plugins.ranger-plugins-impl:ranger-plugins-impl</include>
+	<include>security_plugins.ranger-plugins-common:ranger-plugins-common</include>
+	<include>security_plugins.ranger-hdfs-plugin:ranger-hdfs-plugin</include>
+    </includes>
+    </moduleSet>
+    
   </moduleSets> 	
   <fileSets>
     <!-- conf.templates for enable -->

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/a2c72902/src/main/assembly/hive-agent.xml
----------------------------------------------------------------------
diff --git a/src/main/assembly/hive-agent.xml b/src/main/assembly/hive-agent.xml
index d21c6b8..9122547 100644
--- a/src/main/assembly/hive-agent.xml
+++ b/src/main/assembly/hive-agent.xml
@@ -24,6 +24,19 @@
   <baseDirectory>${project.name}-${project.version}-hive-plugin</baseDirectory>
   <includeBaseDirectory>true</includeBaseDirectory>
   <moduleSets>
+     <moduleSet>
+     <binaries>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+	    <directoryMode>755</directoryMode>
+	    <fileMode>644</fileMode>
+  	    <outputDirectory>/lib</outputDirectory>
+     </binaries>
+     <includes>
+	  <include>security_plugins.ranger-hive-plugin-shim:ranger-hive-plugin-shim</include>
+	  <include>security_plugins.ranger-plugin-classloader:ranger-plugin-classloader</include>
+     </includes>
+    </moduleSet>
     <moduleSet>
      <binaries>
         <includeDependencies>false</includeDependencies>
@@ -32,18 +45,18 @@
 	    <fileMode>644</fileMode>
         <dependencySets>
             <dependencySet>
-                <outputDirectory>/lib</outputDirectory>
+                <outputDirectory>/lib/ranger-hive-plugin-impl</outputDirectory>
                 <includes>
                     <include>com.google.code.gson:gson*</include>
 					<include>org.eclipse.persistence:eclipselink</include>
                     <include>org.eclipse.persistence:javax.persistence</include>
-		    <include>org.apache.httpcomponents:httpmime:jar:${httpcomponent.httpmime.version}</include>
-		    <include>org.noggit:noggit:jar:${noggit.version}</include>
+		    		<include>org.apache.httpcomponents:httpmime:jar:${httpcomponent.httpmime.version}</include>
+		   			<include>org.noggit:noggit:jar:${noggit.version}</include>
                 </includes>
                 <unpack>false</unpack>
             </dependencySet>
         </dependencySets>
-        <outputDirectory>/lib</outputDirectory>
+        <outputDirectory>/lib/ranger-hive-plugin-impl</outputDirectory>
      </binaries>
      <includes>
 	<include>org.apache.ranger:ranger_solrj</include>
@@ -56,7 +69,7 @@
     </moduleSet>
     <moduleSet>
      <binaries>
-        <includeDependencies>false</includeDependencies>
+        <includeDependencies>true</includeDependencies>
        <dependencySets>
                 <dependencySet>
                     <outputDirectory>/install/lib</outputDirectory>
@@ -68,7 +81,7 @@
                         <include>commons-io:commons-io:jar:${commons.io.version}</include>
                         <include>commons-lang:commons-lang</include>
                         <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                        <include>com.google.guava:guava:jar:${guava.version}</include>
+                        <include>com.google.guava:guava:jar:${google.guava.version}</include>
                         <include>org.hamcrest:hamcrest-all</include>
                         <include>junit:junit</include>
                         <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/a2c72902/src/main/assembly/knox-agent.xml
----------------------------------------------------------------------
diff --git a/src/main/assembly/knox-agent.xml b/src/main/assembly/knox-agent.xml
index 4806343..dc73f69 100644
--- a/src/main/assembly/knox-agent.xml
+++ b/src/main/assembly/knox-agent.xml
@@ -24,6 +24,21 @@
   <baseDirectory>${project.name}-${project.version}-knox-plugin</baseDirectory>
   <includeBaseDirectory>true</includeBaseDirectory>
   <moduleSets>
+  
+    <moduleSet>
+     <binaries>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+	    <directoryMode>755</directoryMode>
+	    <fileMode>644</fileMode>
+  	    <outputDirectory>/lib</outputDirectory>
+     </binaries>
+     <includes>
+	  <include>security_plugins.ranger-knox-plugin-shim:ranger-knox-plugin-shim</include>
+	  <include>security_plugins.ranger-plugin-classloader:ranger-plugin-classloader</include>
+      </includes>
+    </moduleSet>
+    
     <moduleSet>
      <binaries>
         <includeDependencies>false</includeDependencies>
@@ -32,10 +47,10 @@
 	    <fileMode>644</fileMode>
         <dependencySets>
             <dependencySet>
-                <outputDirectory>/lib</outputDirectory>
+                <outputDirectory>/lib/ranger-knox-plugin-impl</outputDirectory>
                 <includes>
                     <include>commons-configuration:commons-configuration</include>
-		    <include>com.google.code.gson:gson*</include>
+		    		<include>com.google.code.gson:gson*</include>
            		    <include>org.apache.httpcomponents:httpmime:jar:${httpcomponent.httpmime.version}</include>
 		    		<include>org.noggit:noggit:jar:${noggit.version}</include>
 		    		<include>com.google.protobuf:protobuf-java:jar:${protobuf-java.version}</include>
@@ -45,7 +60,7 @@
                 <unpack>false</unpack>
             </dependencySet>
         </dependencySets>
-        <outputDirectory>/lib</outputDirectory>
+        <outputDirectory>/lib/ranger-knox-plugin-impl</outputDirectory>
      </binaries>
      <includes>
 		<include>org.apache.ranger:ranger_solrj</include>
@@ -72,7 +87,7 @@
                         <include>commons-io:commons-io:jar:${commons.io.version}</include>
                         <include>commons-lang:commons-lang</include>
                         <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                        <include>com.google.guava:guava:jar:${guava.version}</include>
+                        <include>com.google.guava:guava:jar:${google.guava.version}</include>
                         <include>org.hamcrest:hamcrest-all</include>
                         <include>junit:junit</include>
 						<include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/a2c72902/src/main/assembly/plugin-kafka.xml
----------------------------------------------------------------------
diff --git a/src/main/assembly/plugin-kafka.xml b/src/main/assembly/plugin-kafka.xml
index 3727bde..31498e5 100644
--- a/src/main/assembly/plugin-kafka.xml
+++ b/src/main/assembly/plugin-kafka.xml
@@ -20,14 +20,28 @@
 	<includeBaseDirectory>true</includeBaseDirectory>
 	<moduleSets>
 		<moduleSet>
+	     <binaries>
+	        <includeDependencies>false</includeDependencies>
+	        <unpack>false</unpack>
+		    <directoryMode>755</directoryMode>
+		    <fileMode>644</fileMode>
+	  	    <outputDirectory>/lib</outputDirectory>
+	     </binaries>
+	     <includes>
+		  <include>security_plugins.ranger-kafka-plugin-shim:ranger-kafka-plugin-shim</include>
+		  <include>security_plugins.ranger-plugin-classloader:ranger-plugin-classloader</include>
+	      </includes>
+	    </moduleSet>
+   	 
+		<moduleSet>
 			<binaries>
-				<includeDependencies>false</includeDependencies>
+				<includeDependencies>true</includeDependencies>
 				<unpack>false</unpack>
 				<directoryMode>755</directoryMode>
 				<fileMode>644</fileMode>
 				<dependencySets>
 					<dependencySet>
-						<outputDirectory>/lib</outputDirectory>
+						<outputDirectory>lib/ranger-kafka-plugin-impl</outputDirectory>
 						<unpack>false</unpack>
 						<includes>
 							<include>commons-configuration:commons-configuration:jar:${commons.configuration.version}
@@ -38,6 +52,7 @@
 							</include>
 							<include>org.apache.hadoop:hadoop-auth:jar:${hadoop-common.version}
 							</include>
+							<include>org.apache.hadoop:hadoop-hdfs:jar:${hadoop.version}</include>
 							<include>com.google.code.gson:gson</include>
 							<include>org.eclipse.persistence:eclipselink</include>
 							<include>org.eclipse.persistence:javax.persistence</include>
@@ -47,7 +62,7 @@
 							</include>
 							<include>commons-lang:commons-lang</include>
 							<include>commons-io:commons-io</include>
-							<include>com.google.guava:guava:jar:${guava.version}</include>
+							<include>com.google.guava:guava:jar:${google.guava.version}</include>
 							<include>org.apache.httpcomponents:httpclient:jar:${httpcomponent.httpclient.version}
 							</include>
 							<include>org.apache.httpcomponents:httpcore:jar:${httpcomponent.httpcore.version}
@@ -59,7 +74,6 @@
 							<include>org.codehaus.jackson:jackson-jaxrs</include>
 							<include>org.codehaus.jackson:jackson-mapper-asl</include>
 							<include>org.codehaus.jackson:jackson-xc</include>
-
 						</includes>
 					</dependencySet>
 					<dependencySet>
@@ -77,7 +91,7 @@
 							<include>commons-lang:commons-lang:jar:${commons.lang.version}
 							</include>
 							<include>commons-logging:commons-logging</include>
-							<include>com.google.guava:guava:jar:${guava.version}</include>
+							<include>com.google.guava:guava:jar:${google.guava.version}</include>
 							<include>org.hamcrest:hamcrest-all</include>
 							<include>junit:junit</include>
 							<include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
@@ -91,20 +105,14 @@
 						</includes>
 					</dependencySet>
 				</dependencySets>
-				<outputDirectory>/lib</outputDirectory>
+				<outputDirectory>lib/ranger-kafka-plugin-impl</outputDirectory>
 			</binaries>
 			<includes>
+				<include>security_plugins.ranger-kafka-plugin:ranger-kafka-plugin</include>
 				<include>org.apache.ranger:ranger_solrj</include>
-				<include>security_plugins.ranger-plugins-audit:ranger-plugins-audit
-				</include>
-				<include>security_plugins.ranger-plugins-cred:ranger-plugins-cred
-				</include>
-				<include>security_plugins.ranger-plugins-impl:ranger-plugins-impl
-				</include>
-				<include>security_plugins.ranger-plugins-common:ranger-plugins-common
-				</include>
-				<include>security_plugins.ranger-kafka-plugin:ranger-kafka-plugin
-				</include>
+				<include>security_plugins.ranger-plugins-audit:ranger-plugins-audit</include>
+				<include>security_plugins.ranger-plugins-cred:ranger-plugins-cred</include>
+				<include>security_plugins.ranger-plugins-common:ranger-plugins-common</include>
 			</includes>
 		</moduleSet>
 		<moduleSet>

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/a2c72902/src/main/assembly/plugin-yarn.xml
----------------------------------------------------------------------
diff --git a/src/main/assembly/plugin-yarn.xml b/src/main/assembly/plugin-yarn.xml
index a791bba..6f8e33b 100644
--- a/src/main/assembly/plugin-yarn.xml
+++ b/src/main/assembly/plugin-yarn.xml
@@ -24,6 +24,20 @@
   <baseDirectory>${project.name}-${project.version}-yarn-plugin</baseDirectory>
   <includeBaseDirectory>true</includeBaseDirectory>
   <moduleSets>
+     <moduleSet>
+     <binaries>
+        <includeDependencies>false</includeDependencies>
+        <unpack>false</unpack>
+	    <directoryMode>755</directoryMode>
+	    <fileMode>644</fileMode>
+  	    <outputDirectory>/lib</outputDirectory>
+     </binaries>
+     <includes>
+	  <include>security_plugins.ranger-yarn-plugin-shim:ranger-yarn-plugin-shim</include>
+	  <include>security_plugins.ranger-plugin-classloader:ranger-plugin-classloader</include>
+      </includes>
+    </moduleSet>
+    
     <moduleSet>
      <binaries>
         <includeDependencies>false</includeDependencies>
@@ -32,7 +46,7 @@
 	    <fileMode>644</fileMode>
         <dependencySets>
             <dependencySet>
-                <outputDirectory>/lib</outputDirectory>
+                <outputDirectory>/lib/ranger-yarn-plugin-impl</outputDirectory>
                 <unpack>false</unpack>
                 <includes>
                     <include>org.apache.hadoop:hadoop-common:jar:${hadoop-common.version}</include>
@@ -54,8 +68,8 @@
                         <include>commons-configuration:commons-configuration:jar:${commons.configuration.version}</include>
                         <include>commons-io:commons-io:jar:${commons.io.version}</include>
                         <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
-                        <include>commons-logging:commons-logging</include>
-                        <include>com.google.guava:guava:jar:${guava.version}</include>
+                        <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
+                        <include>com.google.guava:guava:jar:${google.guava.version}</include>
                         <include>org.hamcrest:hamcrest-all</include>
                         <include>junit:junit</include>
                         <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
@@ -66,7 +80,7 @@
                     </includes>
             </dependencySet>
         </dependencySets>
-        <outputDirectory>/lib</outputDirectory>
+        <outputDirectory>/lib/ranger-yarn-plugin-impl</outputDirectory>
      </binaries>
      <includes>
 		<include>org.apache.ranger:ranger_solrj</include>
@@ -79,7 +93,7 @@
     </moduleSet>
     <moduleSet>
      <binaries>
-        <includeDependencies>false</includeDependencies>
+        <includeDependencies>true</includeDependencies>
         <outputDirectory>/install/lib</outputDirectory>
         <unpack>false</unpack>
      </binaries>

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/a2c72902/src/main/assembly/storm-agent.xml
----------------------------------------------------------------------
diff --git a/src/main/assembly/storm-agent.xml b/src/main/assembly/storm-agent.xml
index 12ec052..a5f4b2c 100644
--- a/src/main/assembly/storm-agent.xml
+++ b/src/main/assembly/storm-agent.xml
@@ -30,9 +30,22 @@
         <unpack>false</unpack>
 	    <directoryMode>755</directoryMode>
 	    <fileMode>644</fileMode>
+  	    <outputDirectory>/lib</outputDirectory>
+     </binaries>
+     <includes>
+	  <include>security_plugins.ranger-storm-plugin-shim:ranger-storm-plugin-shim</include>
+	  <include>security_plugins.ranger-plugin-classloader:ranger-plugin-classloader</include>
+      </includes>
+    </moduleSet>
+    <moduleSet>
+     <binaries>
+        <includeDependencies>true</includeDependencies>
+        <unpack>false</unpack>
+	    <directoryMode>755</directoryMode>
+	    <fileMode>644</fileMode>
         <dependencySets>
             <dependencySet>
-                <outputDirectory>/lib</outputDirectory>
+                <outputDirectory>lib/ranger-storm-plugin-impl</outputDirectory>
                 <unpack>false</unpack>
                 <includes>
                     <include>commons-configuration:commons-configuration:jar:${commons.configuration.version}</include>
@@ -44,7 +57,7 @@
                     <include>commons-collections:commons-collections</include>
                     <include>com.sun.jersey:jersey-bundle</include>
                     <include>commons-logging:commons-logging:jar:${commons.logging.version}</include>
-                    <include>com.google.guava:guava:jar:${guava.version}</include>
+                    <include>com.google.guava:guava:jar:${google.guava.version}</include>
                     <include>org.codehaus.jackson:jackson-jaxrs:jar:${codehaus.jackson.version}</include>
                     <include>org.codehaus.jackson:jackson-core-asl:jar:${codehaus.jackson.storm.version}</include>
                     <include>org.codehaus.jackson:jackson-mapper-asl:jar:${codehaus.jackson.storm.version}</include>
@@ -55,7 +68,7 @@
                     <include>com.google.protobuf:protobuf-java:jar:${protobuf-java.version}</include>
                     <include>org.apache.hadoop:hadoop-hdfs:jar:${hadoop.version}</include>
                     <include>org.apache.htrace:htrace-core:jar:${htrace-core.version}</include>
-                    <include>commons-cli:commons-cli:jar:${commons.cli.version}</include>
+                    <include>commons-cli:commons-cli:jar:${commons.cli.version}</include> 
                     <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
                     <include>commons-io:commons-io:jar:${commons.io.version}</include>
                 </includes>
@@ -72,7 +85,7 @@
                         <include>commons-io:commons-io:jar:${commons.io.version}</include>
                         <include>commons-lang:commons-lang:jar:${commons.lang.version}</include>
                         <include>commons-logging:commons-logging</include>
-                        <include>com.google.guava:guava:jar:${guava.version}</include>
+                        <include>com.google.guava:guava:jar:${google.guava.version}</include>
                         <include>org.hamcrest:hamcrest-all</include>
                         <include>junit:junit</include>
                         <include>org.slf4j:slf4j-api:jar:${slf4j-api.version}</include>
@@ -83,7 +96,7 @@
                     </includes>
             </dependencySet>
         </dependencySets>
-        <outputDirectory>/lib</outputDirectory>
+        <outputDirectory>lib/ranger-storm-plugin-impl</outputDirectory>
      </binaries>
      <includes>
 		<include>org.apache.ranger:ranger_solrj</include>

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/a2c72902/storm-agent/src/main/java/com/xasecure/authorization/storm/authorizer/XaSecureStormAuthorizer.java
----------------------------------------------------------------------
diff --git a/storm-agent/src/main/java/com/xasecure/authorization/storm/authorizer/XaSecureStormAuthorizer.java b/storm-agent/src/main/java/com/xasecure/authorization/storm/authorizer/XaSecureStormAuthorizer.java
deleted file mode 100644
index 723dd79..0000000
--- a/storm-agent/src/main/java/com/xasecure/authorization/storm/authorizer/XaSecureStormAuthorizer.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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 com.xasecure.authorization.storm.authorizer;
-
-import org.apache.ranger.authorization.storm.authorizer.RangerStormAuthorizer;
-
-/**
- * This class exists only to provide for seamless upgrade/downgrade capabilities.  Class name is in storm conf which must allow for seamles upgrade and downgrade.
- * Thus when class names were changed XaSecure* -> Ranger* this shell class serves to allow for seamles upgrade as well as downgrade.
- *
- * This class is final because if one needs to customize coprocessor it is expected that RangerStormAuthorizer would be modified/extended as that is
- * the "real" authorizer!  This class, hence, should NEVER be more than an EMPTY shell!
- */
-final public class XaSecureStormAuthorizer extends RangerStormAuthorizer {
-}