diff options
Diffstat (limited to 'zookeeper-server/src/test/java/org/apache/zookeeper/test/AuthTest.java')
-rw-r--r-- | zookeeper-server/src/test/java/org/apache/zookeeper/test/AuthTest.java | 109 |
1 files changed, 49 insertions, 60 deletions
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/AuthTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/AuthTest.java index 60e3453bb..c78f6202b 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/AuthTest.java +++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/AuthTest.java @@ -1,4 +1,4 @@ -/** +/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -18,10 +18,10 @@ package org.apache.zookeeper.test; +import static org.junit.Assert.fail; import java.io.IOException; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; - import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.KeeperException; import org.apache.zookeeper.TestableZooKeeper; @@ -29,37 +29,35 @@ import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher.Event.KeeperState; import org.apache.zookeeper.ZooDefs.Ids; import org.apache.zookeeper.ZooKeeper; -import org.junit.Assert; import org.junit.Test; public class AuthTest extends ClientBase { + static { // password is test - System.setProperty("zookeeper.DigestAuthenticationProvider.superDigest", - "super:D/InIHSb7yEEbrWz8b9l71RjZJU="); + System.setProperty("zookeeper.DigestAuthenticationProvider.superDigest", "super:D/InIHSb7yEEbrWz8b9l71RjZJU="); System.setProperty("zookeeper.authProvider.1", "org.apache.zookeeper.test.InvalidAuthProvider"); } private final CountDownLatch authFailed = new CountDownLatch(1); @Override - protected TestableZooKeeper createClient(String hp) - throws IOException, InterruptedException - { + protected TestableZooKeeper createClient(String hp) throws IOException, InterruptedException { MyWatcher watcher = new MyWatcher(); return createClient(watcher, hp); } private class MyWatcher extends CountdownWatcher { + @Override public synchronized void process(WatchedEvent event) { if (event.getState() == KeeperState.AuthFailed) { authFailed.countDown(); - } - else { + } else { super.process(event); } } + } @Test @@ -68,73 +66,65 @@ public class AuthTest extends ClientBase { try { zk.addAuthInfo("FOO", "BAR".getBytes()); zk.getData("/path1", false, null); - Assert.fail("Should get auth state error"); - } catch(KeeperException.AuthFailedException e) { - if(!authFailed.await(CONNECTION_TIMEOUT, - TimeUnit.MILLISECONDS)) - { - Assert.fail("Should have called my watcher"); + fail("Should get auth state error"); + } catch (KeeperException.AuthFailedException e) { + if (!authFailed.await(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS)) { + fail("Should have called my watcher"); } - } - finally { + } finally { zk.close(); } } - + @Test public void testBadAuthThenSendOtherCommands() throws Exception { - ZooKeeper zk = createClient(); - try { + ZooKeeper zk = createClient(); + try { zk.addAuthInfo("INVALID", "BAR".getBytes()); - zk.exists("/foobar", false); + zk.exists("/foobar", false); zk.getData("/path1", false, null); - Assert.fail("Should get auth state error"); - } catch(KeeperException.AuthFailedException e) { - if(!authFailed.await(CONNECTION_TIMEOUT, - TimeUnit.MILLISECONDS)) - { - Assert.fail("Should have called my watcher"); + fail("Should get auth state error"); + } catch (KeeperException.AuthFailedException e) { + if (!authFailed.await(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS)) { + fail("Should have called my watcher"); } - } - finally { - zk.close(); + } finally { + zk.close(); } } - @Test public void testSuper() throws Exception { ZooKeeper zk = createClient(); try { zk.addAuthInfo("digest", "pat:pass".getBytes()); - zk.create("/path1", null, Ids.CREATOR_ALL_ACL, - CreateMode.PERSISTENT); + zk.create("/path1", null, Ids.CREATOR_ALL_ACL, CreateMode.PERSISTENT); zk.close(); // verify no auth zk = createClient(); try { zk.getData("/path1", false, null); - Assert.fail("auth verification"); + fail("auth verification"); } catch (KeeperException.NoAuthException e) { // expected } zk.close(); - // verify bad pass Assert.fails + // verify bad pass fails zk = createClient(); zk.addAuthInfo("digest", "pat:pass2".getBytes()); try { zk.getData("/path1", false, null); - Assert.fail("auth verification"); + fail("auth verification"); } catch (KeeperException.NoAuthException e) { // expected } zk.close(); - // verify super with bad pass Assert.fails + // verify super with bad pass fails zk = createClient(); zk.addAuthInfo("digest", "super:test2".getBytes()); try { zk.getData("/path1", false, null); - Assert.fail("auth verification"); + fail("auth verification"); } catch (KeeperException.NoAuthException e) { // expected } @@ -147,28 +137,27 @@ public class AuthTest extends ClientBase { zk.close(); } } - + @Test public void testSuperACL() throws Exception { - ZooKeeper zk = createClient(); - try { - zk.addAuthInfo("digest", "pat:pass".getBytes()); - zk.create("/path1", null, Ids.CREATOR_ALL_ACL, - CreateMode.PERSISTENT); - zk.close(); - // verify super can do anything and ignores ACLs - zk = createClient(); - zk.addAuthInfo("digest", "super:test".getBytes()); - zk.getData("/path1", false, null); - - zk.setACL("/path1", Ids.READ_ACL_UNSAFE, -1); - zk.create("/path1/foo", null, Ids.CREATOR_ALL_ACL, CreateMode.PERSISTENT); - - - zk.setACL("/path1", Ids.OPEN_ACL_UNSAFE, -1); - - } finally { - zk.close(); - } + ZooKeeper zk = createClient(); + try { + zk.addAuthInfo("digest", "pat:pass".getBytes()); + zk.create("/path1", null, Ids.CREATOR_ALL_ACL, CreateMode.PERSISTENT); + zk.close(); + // verify super can do anything and ignores ACLs + zk = createClient(); + zk.addAuthInfo("digest", "super:test".getBytes()); + zk.getData("/path1", false, null); + + zk.setACL("/path1", Ids.READ_ACL_UNSAFE, -1); + zk.create("/path1/foo", null, Ids.CREATOR_ALL_ACL, CreateMode.PERSISTENT); + + zk.setACL("/path1", Ids.OPEN_ACL_UNSAFE, -1); + + } finally { + zk.close(); + } } + } |