This is an automated email from the ASF dual-hosted git repository.

junegunn pushed a commit to branch HBASE-29144
in repository https://gitbox.apache.org/repos/asf/hbase.git

commit ecc9c1c204855d99fdea846629c994602c9eb4fc
Author: Junegunn Choi <[email protected]>
AuthorDate: Mon Jan 5 15:48:26 2026 +0900

    HBASE-29144 Fall back to legacy version of the method
---
 .../main/java/org/apache/hadoop/hbase/ipc/RpcConnection.java  |  4 ++++
 .../security/provider/SaslClientAuthenticationProviders.java  | 11 ++++++++++-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcConnection.java 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcConnection.java
index 06204046820..f88b68a2938 100644
--- a/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcConnection.java
+++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/RpcConnection.java
@@ -139,6 +139,10 @@ abstract class RpcConnection {
     Pair<SaslClientAuthenticationProvider, Token<? extends TokenIdentifier>> 
pair;
     if (useSasl && securityInfo != null) {
       pair = providers.selectProvider(conf, clusterId, ticket);
+      if (pair == null) {
+        LOG.trace("Falling back to selectProvider using the cached 
configuration");
+        pair = providers.selectProvider(clusterId, ticket);
+      }
       if (pair == null) {
         if (LOG.isTraceEnabled()) {
           LOG.trace("Found no valid authentication method from providers={} 
with tokens={}",
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProviders.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProviders.java
index 6c220e3bd0b..48863cb5625 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProviders.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/security/provider/SaslClientAuthenticationProviders.java
@@ -202,13 +202,22 @@ public final class SaslClientAuthenticationProviders {
 
   /**
    * Chooses the best authentication provider and corresponding token given 
the HBase cluster
-   * identifier and the user.
+   * identifier, the user, and the supplied {@link Configuration}.
    */
   public Pair<SaslClientAuthenticationProvider, Token<? extends 
TokenIdentifier>>
     selectProvider(Configuration conf, String clusterId, User clientUser) {
     return selector.selectProvider(conf, clusterId, clientUser);
   }
 
+  /**
+   * Chooses the best authentication provider and corresponding token given 
the HBase cluster
+   * identifier and the user. This version was kept for backward compatibility.
+   */
+  public Pair<SaslClientAuthenticationProvider, Token<? extends 
TokenIdentifier>>
+    selectProvider(String clusterId, User clientUser) {
+    return selector.selectProvider(clusterId, clientUser);
+  }
+
   @Override
   public String toString() {
     return providers.stream().map((p) -> p.getClass().getName())

Reply via email to