Index: src/test/java/org/apache/hadoop/hbase/security/TestUser.java =================================================================== --- src/test/java/org/apache/hadoop/hbase/security/TestUser.java (revision 1462675) +++ src/test/java/org/apache/hadoop/hbase/security/TestUser.java (working copy) @@ -102,6 +102,8 @@ User u = User.getCurrent(); assertNotNull(u); assertEquals(user1.getName(), u.getName()); + assertEquals(user1, u); + assertEquals(user1.hashCode(), u.hashCode()); } } Index: src/main/java/org/apache/hadoop/hbase/security/User.java =================================================================== --- src/main/java/org/apache/hadoop/hbase/security/User.java (revision 1462675) +++ src/main/java/org/apache/hadoop/hbase/security/User.java (working copy) @@ -127,6 +127,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(); }