Index: hbase-server/src/test/java/org/apache/hadoop/hbase/security/TestUser.java =================================================================== --- hbase-server/src/test/java/org/apache/hadoop/hbase/security/TestUser.java (revision 1462557) +++ hbase-server/src/test/java/org/apache/hadoop/hbase/security/TestUser.java (working copy) @@ -101,6 +101,8 @@ User u = User.getCurrent(); assertNotNull(u); assertEquals(user1.getName(), u.getName()); + assertEquals(user1, u); + assertEquals(user1.hashCode(), u.hashCode()); } } Index: hbase-client/src/main/java/org/apache/hadoop/hbase/security/User.java =================================================================== --- hbase-client/src/main/java/org/apache/hadoop/hbase/security/User.java (revision 1462557) +++ hbase-client/src/main/java/org/apache/hadoop/hbase/security/User.java (working copy) @@ -114,6 +114,23 @@ public abstract void obtainAuthTokenForJob(JobConf job) throws IOException, InterruptedException; + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + return ugi.equals(((User) o).ugi); + } + + @Override + public int hashCode() { + return ugi.hashCode(); + } + + @Override public String toString() { return ugi.toString(); }