Author: thejas
Date: Wed Nov 20 23:10:38 2013
New Revision: 1543983

URL: http://svn.apache.org/r1543983
Log:
HIVE-5635 : WebHCatJTShim23 ignores security/user context (Eugene Koifman via 
Thejas Nair)

Modified:
    
hive/trunk/shims/0.23/src/main/java/org/apache/hadoop/mapred/WebHCatJTShim23.java

Modified: 
hive/trunk/shims/0.23/src/main/java/org/apache/hadoop/mapred/WebHCatJTShim23.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/shims/0.23/src/main/java/org/apache/hadoop/mapred/WebHCatJTShim23.java?rev=1543983&r1=1543982&r2=1543983&view=diff
==============================================================================
--- 
hive/trunk/shims/0.23/src/main/java/org/apache/hadoop/mapred/WebHCatJTShim23.java
 (original)
+++ 
hive/trunk/shims/0.23/src/main/java/org/apache/hadoop/mapred/WebHCatJTShim23.java
 Wed Nov 20 23:10:38 2013
@@ -24,6 +24,7 @@ import org.apache.hadoop.hive.shims.Hado
 
 import java.io.IOException;
 import java.net.URI;
+import java.security.PrivilegedExceptionAction;
 
 public class WebHCatJTShim23 implements WebHCatJTShim {
   private JobClient jc;
@@ -31,10 +32,23 @@ public class WebHCatJTShim23 implements 
   /**
    * Create a connection to the Job Tracker.
    */
-  public WebHCatJTShim23(Configuration conf, final UserGroupInformation ugi)
+  public WebHCatJTShim23(final Configuration conf, final UserGroupInformation 
ugi)
           throws IOException {
-
-    jc = new JobClient(conf);
+    try {
+    jc = ugi.doAs(new PrivilegedExceptionAction<JobClient>() {
+      public JobClient run() throws IOException, InterruptedException  {
+        return ugi.doAs(new PrivilegedExceptionAction<JobClient>() {
+          public JobClient run() throws IOException {
+            //create this in doAs() so that it gets a security context based 
passed in 'ugi'
+            return new JobClient(conf);
+          }
+        });
+      }
+    });
+    }
+    catch(InterruptedException ex) {
+      throw new RuntimeException("Failed to create JobClient", ex);
+    }
   }
 
   /**


Reply via email to