> On Sept. 20, 2016, 10:24 p.m., Michael Han wrote:
> > src/java/main/org/apache/zookeeper/server/quorum/auth/SaslQuorumAuthServer.java,
> >  line 77
> > <https://reviews.apache.org/r/47354/diff/9/?file=1498971#file1498971line77>
> >
> >     How about test if 'quorumRequireSasl' flag is set or not, and if it's 
> > not set, immediately return here? By doing that we can remove a couple of 
> > 'if (quorumRequireSasl) {' conditions in the subsequent code.

Please refer QuorumAuthUpgradeTest.java, there is a step while upgrade. To 
support this, we need to keep the 'if (quorumRequireSasl)' inside another 'if 
(!QuorumAuth.nextPacketIsAuth(din))'. We have couple of test cases verifying 
this behavior. Please refer, QuorumAuthUpgradeTest#testRollingUpgrade, 
QuorumCnxManagerTest.java test cases. Please let me know if I miss any 
specific, I'm happy to include.

QuorumAuthUpgradeTest.java
 * step-2) Stop the server one by one and change the flags and restart the 
server.
 * quorum.auth.enableSasl=true, quorum.auth.learnerRequireSasl=true and 
quorum.auth.serverRequireSasl=false
 * Ensure that all the servers should complete this step. Now, move to next 
step.


> On Sept. 20, 2016, 10:24 p.m., Michael Han wrote:
> > src/java/main/org/apache/zookeeper/server/quorum/auth/SaslQuorumAuthLearner.java,
> >  line 174
> > <https://reviews.apache.org/r/47354/diff/9/?file=1498970#file1498970line174>
> >
> >     The implementation of this is an almost identical copy of 
> > ZooKeeperSaslClient.createSaslToken (minors one logging changes). I suggest 
> > we add a TODO here about consolidating the createSaslToken implementation 
> > between ZooKeeperSaslClient and here , so we can refactor the code after 
> > the patch landed.

Agreed, I will add a TODO.


> On Sept. 20, 2016, 10:24 p.m., Michael Han wrote:
> > src/java/main/org/apache/zookeeper/server/quorum/auth/SaslQuorumAuthLearner.java,
> >  line 131
> > <https://reviews.apache.org/r/47354/diff/9/?file=1498970#file1498970line131>
> >
> >     This 'if' condition can be removed, because when we can't reach here 
> > unless the auth process finished successfully, which means we don't hit any 
> > exceptions plus the sc.isComplete would evaluate to true (otherwise we 
> > would not get out of the while loop.).

Good catch. Please refer 
https://docs.oracle.com/javase/7/docs/api/javax/security/sasl/SaslClient.html 
javadoc. In example, they have an additional if check after the looping. I 
think I need to include additional check for ERROR after the loop, right? like 
below,

           if (sc.isComplete()) {
                if(qpStatus == QuorumAuth.Status.SUCCESS)
                     LOG.info("Successfully completed the authentication using 
SASL. server addr: {}, status: {}",
                        sock.getRemoteSocketAddress(), qpStatus);
                else {
                    throw new SaslException(
                            "Authentication failed against server addr: "
                                    + sock.getRemoteSocketAddress() + ", 
qpStatus: " + qpStatus);
                }
            }


> On Sept. 20, 2016, 10:24 p.m., Michael Han wrote:
> > src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java, line 106
> > <https://reviews.apache.org/r/47354/diff/9/?file=1498961#file1498961line106>
> >
> >     Should we move both ThreadPoolExecutor and inprogressConnections into 
> > QuorumCnxManager? Both are implementation details around managing 
> > connections, and QuorumPeer does not need to know about these details. 
> > Abstract such details seems exactly what QuorumCnxManager was designed for.

Agreed, I will change it.


- Rakesh


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/47354/#review149705
-----------------------------------------------------------


On Sept. 15, 2016, 4:48 p.m., Rakesh R wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/47354/
> -----------------------------------------------------------
> 
> (Updated Sept. 15, 2016, 4:48 p.m.)
> 
> 
> Review request for zookeeper, fpj, Ivan Kelly, Patrick Hunt, and Raul 
> Gutierrez Segales.
> 
> 
> Bugs: ZOOKEEPER-1045
>     https://issues.apache.org/jira/browse/ZOOKEEPER-1045
> 
> 
> Repository: zookeeper-git
> 
> 
> Description
> -------
> 
> Quorum mutual authentication using SASL mechanism - Digest/Kerberos
> 
> 
> Diffs
> -----
> 
>   build.xml ee6834c 
>   ivy.xml 95b0e5a 
>   src/java/main/org/apache/zookeeper/Login.java aaa220c 
>   src/java/main/org/apache/zookeeper/SaslClientCallbackHandler.java 
> PRE-CREATION 
>   src/java/main/org/apache/zookeeper/client/ZooKeeperSaslClient.java 21ef0fa 
>   src/java/main/org/apache/zookeeper/server/ZooKeeperSaslServer.java 71870ce 
>   
> src/java/main/org/apache/zookeeper/server/auth/SaslServerCallbackHandler.java 
> 2fbd6ed 
>   src/java/main/org/apache/zookeeper/server/quorum/Leader.java c83d352 
>   src/java/main/org/apache/zookeeper/server/quorum/Learner.java 647b8a2 
>   src/java/main/org/apache/zookeeper/server/quorum/LearnerHandler.java 
> 8a748c7 
>   src/java/main/org/apache/zookeeper/server/quorum/QuorumCnxManager.java 
> 20e5f16 
>   src/java/main/org/apache/zookeeper/server/quorum/QuorumPeer.java 2f0f21b 
>   src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerConfig.java 
> 0924ef6 
>   src/java/main/org/apache/zookeeper/server/quorum/QuorumPeerMain.java 
> e9c8007 
>   
> src/java/main/org/apache/zookeeper/server/quorum/auth/NullQuorumAuthLearner.java
>  PRE-CREATION 
>   
> src/java/main/org/apache/zookeeper/server/quorum/auth/NullQuorumAuthServer.java
>  PRE-CREATION 
>   src/java/main/org/apache/zookeeper/server/quorum/auth/QuorumAuth.java 
> PRE-CREATION 
>   
> src/java/main/org/apache/zookeeper/server/quorum/auth/QuorumAuthLearner.java 
> PRE-CREATION 
>   src/java/main/org/apache/zookeeper/server/quorum/auth/QuorumAuthServer.java 
> PRE-CREATION 
>   src/java/main/org/apache/zookeeper/server/quorum/auth/README.md 
> PRE-CREATION 
>   
> src/java/main/org/apache/zookeeper/server/quorum/auth/SaslQuorumAuthLearner.java
>  PRE-CREATION 
>   
> src/java/main/org/apache/zookeeper/server/quorum/auth/SaslQuorumAuthServer.java
>  PRE-CREATION 
>   
> src/java/main/org/apache/zookeeper/server/quorum/auth/SaslQuorumServerCallbackHandler.java
>  PRE-CREATION 
>   src/java/main/org/apache/zookeeper/util/SecurityUtils.java PRE-CREATION 
>   src/java/test/data/kerberos/minikdc-krb5.conf PRE-CREATION 
>   src/java/test/data/kerberos/minikdc.ldiff PRE-CREATION 
>   src/java/test/org/apache/zookeeper/server/quorum/CnxManagerTest.java 
> 8db7fa8 
>   
> src/java/test/org/apache/zookeeper/server/quorum/FLEBackwardElectionRoundTest.java
>  c1259d1 
>   src/java/test/org/apache/zookeeper/server/quorum/FLECompatibilityTest.java 
> 72e4fc9 
>   src/java/test/org/apache/zookeeper/server/quorum/FLEDontCareTest.java 
> a4c0cb0 
>   src/java/test/org/apache/zookeeper/server/quorum/FLELostMessageTest.java 
> 39a53ca 
>   src/java/test/org/apache/zookeeper/server/quorum/LearnerTest.java 2ae57ce 
>   src/java/test/org/apache/zookeeper/server/quorum/QuorumCnxManagerTest.java 
> PRE-CREATION 
>   src/java/test/org/apache/zookeeper/server/quorum/QuorumPeerTestBase.java 
> 85817b2 
>   src/java/test/org/apache/zookeeper/server/quorum/Zab1_0Test.java ab8ce42 
>   
> src/java/test/org/apache/zookeeper/server/quorum/auth/KerberosSecurityTestcase.java
>  PRE-CREATION 
>   
> src/java/test/org/apache/zookeeper/server/quorum/auth/KerberosTestUtils.java 
> PRE-CREATION 
>   src/java/test/org/apache/zookeeper/server/quorum/auth/MiniKdc.java 
> PRE-CREATION 
>   src/java/test/org/apache/zookeeper/server/quorum/auth/MiniKdcTest.java 
> PRE-CREATION 
>   
> src/java/test/org/apache/zookeeper/server/quorum/auth/QuorumAuthTestBase.java 
> PRE-CREATION 
>   
> src/java/test/org/apache/zookeeper/server/quorum/auth/QuorumAuthUpgradeTest.java
>  PRE-CREATION 
>   
> src/java/test/org/apache/zookeeper/server/quorum/auth/QuorumDigestAuthTest.java
>  PRE-CREATION 
>   
> src/java/test/org/apache/zookeeper/server/quorum/auth/QuorumKerberosAuthTest.java
>  PRE-CREATION 
>   
> src/java/test/org/apache/zookeeper/server/quorum/auth/QuorumKerberosHostBasedAuthTest.java
>  PRE-CREATION 
>   src/java/test/org/apache/zookeeper/test/FLEPredicateTest.java 8088505 
>   src/zookeeper.jute 6521e54 
> 
> Diff: https://reviews.apache.org/r/47354/diff/
> 
> 
> Testing
> -------
> 
> Added unit test cases to verify the changes.
> 
> 
> Thanks,
> 
> Rakesh R
> 
>

Reply via email to