rls: fix wrong server field in lookup request again

The previous fix #7878 didn't work because the server field is expected to be full hostname (without port number). Need strip the port part from the authority.
diff --git a/rls/src/main/java/io/grpc/rls/CachingRlsLbClient.java b/rls/src/main/java/io/grpc/rls/CachingRlsLbClient.java
index 492c7f1..69e3bb2 100644
--- a/rls/src/main/java/io/grpc/rls/CachingRlsLbClient.java
+++ b/rls/src/main/java/io/grpc/rls/CachingRlsLbClient.java
@@ -63,6 +63,8 @@
 import io.grpc.rls.Throttler.ThrottledException;
 import io.grpc.stub.StreamObserver;
 import io.grpc.util.ForwardingLoadBalancerHelper;
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.ScheduledExecutorService;
@@ -137,8 +139,20 @@
             builder.evictionListener,
             scheduledExecutorService,
             timeProvider);
+    logger = helper.getChannelLogger();
+    String serverHost = null;
+    try {
+      serverHost = new URI(null, helper.getAuthority(), null, null, null).getHost();
+    } catch (URISyntaxException ignore) {
+      // handled by the following null check
+    }
+    if (serverHost == null) {
+      logger.log(
+          ChannelLogLevel.DEBUG, "Can not get hostname from authority: {0}", helper.getAuthority());
+      serverHost = helper.getAuthority();
+    }
     RlsRequestFactory requestFactory = new RlsRequestFactory(
-        lbPolicyConfig.getRouteLookupConfig(), helper.getAuthority());
+        lbPolicyConfig.getRouteLookupConfig(), serverHost);
     rlsPicker = new RlsPicker(requestFactory);
     // It is safe to use helper.getUnsafeChannelCredentials() because the client authenticates the
     // RLS server using the same authority as the backends, even though the RLS server’s addresses
@@ -147,7 +161,6 @@
     ManagedChannelBuilder<?> rlsChannelBuilder = helper.createResolvingOobChannelBuilder(
         rlsConfig.getLookupService(), helper.getUnsafeChannelCredentials());
     rlsChannelBuilder.overrideAuthority(helper.getAuthority());
-    logger = helper.getChannelLogger();
     if (enableOobChannelDirectPath) {
       logger.log(
           ChannelLogLevel.DEBUG,
diff --git a/rls/src/test/java/io/grpc/rls/CachingRlsLbClientTest.java b/rls/src/test/java/io/grpc/rls/CachingRlsLbClientTest.java
index 9ad4bc1..7a41887 100644
--- a/rls/src/test/java/io/grpc/rls/CachingRlsLbClientTest.java
+++ b/rls/src/test/java/io/grpc/rls/CachingRlsLbClientTest.java
@@ -583,7 +583,7 @@
 
     @Override
     public String getAuthority() {
-      return "bigtable.googleapis.com";
+      return "bigtable.googleapis.com:443";
     }
 
     @Override