Josh Elser created PHOENIX-3232:
-----------------------------------

             Summary: Automatic Kerberos login via JDBC url can result in 
clients using other's credentials
                 Key: PHOENIX-3232
                 URL: https://issues.apache.org/jira/browse/PHOENIX-3232
             Project: Phoenix
          Issue Type: Bug
            Reporter: Josh Elser
            Assignee: Josh Elser
            Priority: Critical


This is a recent topic of discussion that keeps coming up (PHOENIX-3189, 
PHOENIX-3216, and PHOENIX-3126).

The root of the problem are two competing goals:

1. Try to re-use HBase Connections as much as possible
2. Change the "global" Kerberos user state (in UserGroupInformation)

One common manifestation of this problem is when multiple JDBC URLs are used 
within a single JVM. Instances of PhoenixConnections are not tied to the user 
that was logged in at construction of the instance, but the global state 
(shared across the entire JVM). Thus, a second PhoenixConnection constructed 
with a different user causes the first PhoenixConnection to use the new user's 
credentials (without any warning).

https://github.com/joshelser/phoenix-test/blob/master/src/main/java/com/github/joshelser/ConcurrentUse.java
 is a concrete example of how this breaks down. The [second use of the 
connection by "USER 
A"|https://github.com/joshelser/phoenix-test/blob/master/src/main/java/com/github/joshelser/ConcurrentUse.java#L82]
 is actually done as the other user.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to