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);
+ }
}
/**