Repository: zookeeper
Updated Branches:
  refs/heads/master 73d6bf535 -> cd0e32383


ZOOKEEPER-2635: Regenerate documentation (fpj)


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

Branch: refs/heads/master
Commit: cd0e323831c8b4cde64976325bfc79bb53cdd9b7
Parents: 73d6bf5
Author: fpj <[email protected]>
Authored: Sun Dec 11 20:08:45 2016 +0000
Committer: fpj <[email protected]>
Committed: Sun Dec 11 20:08:45 2016 +0000

----------------------------------------------------------------------
 docs/index.html                                 |   2 +-
 docs/index.pdf                                  | Bin 12664 -> 12643 bytes
 docs/javaExample.html                           |   2 +-
 docs/javaExample.pdf                            | Bin 33897 -> 33876 bytes
 docs/linkmap.html                               |   2 +-
 docs/linkmap.pdf                                | Bin 10829 -> 10808 bytes
 docs/recipes.html                               |   2 +-
 docs/recipes.pdf                                | Bin 33903 -> 33882 bytes
 docs/zookeeperAdmin.html                        |  39 ++++-
 docs/zookeeperAdmin.pdf                         | Bin 92297 -> 93578 bytes
 docs/zookeeperHierarchicalQuorums.html          |   2 +-
 docs/zookeeperHierarchicalQuorums.pdf           | Bin 6656 -> 6635 bytes
 docs/zookeeperInternals.html                    |   2 +-
 docs/zookeeperInternals.pdf                     | Bin 48869 -> 48848 bytes
 docs/zookeeperJMX.html                          |   2 +-
 docs/zookeeperJMX.pdf                           | Bin 16494 -> 16473 bytes
 docs/zookeeperObservers.html                    |   2 +-
 docs/zookeeperObservers.pdf                     | Bin 12881 -> 12860 bytes
 docs/zookeeperOver.html                         |   2 +-
 docs/zookeeperOver.pdf                          | Bin 302527 -> 302506 bytes
 docs/zookeeperProgrammers.html                  |  78 +++++++++-
 docs/zookeeperProgrammers.pdf                   | Bin 142335 -> 143721 bytes
 docs/zookeeperQuotas.html                       |   2 +-
 docs/zookeeperQuotas.pdf                        | Bin 11191 -> 11170 bytes
 docs/zookeeperReconfig.html                     | 146 ++++++++++++++++++-
 docs/zookeeperReconfig.pdf                      | Bin 53699 -> 62104 bytes
 docs/zookeeperStarted.html                      |   2 +-
 docs/zookeeperStarted.pdf                       | Bin 28120 -> 28099 bytes
 docs/zookeeperTutorial.html                     |   2 +-
 docs/zookeeperTutorial.pdf                      | Bin 30554 -> 30533 bytes
 .../src/documentation/content/xdocs/tabs.xml    |   2 +-
 31 files changed, 273 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/index.html
----------------------------------------------------------------------
diff --git a/docs/index.html b/docs/index.html
index 837fb55..a203986 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -67,7 +67,7 @@
 <a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
 </li>
 <li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
+<a class="selected" href="index.html">ZooKeeper 3.6 Documentation</a>
 </li>
 </ul>
 <!--+

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/index.pdf
----------------------------------------------------------------------
diff --git a/docs/index.pdf b/docs/index.pdf
index cc8bb1f..4349c24 100644
Binary files a/docs/index.pdf and b/docs/index.pdf differ

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/javaExample.html
----------------------------------------------------------------------
diff --git a/docs/javaExample.html b/docs/javaExample.html
index 2aa75cc..e9284c2 100644
--- a/docs/javaExample.html
+++ b/docs/javaExample.html
@@ -67,7 +67,7 @@
 <a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
 </li>
 <li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
+<a class="selected" href="index.html">ZooKeeper 3.6 Documentation</a>
 </li>
 </ul>
 <!--+

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/javaExample.pdf
----------------------------------------------------------------------
diff --git a/docs/javaExample.pdf b/docs/javaExample.pdf
index ad63226..bbc64ec 100644
Binary files a/docs/javaExample.pdf and b/docs/javaExample.pdf differ

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/linkmap.html
----------------------------------------------------------------------
diff --git a/docs/linkmap.html b/docs/linkmap.html
index 4db845a..d62b4be 100644
--- a/docs/linkmap.html
+++ b/docs/linkmap.html
@@ -67,7 +67,7 @@
 <a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
 </li>
 <li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
+<a class="selected" href="index.html">ZooKeeper 3.6 Documentation</a>
 </li>
 </ul>
 <!--+

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/linkmap.pdf
----------------------------------------------------------------------
diff --git a/docs/linkmap.pdf b/docs/linkmap.pdf
index 03da0bb..38a70e4 100644
Binary files a/docs/linkmap.pdf and b/docs/linkmap.pdf differ

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/recipes.html
----------------------------------------------------------------------
diff --git a/docs/recipes.html b/docs/recipes.html
index 98234a4..f270806 100644
--- a/docs/recipes.html
+++ b/docs/recipes.html
@@ -67,7 +67,7 @@
 <a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
 </li>
 <li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
+<a class="selected" href="index.html">ZooKeeper 3.6 Documentation</a>
 </li>
 </ul>
 <!--+

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/recipes.pdf
----------------------------------------------------------------------
diff --git a/docs/recipes.pdf b/docs/recipes.pdf
index 3f05a67..1d19f58 100644
Binary files a/docs/recipes.pdf and b/docs/recipes.pdf differ

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperAdmin.html
----------------------------------------------------------------------
diff --git a/docs/zookeeperAdmin.html b/docs/zookeeperAdmin.html
index 896090f..96b6d3e 100644
--- a/docs/zookeeperAdmin.html
+++ b/docs/zookeeperAdmin.html
@@ -67,7 +67,7 @@
 <a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
 </li>
 <li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
+<a class="selected" href="index.html">ZooKeeper 3.6 Documentation</a>
 </li>
 </ul>
 <!--+
@@ -1317,6 +1317,7 @@ server.3=zoo3:2888:3888</pre>
               of the observers on restart. Set to "false" to disable this
               feature. Default is "true"</p>
 </dd>
+
         
 </dl>
 <a name="sc_clusterOptions"></a>
@@ -1488,6 +1489,42 @@ server.3=zoo3:2888:3888</pre>
               to a server's config file.
               </p>
 </dd>
+
+          
+<dt>
+<term>reconfigEnabled</term>
+</dt>
+<dd>
+<p>(No Java system property)</p>
+<p>
+<strong>New in 3.5.3:</strong>
+                This controls the enabling or disabling of
+                <a href="zookeeperReconfig.html">
+                  Dynamic Reconfiguration</a> feature. When the feature
+                is enabled, users can perform reconfigure operations through
+                the ZooKeeper client API or through ZooKeeper command line 
tools
+                assuming users are authorized to perform such operations.
+                When the feature is disabled, no user, including the super 
user,
+                can perform a reconfiguration. Any attempt to reconfigure will 
return an error.
+                <strong>"reconfigEnabled"</strong> option can be set as
+                <strong>"reconfigEnabled=false"</strong> or
+                <strong>"reconfigEnabled=true"</strong>
+                to a server's config file, or using QuorumPeerConfig's
+                setReconfigEnabled method. The default value is false.
+
+                If present, the value should be consistent across every server 
in
+                the entire ensemble. Setting the value as true on some servers 
and false
+                on other servers will cause inconsistent behavior depending on 
which server
+                is elected as leader. If the leader has a setting of
+                <strong>"reconfigEnabled=true"</strong>, then the ensemble
+                will have reconfig feature enabled. If the leader has a 
setting of
+                <strong>"reconfigEnabled=false"</strong>, then the ensemble
+                will have reconfig feature disabled. It is thus recommended to 
have a consistent
+                value for <strong>"reconfigEnabled"</strong> across servers
+                in the ensemble.
+              </p>
+</dd>
+
         
 </dl>
 <p></p>

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperAdmin.pdf
----------------------------------------------------------------------
diff --git a/docs/zookeeperAdmin.pdf b/docs/zookeeperAdmin.pdf
index c0533e1..3f8f2d9 100644
Binary files a/docs/zookeeperAdmin.pdf and b/docs/zookeeperAdmin.pdf differ

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperHierarchicalQuorums.html
----------------------------------------------------------------------
diff --git a/docs/zookeeperHierarchicalQuorums.html 
b/docs/zookeeperHierarchicalQuorums.html
index 451ceae..72f6c06 100644
--- a/docs/zookeeperHierarchicalQuorums.html
+++ b/docs/zookeeperHierarchicalQuorums.html
@@ -67,7 +67,7 @@
 <a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
 </li>
 <li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
+<a class="selected" href="index.html">ZooKeeper 3.6 Documentation</a>
 </li>
 </ul>
 <!--+

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperHierarchicalQuorums.pdf
----------------------------------------------------------------------
diff --git a/docs/zookeeperHierarchicalQuorums.pdf 
b/docs/zookeeperHierarchicalQuorums.pdf
index e38de6a..d27aa22 100644
Binary files a/docs/zookeeperHierarchicalQuorums.pdf and 
b/docs/zookeeperHierarchicalQuorums.pdf differ

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperInternals.html
----------------------------------------------------------------------
diff --git a/docs/zookeeperInternals.html b/docs/zookeeperInternals.html
index a518a7e..de5c821 100644
--- a/docs/zookeeperInternals.html
+++ b/docs/zookeeperInternals.html
@@ -67,7 +67,7 @@
 <a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
 </li>
 <li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
+<a class="selected" href="index.html">ZooKeeper 3.6 Documentation</a>
 </li>
 </ul>
 <!--+

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperInternals.pdf
----------------------------------------------------------------------
diff --git a/docs/zookeeperInternals.pdf b/docs/zookeeperInternals.pdf
index a8223a3..445d8ef 100644
Binary files a/docs/zookeeperInternals.pdf and b/docs/zookeeperInternals.pdf 
differ

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperJMX.html
----------------------------------------------------------------------
diff --git a/docs/zookeeperJMX.html b/docs/zookeeperJMX.html
index ac71893..4a627f1 100644
--- a/docs/zookeeperJMX.html
+++ b/docs/zookeeperJMX.html
@@ -67,7 +67,7 @@
 <a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
 </li>
 <li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
+<a class="selected" href="index.html">ZooKeeper 3.6 Documentation</a>
 </li>
 </ul>
 <!--+

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperJMX.pdf
----------------------------------------------------------------------
diff --git a/docs/zookeeperJMX.pdf b/docs/zookeeperJMX.pdf
index 0e1866c..5cfe345 100644
Binary files a/docs/zookeeperJMX.pdf and b/docs/zookeeperJMX.pdf differ

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperObservers.html
----------------------------------------------------------------------
diff --git a/docs/zookeeperObservers.html b/docs/zookeeperObservers.html
index e2c9354..4f83ebb 100644
--- a/docs/zookeeperObservers.html
+++ b/docs/zookeeperObservers.html
@@ -67,7 +67,7 @@
 <a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
 </li>
 <li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
+<a class="selected" href="index.html">ZooKeeper 3.6 Documentation</a>
 </li>
 </ul>
 <!--+

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperObservers.pdf
----------------------------------------------------------------------
diff --git a/docs/zookeeperObservers.pdf b/docs/zookeeperObservers.pdf
index 2f9fca1..f1f83dc 100644
Binary files a/docs/zookeeperObservers.pdf and b/docs/zookeeperObservers.pdf 
differ

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperOver.html
----------------------------------------------------------------------
diff --git a/docs/zookeeperOver.html b/docs/zookeeperOver.html
index 05dc0b2..7a68713 100644
--- a/docs/zookeeperOver.html
+++ b/docs/zookeeperOver.html
@@ -67,7 +67,7 @@
 <a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
 </li>
 <li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
+<a class="selected" href="index.html">ZooKeeper 3.6 Documentation</a>
 </li>
 </ul>
 <!--+

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperOver.pdf
----------------------------------------------------------------------
diff --git a/docs/zookeeperOver.pdf b/docs/zookeeperOver.pdf
index 4046ede..7075e79 100644
Binary files a/docs/zookeeperOver.pdf and b/docs/zookeeperOver.pdf differ

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperProgrammers.html
----------------------------------------------------------------------
diff --git a/docs/zookeeperProgrammers.html b/docs/zookeeperProgrammers.html
index 35f9bf8..a0ddd1c 100644
--- a/docs/zookeeperProgrammers.html
+++ b/docs/zookeeperProgrammers.html
@@ -67,7 +67,7 @@
 <a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
 </li>
 <li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
+<a class="selected" href="index.html">ZooKeeper 3.6 Documentation</a>
 </li>
 </ul>
 <!--+
@@ -1742,6 +1742,82 @@ authProvider.2=com.f.MyAuth2
     only one will be used. Also all servers must have the same plugins 
defined, otherwise clients using
     the authentication schemes provided by the plugins will have problems 
connecting to some servers.
     </p>
+<p> 
+<strong>Added in 3.6.0</strong>: An alternate abstraction is available for 
pluggable
+    authentication. It provides additional arguments.
+    </p>
+<pre class="code">
+public abstract class ServerAuthenticationProvider implements 
AuthenticationProvider {
+    public abstract KeeperException.Code handleAuthentication(ServerObjs 
serverObjs, byte authData[]);
+    public abstract boolean matches(ServerObjs serverObjs, MatchValues 
matchValues);
+}
+    </pre>
+<p>
+    Instead of implementing AuthenticationProvider you extend 
ServerAuthenticationProvider. Your handleAuthentication()
+    and matches() methods will then receive the additional parameters (via 
ServerObjs and MatchValues).
+    </p>
+<ul>
+      
+<li>
+        
+<p>
+<strong>ZooKeeperServer</strong>
+</p>
+
+        
+<p>The ZooKeeperServer instance</p>
+      
+</li>
+
+      
+<li>
+        
+<p>
+<strong>ServerCnxn</strong>
+</p>
+
+        
+<p>The current connection</p>
+      
+</li>
+
+      
+<li>
+        
+<p>
+<strong>path</strong>
+</p>
+
+        
+<p>The ZNode path being operated on (or null if not used)</p>
+      
+</li>
+
+      
+<li>
+        
+<p>
+<strong>perm</strong>
+</p>
+
+        
+<p>The operation value or 0</p>
+      
+</li>
+
+      
+<li>
+        
+<p>
+<strong>setAcls</strong>
+</p>
+
+        
+<p>When the setAcl() method is being operated on, the list of ACLs that are 
being set</p>
+      
+</li>
+    
+</ul>
 </div>
       
   

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperProgrammers.pdf
----------------------------------------------------------------------
diff --git a/docs/zookeeperProgrammers.pdf b/docs/zookeeperProgrammers.pdf
index 2f9945c..0899f86 100644
Binary files a/docs/zookeeperProgrammers.pdf and 
b/docs/zookeeperProgrammers.pdf differ

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperQuotas.html
----------------------------------------------------------------------
diff --git a/docs/zookeeperQuotas.html b/docs/zookeeperQuotas.html
index c4a9380..ca5c02d 100644
--- a/docs/zookeeperQuotas.html
+++ b/docs/zookeeperQuotas.html
@@ -67,7 +67,7 @@
 <a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
 </li>
 <li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
+<a class="selected" href="index.html">ZooKeeper 3.6 Documentation</a>
 </li>
 </ul>
 <!--+

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperQuotas.pdf
----------------------------------------------------------------------
diff --git a/docs/zookeeperQuotas.pdf b/docs/zookeeperQuotas.pdf
index 047b1c5..a1d48f6 100644
Binary files a/docs/zookeeperQuotas.pdf and b/docs/zookeeperQuotas.pdf differ

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperReconfig.html
----------------------------------------------------------------------
diff --git a/docs/zookeeperReconfig.html b/docs/zookeeperReconfig.html
index fabcf3a..32fd0cb 100644
--- a/docs/zookeeperReconfig.html
+++ b/docs/zookeeperReconfig.html
@@ -67,7 +67,7 @@
 <a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
 </li>
 <li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
+<a class="selected" href="index.html">ZooKeeper 3.6 Documentation</a>
 </li>
 </ul>
 <!--+
@@ -207,6 +207,9 @@ document.write("Last Published: " + document.lastModified);
 <a href="#sc_reconfig_standaloneEnabled">The standaloneEnabled flag</a>
 </li>
 <li>
+<a href="#sc_reconfig_reconfigEnabled">The reconfigEnabled flag</a>
+</li>
+<li>
 <a href="#sc_reconfig_file">Dynamic configuration file</a>
 </li>
 <li>
@@ -221,6 +224,12 @@ document.write("Last Published: " + document.lastModified);
 <a href="#ch_reconfig_dyn">Dynamic Reconfiguration of the ZooKeeper 
Ensemble</a>
 <ul class="minitoc">
 <li>
+<a href="#ch_reconfig_api">API</a>
+</li>
+<li>
+<a href="#sc_reconfig_access_control">Security</a>
+</li>
+<li>
 <a href="#sc_reconfig_retrieving">Retrieving the current dynamic 
configuration</a>
 </li>
 <li>
@@ -299,6 +308,12 @@ document.write("Last Published: " + document.lastModified);
 </dd>
     
 </dl>
+<p>
+<strong>Note:</strong> Starting with 3.5.3, the dynamic reconfiguration
+      feature is disabled by default, and has to be explicitly turned on via
+      <a href="zookeeperAdmin.html#sc_advancedConfiguration">
+        reconfigEnabled </a> configuration option.
+    </p>
 </div>
   
 <a name="ch_reconfig_format"></a>
@@ -388,6 +403,26 @@ document.write("Last Published: " + document.lastModified);
 <p>Since running the Distributed mode allows more flexibility, we
         recommend setting the flag to <em>false</em>. We expect that
         the legacy Standalone mode will be deprecated in the future.</p>
+<a name="sc_reconfig_reconfigEnabled"></a>
+<h3 class="h4">The reconfigEnabled flag</h3>
+<p>Starting with 3.5.0 and prior to 3.5.3, there is no way to disable
+        dynamic reconfiguration feature. We would like to offer the option of
+        disabling reconfiguration feature because with reconfiguration enabled,
+        we have a security concern that a malicious actor can make arbitrary 
changes
+        to the configuration of a ZooKeeper ensemble, including adding a 
compromised
+        server to the ensemble. We prefer to leave to the discretion of the 
user to
+        decide whether to enable it or not and make sure that the appropriate 
security
+        measure are in place. So in 3.5.3 the <a 
href="zookeeperAdmin.html#sc_advancedConfiguration">
+          reconfigEnabled </a> configuration option is introduced
+        such that the reconfiguration feature can be completely disabled and 
any attempts
+        to reconfigure a cluster through reconfig API with or without 
authentication
+        will fail by default, unless <strong>reconfigEnabled</strong> is set to
+        <strong>true</strong>.
+      </p>
+<p>To set the option to true, the configuration file (zoo.cfg) should 
contain:</p>
+<p>
+<span class="codefrag computeroutput">reconfigEnabled=true</span>
+</p>
 <a name="sc_reconfig_file"></a>
 <h3 class="h4">Dynamic configuration file</h3>
 <p>Starting with 3.5.0 we're distinguishing between dynamic
@@ -526,6 +561,7 @@ server.3=125.23.63.25:2782:2785:participant</pre>
       clientPort/clientPortAddress statements (although if you specify client
       ports in the new format, these statements are now redundant).</p>
 </div>
+
   
 <a name="ch_reconfig_dyn"></a>
 <h2 class="h3">Dynamic Reconfiguration of the ZooKeeper Ensemble</h2>
@@ -536,6 +572,114 @@ server.3=125.23.63.25:2782:2785:participant</pre>
       here using the Java CLI, but note that you can similarly use the C CLI or
       invoke the commands directly from a program just like any other ZooKeeper
       command.</p>
+<a name="ch_reconfig_api"></a>
+<h3 class="h4">API</h3>
+<p>There are two sets of APIs for both Java and C client.
+      </p>
+<dl>
+        
+<dt>
+<term>
+<strong>Reconfiguration API</strong>
+</term>
+</dt>
+<dd>
+<p>Reconfiguration API is used to reconfigure the ZooKeeper cluster.
+              Starting with 3.5.3, reconfiguration Java APIs are moved into 
ZooKeeperAdmin class
+              from ZooKeeper class, and use of this API requires ACL setup and 
user
+              authentication (see <a 
href="#sc_reconfig_access_control">Security</a> for more information.).
+            </p>
+</dd>
+
+        
+<dt>
+<term>
+<strong>Get Configuration API</strong>
+</term>
+</dt>
+<dd>
+<p>Get configuration APIs are used to retrieve ZooKeeper cluster configuration 
information
+              stored in /zookeeper/config znode. Use of this API does not 
require specific setup or authentication,
+            because /zookeeper/config is readable to any users.</p>
+</dd>
+      
+</dl>
+<a name="sc_reconfig_access_control"></a>
+<h3 class="h4">Security</h3>
+<p>Prior to <strong>3.5.3</strong>, there is no enforced security mechanism
+        over reconfig so any ZooKeeper clients that can connect to ZooKeeper 
server ensemble
+        will have the ability to change the state of a ZooKeeper cluster via 
reconfig.
+        It is thus possible for a malicious client to add compromised server 
to an ensemble,
+        e.g., add a compromised server, or remove legitimate servers.
+        Cases like these could be security vulnerabilities on a case by case 
basis.
+      </p>
+<p>To address this security concern, we introduced access control over reconfig
+        starting from <strong>3.5.3</strong> such that only a specific set of 
users
+        can use reconfig commands or APIs, and these users need be configured 
explicitly. In addition,
+        the setup of ZooKeeper cluster must enable authentication so ZooKeeper 
clients can be authenticated.
+      </p>
+<p>
+        We also provides an escape hatch for users who operate and interact 
with a ZooKeeper ensemble in a secured
+        environment (i.e. behind company firewall). For those users who want 
to use reconfiguration feature but
+        don't want the overhead of configuring an explicit list of authorized 
user for reconfig access checks,
+        they can set <a 
href="zookeeperAdmin.html#sc_authOptions">"skipACL"</a> to "yes" which will
+        skip ACL check and allow any user to reconfigure cluster.
+      </p>
+<p>
+        Overall, ZooKeeper provides flexible configuration options for the 
reconfigure feature
+        that allow a user to choose based on user's security requirement.
+        We leave to the discretion of the user to decide appropriate security 
measure are in place.
+      </p>
+<dl>
+        
+<dt>
+<term>
+<strong>Access Control</strong>
+</term>
+</dt>
+<dd>
+<p>The dynamic configuration is stored in a special znode
+              ZooDefs.CONFIG_NODE = /zookeeper/config. This node by default is 
read only
+              for all users, except super user and users that's explicitly 
configured for write
+              access.
+            </p>
+<p>Clients that need to use reconfig commands or reconfig API should be 
configured as users
+              that have write access to CONFIG_NODE. By default, only the 
super user has full control including
+              write access to CONFIG_NODE. Additional users can be granted 
write access through superuser
+              by setting an ACL that has write permission associated with 
specified user.
+            </p>
+<p>A few examples of how to setup ACLs and use reconfiguration API with 
authentication can be found in
+              ReconfigExceptionTest.java and TestReconfigServer.cc.</p>
+</dd>
+
+        
+<dt>
+<term>
+<strong>Authentication</strong>
+</term>
+</dt>
+<dd>
+<p>Authentication of users is orthogonal to the access control and is 
delegated to
+              existing authentication mechanism supported by ZooKeeper's 
pluggable authentication schemes.
+              See <a 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/Zookeeper+and+SASL";>ZooKeeper
 and SASL</a> for more details on this topic.
+            </p>
+</dd>
+
+        
+<dt>
+<term>
+<strong>Disable ACL check</strong>
+</term>
+</dt>
+<dd>
+<p>
+              ZooKeeper supports <a 
href="zookeeperAdmin.html#sc_authOptions">"skipACL"</a> option such that ACL
+              check will be completely skipped, if skipACL is set to "yes". In 
such cases any unauthenticated
+              users can use reconfig API.
+            </p>
+</dd>
+      
+</dl>
 <a name="sc_reconfig_retrieving"></a>
 <h3 class="h4">Retrieving the current dynamic configuration</h3>
 <p>The dynamic configuration is stored in a special znode

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperReconfig.pdf
----------------------------------------------------------------------
diff --git a/docs/zookeeperReconfig.pdf b/docs/zookeeperReconfig.pdf
index 66704b9..50a50e2 100644
Binary files a/docs/zookeeperReconfig.pdf and b/docs/zookeeperReconfig.pdf 
differ

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperStarted.html
----------------------------------------------------------------------
diff --git a/docs/zookeeperStarted.html b/docs/zookeeperStarted.html
index a2af2cf..63c2b1a 100644
--- a/docs/zookeeperStarted.html
+++ b/docs/zookeeperStarted.html
@@ -67,7 +67,7 @@
 <a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
 </li>
 <li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
+<a class="selected" href="index.html">ZooKeeper 3.6 Documentation</a>
 </li>
 </ul>
 <!--+

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperStarted.pdf
----------------------------------------------------------------------
diff --git a/docs/zookeeperStarted.pdf b/docs/zookeeperStarted.pdf
index 879df11..0e2f63f 100644
Binary files a/docs/zookeeperStarted.pdf and b/docs/zookeeperStarted.pdf differ

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperTutorial.html
----------------------------------------------------------------------
diff --git a/docs/zookeeperTutorial.html b/docs/zookeeperTutorial.html
index f689741..5c19de3 100644
--- a/docs/zookeeperTutorial.html
+++ b/docs/zookeeperTutorial.html
@@ -67,7 +67,7 @@
 <a class="unselected" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/";>Wiki</a>
 </li>
 <li class="current">
-<a class="selected" href="index.html">ZooKeeper 3.4 Documentation</a>
+<a class="selected" href="index.html">ZooKeeper 3.6 Documentation</a>
 </li>
 </ul>
 <!--+

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/docs/zookeeperTutorial.pdf
----------------------------------------------------------------------
diff --git a/docs/zookeeperTutorial.pdf b/docs/zookeeperTutorial.pdf
index c8009f7..3cdd8b1 100644
Binary files a/docs/zookeeperTutorial.pdf and b/docs/zookeeperTutorial.pdf 
differ

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/cd0e3238/src/docs/src/documentation/content/xdocs/tabs.xml
----------------------------------------------------------------------
diff --git a/src/docs/src/documentation/content/xdocs/tabs.xml 
b/src/docs/src/documentation/content/xdocs/tabs.xml
index aef7e59..af6c447 100644
--- a/src/docs/src/documentation/content/xdocs/tabs.xml
+++ b/src/docs/src/documentation/content/xdocs/tabs.xml
@@ -31,6 +31,6 @@
 
   <tab label="Project" href="http://zookeeper.apache.org/"; />
   <tab label="Wiki" 
href="https://cwiki.apache.org/confluence/display/ZOOKEEPER/"; />
-  <tab label="ZooKeeper 3.4 Documentation" dir="" />
+  <tab label="ZooKeeper 3.6 Documentation" dir="" />
   
 </tabs>

Reply via email to