This is an automated email from the ASF dual-hosted git repository. weichiu pushed a commit to branch branch-3.4 in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-3.4 by this push: new cc0580c6ac4 HDFS-16644. java.io.IOException Invalid token in javax.security.sasl.qop (#5962) cc0580c6ac4 is described below commit cc0580c6ac42573977074476f52009e2debe6ab9 Author: Zilong Zhu <zhuzilong2...@gmail.com> AuthorDate: Sat Mar 29 05:34:08 2025 +0800 HDFS-16644. java.io.IOException Invalid token in javax.security.sasl.qop (#5962) (cherry picked from commit 9d93d08a388badb3a7b4211f9ff4ae3b783869d7) --- .../hdfs/protocol/datatransfer/sasl/SaslDataTransferServer.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/datatransfer/sasl/SaslDataTransferServer.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/datatransfer/sasl/SaslDataTransferServer.java index 1d8928f75c7..192bfa7f810 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/datatransfer/sasl/SaslDataTransferServer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/protocol/datatransfer/sasl/SaslDataTransferServer.java @@ -31,6 +31,7 @@ import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Map; +import java.util.TreeMap; import javax.security.auth.callback.Callback; import javax.security.auth.callback.CallbackHandler; @@ -378,14 +379,16 @@ private IOStreamPair doSaslHandshake(Peer peer, OutputStream underlyingOut, SaslMessageWithHandshake message = readSaslMessageWithHandshakeSecret(in); byte[] secret = message.getSecret(); String bpid = message.getBpid(); + Map<String, String> dynamicSaslProps = new TreeMap<>(saslProps); if (secret != null || bpid != null) { // sanity check, if one is null, the other must also not be null assert(secret != null && bpid != null); String qop = new String(secret, StandardCharsets.UTF_8); saslProps.put(Sasl.QOP, qop); + dynamicSaslProps.put(Sasl.QOP, qop); } SaslParticipant sasl = SaslParticipant.createServerSaslParticipant( - saslProps, callbackHandler); + dynamicSaslProps, callbackHandler); byte[] remoteResponse = message.getPayload(); byte[] localResponse = sasl.evaluateChallengeOrResponse(remoteResponse); @@ -398,7 +401,7 @@ private IOStreamPair doSaslHandshake(Peer peer, OutputStream underlyingOut, localResponse = sasl.evaluateChallengeOrResponse(remoteResponse); // SASL handshake is complete - checkSaslComplete(sasl, saslProps); + checkSaslComplete(sasl, dynamicSaslProps); CipherOption cipherOption = null; negotiatedQOP = sasl.getNegotiatedQop(); --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org