stoty commented on code in PR #6507:
URL: https://github.com/apache/hbase/pull/6507#discussion_r1877458275


##########
hbase-asyncfs/src/main/java/org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.java:
##########
@@ -502,12 +507,17 @@ private void checkSaslComplete() throws IOException {
       Set<String> requestedQop =
         ImmutableSet.copyOf(Arrays.asList(saslProps.get(Sasl.QOP).split(",")));
       String negotiatedQop = getNegotiatedQop();
+      // Treat null negotiated QOP as "auth" for the purpose of verification
+      // Code elsewhere does the same implicitly
+      if (negotiatedQop == null) {
+        negotiatedQop = "auth";
+      }

Review Comment:
   That's not true.
   
   The Hadoop code always requests some kind of QOP, at least "auth".
   
   SASL mechanisms that don't support QOP at all, like SCRAM, will ignore the 
requested QOP and always return null negotiated qop.
   
   Without this if, we could not use SCRAM at all, as ["auth"] does not contain 
null.
   
   The rest of the code does not check the negotiated QOP against the requested 
one, so a null check is fine there.
   
   This is the simplest way I can think of to handle non-QOP capable SASL 
mechanisms.
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to