You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by xu...@apache.org on 2015/06/21 07:25:53 UTC
[28/61] [abbrv] hive git commit: HIVE-11001 : HS2 http cookie mode
does not honor doAs url parameter (Thejas Nair ,
reviewed by Hari Sankar Sivarama Subramaniyan )
HIVE-11001 : HS2 http cookie mode does not honor doAs url parameter (Thejas Nair , reviewed by Hari Sankar Sivarama Subramaniyan )
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/77978f30
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/77978f30
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/77978f30
Branch: refs/heads/spark
Commit: 77978f301deb231c6e139558ee7fd239276ad8aa
Parents: c338059
Author: Thejas Nair <th...@hortonworks.com>
Authored: Sun Jun 14 17:01:10 2015 -0700
Committer: Thejas Nair <th...@hortonworks.com>
Committed: Sun Jun 14 17:01:29 2015 -0700
----------------------------------------------------------------------
.../hadoop/hive/ql/session/SessionState.java | 3 +++
.../service/cli/thrift/ThriftHttpServlet.java | 18 ++++++++++++------
2 files changed, 15 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/77978f30/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java b/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
index 5067f06..37d856c 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java
@@ -338,6 +338,9 @@ public class SessionState {
public SessionState(HiveConf conf, String userName) {
this.conf = conf;
this.userName = userName;
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("SessionState user: " + userName);
+ }
isSilent = conf.getBoolVar(HiveConf.ConfVars.HIVESESSIONSILENT);
ls = new LineageState();
resourceMaps = new ResourceMaps();
http://git-wip-us.apache.org/repos/asf/hive/blob/77978f30/service/src/java/org/apache/hive/service/cli/thrift/ThriftHttpServlet.java
----------------------------------------------------------------------
diff --git a/service/src/java/org/apache/hive/service/cli/thrift/ThriftHttpServlet.java b/service/src/java/org/apache/hive/service/cli/thrift/ThriftHttpServlet.java
index e1166d3..56c8cb6 100644
--- a/service/src/java/org/apache/hive/service/cli/thrift/ThriftHttpServlet.java
+++ b/service/src/java/org/apache/hive/service/cli/thrift/ThriftHttpServlet.java
@@ -134,11 +134,6 @@ public class ThriftHttpServlet extends TServlet {
// For a kerberos setup
if (isKerberosAuthMode(authType)) {
clientUserName = doKerberosAuth(request);
- String doAsQueryParam = getDoAsQueryParam(request.getQueryString());
-
- if (doAsQueryParam != null) {
- SessionManager.setProxyUserName(doAsQueryParam);
- }
}
// For password based authentication
else {
@@ -146,8 +141,16 @@ public class ThriftHttpServlet extends TServlet {
}
}
LOG.debug("Client username: " + clientUserName);
+
// Set the thread local username to be used for doAs if true
SessionManager.setUserName(clientUserName);
+
+ // find proxy user if any from query param
+ String doAsQueryParam = getDoAsQueryParam(request.getQueryString());
+ if (doAsQueryParam != null) {
+ SessionManager.setProxyUserName(doAsQueryParam);
+ }
+
clientIpAddress = request.getRemoteAddr();
LOG.debug("Client IP Address: " + clientIpAddress);
// Set the thread local ip address
@@ -225,7 +228,7 @@ public class ThriftHttpServlet extends TServlet {
LOG.debug("Validated the cookie for user " + userName);
}
return userName;
- }
+ }
}
// No valid HS2 generated cookies found, return null
return null;
@@ -522,6 +525,9 @@ public class ThriftHttpServlet extends TServlet {
}
private static String getDoAsQueryParam(String queryString) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("URL query string:" + queryString);
+ }
if (queryString == null) {
return null;
}