Repository: hive
Updated Branches:
  refs/heads/branch-1 9b8fbd486 -> 4cb3b11e2


HIVE-13055: Add unit tests for HIVE-11512 (Naveen Gangam via Aihua Xu)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/4cb3b11e
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/4cb3b11e
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/4cb3b11e

Branch: refs/heads/branch-1
Commit: 4cb3b11e2d260458bd36aefed6ef3ebd339cae27
Parents: 9b8fbd4
Author: Aihua Xu <aihu...@apache.org>
Authored: Thu Feb 18 09:17:32 2016 -0500
Committer: Aihua Xu <aihu...@apache.org>
Committed: Thu Feb 18 15:09:54 2016 -0500

----------------------------------------------------------------------
 .../auth/TestLdapAtnProviderWithMiniDS.java     | 227 +++++++++++++++++++
 1 file changed, 227 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/4cb3b11e/service/src/test/org/apache/hive/service/auth/TestLdapAtnProviderWithMiniDS.java
----------------------------------------------------------------------
diff --git 
a/service/src/test/org/apache/hive/service/auth/TestLdapAtnProviderWithMiniDS.java
 
b/service/src/test/org/apache/hive/service/auth/TestLdapAtnProviderWithMiniDS.java
index 934b207..e5cee37 100644
--- 
a/service/src/test/org/apache/hive/service/auth/TestLdapAtnProviderWithMiniDS.java
+++ 
b/service/src/test/org/apache/hive/service/auth/TestLdapAtnProviderWithMiniDS.java
@@ -308,4 +308,231 @@ public class TestLdapAtnProviderWithMiniDS extends 
AbstractLdapTestUnit {
       assertTrue("testUserBindNegative: Authentication failed for user2 as 
expected", true);
     }
   }
+
+  @Test
+  public void testUserBindPositiveWithDN() throws Exception {
+    String user;
+    Map<String, String> ldapProperties = new HashMap<String, String>();
+
+    ldapProperties.put("hive.server2.authentication.ldap.userDNPattern", 
"uid=%s,ou=People,dc=example,dc=com");
+    ldapProperties.put("hive.server2.authentication.ldap.groupDNPattern", 
"uid=%s,ou=Groups,dc=example,dc=com");
+    initLdapAtn(ldapProperties);
+    assertTrue(ldapServer.getPort() > 0);
+
+    user = "uid=user1,ou=People,dc=example,dc=com";
+    try {
+      ldapProvider.Authenticate(user, "user1");
+      assertTrue("testUserBindPositive: Authentication succeeded for " + user 
+ " as expected", true);
+    } catch (AuthenticationException e) {
+      Assert.fail("testUserBindPositive: Authentication failed for user:" + 
user +
+                    " with password user1, expected to succeed:" + 
e.getMessage());
+    }
+
+    user = "uid=user2,ou=People,dc=example,dc=com";
+    try {
+      ldapProvider.Authenticate(user, "user2");
+      assertTrue("testUserBindPositive: Authentication succeeded for " + user 
+ " user as expected", true);
+    } catch (AuthenticationException e) {
+      Assert.fail("testUserBindPositive: Authentication failed for user:" + 
user +
+                    " with password user2, expected to succeed:" + 
e.getMessage());
+    }
+  }
+
+  @Test
+  public void testUserBindPositiveWithDNOldConfig() throws Exception {
+    String user;
+    Map<String, String> ldapProperties = new HashMap<String, String>();
+
+    ldapProperties.put("hive.server2.authentication.ldap.baseDN", 
"ou=People,dc=example,dc=com");
+    initLdapAtn(ldapProperties);
+    assertTrue(ldapServer.getPort() > 0);
+
+    user = "uid=user1,ou=People,dc=example,dc=com";
+    try {
+      ldapProvider.Authenticate(user, "user1");
+      assertTrue("testUserBindPositive: Authentication succeeded for " + user 
+ " as expected", true);
+    } catch (AuthenticationException e) {
+      Assert.fail("testUserBindPositive: Authentication failed for user:" + 
user +
+                    " with password user1, expected to succeed");
+    }
+
+    user = "uid=user2,ou=People,dc=example,dc=com";
+    try {
+      ldapProvider.Authenticate(user, "user2");
+      assertTrue("testUserBindPositive: Authentication succeeded for " + user 
+ " as expected", true);
+    } catch (AuthenticationException e) {
+      Assert.fail("testUserBindPositive: Authentication failed for user:" + 
user +
+                    " with password user2, expected to succeed");
+    }
+  }
+
+  @Test
+  public void testUserBindPositiveWithDNWrongOldConfig() throws Exception {
+    String user;
+    Map<String, String> ldapProperties = new HashMap<String, String>();
+
+    ldapProperties.put("hive.server2.authentication.ldap.baseDN", 
"ou=DummyPeople,dc=example,dc=com");
+    initLdapAtn(ldapProperties);
+    assertTrue(ldapServer.getPort() > 0);
+
+    user = "uid=user1,ou=People,dc=example,dc=com";
+    try {
+      ldapProvider.Authenticate(user, "user1");
+      assertTrue("testUserBindPositive: Authentication succeeded for " + user 
+ " as expected", true);
+    } catch (AuthenticationException e) {
+      Assert.fail("testUserBindPositive: Authentication failed for user:" + 
user +
+                    " with password user1, expected to succeed");
+    }
+
+    user = "uid=user2,ou=People,dc=example,dc=com";
+    try {
+      ldapProvider.Authenticate(user, "user2");
+      assertTrue("testUserBindPositive: Authentication succeeded for " + user 
+ " as expected", true);
+    } catch (AuthenticationException e) {
+      Assert.fail("testUserBindPositive: Authentication failed for user:" + 
user +
+                    " with password user2, expected to succeed");
+    }
+  }
+
+  @Test
+  public void testUserBindPositiveWithDNWrongConfig() throws Exception {
+    String user;
+    Map<String, String> ldapProperties = new HashMap<String, String>();
+
+    ldapProperties.put("hive.server2.authentication.ldap.userDNPattern", 
"uid=%s,ou=DummyPeople,dc=example,dc=com");
+    ldapProperties.put("hive.server2.authentication.ldap.groupDNPattern", 
"uid=%s,ou=DummyGroups,dc=example,dc=com");
+    initLdapAtn(ldapProperties);
+    assertTrue(ldapServer.getPort() > 0);
+
+    user = "uid=user1,ou=People,dc=example,dc=com";
+    try {
+      ldapProvider.Authenticate(user, "user1");
+      assertTrue("testUserBindPositive: Authentication succeeded for " + user 
+ " as expected", true);
+    } catch (AuthenticationException e) {
+      Assert.fail("testUserBindPositive: Authentication failed for user:" + 
user +
+                    " with password user1, expected to succeed");
+    }
+
+    user = "uid=user2,ou=People,dc=example,dc=com";
+    try {
+      ldapProvider.Authenticate(user, "user2");
+      assertTrue("testUserBindPositive: Authentication succeeded for " + user 
+ " as expected", true);
+    } catch (AuthenticationException e) {
+      Assert.fail("testUserBindPositive: Authentication failed for user:" + 
user +
+                    " with password user2, expected to succeed");
+    }
+  }
+
+  @Test
+  public void testUserBindPositiveWithDNBlankConfig() throws Exception {
+    String user;
+    Map<String, String> ldapProperties = new HashMap<String, String>();
+
+    ldapProperties.put("hive.server2.authentication.ldap.userDNPattern", " ");
+    ldapProperties.put("hive.server2.authentication.ldap.groupDNPattern", " ");
+    initLdapAtn(ldapProperties);
+    assertTrue(ldapServer.getPort() > 0);
+
+    user = "uid=user1,ou=People,dc=example,dc=com";
+    try {
+      ldapProvider.Authenticate(user, "user1");
+      assertTrue("testUserBindPositive: Authentication succeeded for " + user 
+ " as expected", true);
+    } catch (AuthenticationException e) {
+      Assert.fail("testUserBindPositive: Authentication failed for user:" + 
user +
+                    " with password user1, expected to succeed");
+    }
+
+    user = "uid=user2,ou=People,dc=example,dc=com";
+    try {
+      ldapProvider.Authenticate(user, "user2");
+      assertTrue("testUserBindPositive: Authentication succeeded for " + user 
+ " as expected", true);
+    } catch (AuthenticationException e) {
+      Assert.fail("testUserBindPositive: Authentication failed for user:" + 
user +
+                    " with password user2, expected to succeed");
+    }
+  }
+
+  @Test
+  public void testUserBindPositiveWithDNBlankOldConfig() throws Exception {
+    String user;
+    Map<String, String> ldapProperties = new HashMap<String, String>();
+
+    ldapProperties.put("hive.server2.authentication.ldap.baseDN", "");
+    initLdapAtn(ldapProperties);
+    assertTrue(ldapServer.getPort() > 0);
+
+    user = "uid=user1,ou=People,dc=example,dc=com";
+    try {
+      ldapProvider.Authenticate(user, "user1");
+      assertTrue("testUserBindPositive: Authentication succeeded for " + user 
+ " as expected", true);
+    } catch (AuthenticationException e) {
+      Assert.fail("testUserBindPositive: Authentication failed for user:" + 
user +
+                    " with password user1, expected to succeed");
+    }
+
+    user = "uid=user2,ou=People,dc=example,dc=com";
+    try {
+      ldapProvider.Authenticate(user, "user2");
+      assertTrue("testUserBindPositive: Authentication succeeded for " + user 
+ " as expected", true);
+    } catch (AuthenticationException e) {
+      Assert.fail("testUserBindPositive: Authentication failed for user:" + 
user +
+                    " with password user2, expected to succeed");
+    }
+  }
+
+  @Test
+  public void testUserBindNegativeWithDN() throws Exception {
+    String user;
+    Map<String, String> ldapProperties = new HashMap<String, String>();
+    ldapProperties.put("hive.server2.authentication.ldap.userDNPattern", 
"uid=%s,ou=People,dc=example,dc=com");
+    ldapProperties.put("hive.server2.authentication.ldap.groupDNPattern", 
"uid=%s,ou=Groups,dc=example,dc=com");
+    initLdapAtn(ldapProperties);
+    assertTrue(ldapServer.getPort() > 0);
+
+    user = "uid=user1,ou=People,dc=example,dc=com";
+    try {
+      ldapProvider.Authenticate(user, "user2");
+      Assert.fail("testUserBindNegative: Authentication succeeded for " + user 
+ " with password " +
+                   "user2, expected to fail");
+    } catch (AuthenticationException e) {
+      assertTrue("testUserBindNegative: Authentication failed for " + user + " 
as expected", true);
+    }
+
+    user = "uid=user2,ou=People,dc=example,dc=com";
+    try {
+      ldapProvider.Authenticate(user, "user");
+      Assert.fail("testUserBindNegative: Authentication failed for " + user + 
" with password user, " +
+                    "expected to fail");
+    } catch (AuthenticationException e) {
+      assertTrue("testUserBindNegative: Authentication failed for " + user + " 
as expected", true);
+    }
+  }
+
+  @Test
+  public void testUserBindNegativeWithDNOldConfig() throws Exception {
+    String user;
+    Map<String, String> ldapProperties = new HashMap<String, String>();
+    ldapProperties.put("hive.server2.authentication.ldap.baseDN", 
"ou=People,dc=example,dc=com");
+    initLdapAtn(ldapProperties);
+    assertTrue(ldapServer.getPort() > 0);
+
+    user = "uid=user1,ou=People,dc=example,dc=com";
+    try {
+      ldapProvider.Authenticate(user, "user2");
+      Assert.fail("testUserBindNegative: Authentication succeeded for " + user 
+ " with password " +
+                   "user2, expected to fail");
+    } catch (AuthenticationException e) {
+      assertTrue("testUserBindNegative: Authentication failed for " + user + " 
as expected", true);
+    }
+
+    user = "uid=user2,ou=People,dc=example,dc=com";
+    try {
+      ldapProvider.Authenticate(user, "user");
+      Assert.fail("testUserBindNegative: Authentication failed for " + user + 
" with password user, " +
+                    "expected to fail");
+    } catch (AuthenticationException e) {
+      assertTrue("testUserBindNegative: Authentication failed for " + user + " 
as expected", true);
+    }
+  }
+
 }

Reply via email to