List of usage examples for org.apache.hadoop.security UserGroupInformation hashCode
@Override public int hashCode()
From source file:org.apache.phoenix.queryserver.server.PhoenixDoAsCallbackTest.java
License:Apache License
@Test public void proxyingUsersAreCached() throws Exception { Configuration conf = new Configuration(false); // The user "server" can impersonate anyone conf.set("hadoop.proxyuser.server.groups", "*"); conf.set("hadoop.proxyuser.server.hosts", "*"); // Trigger ProxyUsers to refresh itself with the above configuration ProxyUsers.refreshSuperUserGroupsConfiguration(conf); UserGroupInformation serverUgi = UserGroupInformation.createUserForTesting("server", new String[0]); PhoenixDoAsCallback callback = new PhoenixDoAsCallback(serverUgi, conf); UserGroupInformation user1 = callback.doAsRemoteUser("user1", "localhost:1234", new Callable<UserGroupInformation>() { public UserGroupInformation call() throws Exception { return UserGroupInformation.getCurrentUser(); }/* w w w .j a va2 s . c o m*/ }); UserGroupInformation user2 = callback.doAsRemoteUser("user2", "localhost:1235", new Callable<UserGroupInformation>() { public UserGroupInformation call() throws Exception { return UserGroupInformation.getCurrentUser(); } }); UserGroupInformation user1Reference = callback.doAsRemoteUser("user1", "localhost:1234", new Callable<UserGroupInformation>() { public UserGroupInformation call() throws Exception { return UserGroupInformation.getCurrentUser(); } }); // The UserGroupInformation.getCurrentUser() actually returns a new UGI instance, but the internal // subject is the same. We can verify things will work as expected that way. assertNotEquals(user1.hashCode(), user2.hashCode()); assertEquals("These should be the same (cached) instance", user1.hashCode(), user1Reference.hashCode()); assertEquals("These should be the same (cached) instance", user1, user1Reference); }