[ 
https://issues.apache.org/jira/browse/HADOOP-19958?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18103587#comment-18103587
 ] 

ASF GitHub Bot commented on HADOOP-19958:
-----------------------------------------

Copilot commented on code in PR #8669:
URL: https://github.com/apache/hadoop/pull/8669#discussion_r3755728581


##########
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetUtils.java:
##########
@@ -763,10 +766,29 @@ public static String getHostname() {
    * Compose a "host:port" string from the address.
    *
    * @param addr address.
-   * @return hort port string.
+   * @return host port string.
    */
   public static String getHostPortString(InetSocketAddress addr) {
-    return addr.getHostName() + ":" + addr.getPort();
+    return getHostPortString(addr.getHostName(), addr.getPort());
+  }
+
+  /**
+   * Compose a "host:port" string, bracketing IPv6 literals.
+   *
+   * @param host host name or IP address.
+   * @param port port number.
+   * @return host port string.
+   */
+  public static String getHostPortString(String host, int port) {
+    String normalizedHost = host;
+    if (normalizedHost != null && normalizedHost.startsWith("[")
+        && normalizedHost.endsWith("]")) {
+      normalizedHost = normalizedHost.substring(1, normalizedHost.length() - 
1);
+    }
+    if (normalizedHost != null && normalizedHost.contains(":")) {
+      return "[" + normalizedHost + "]:" + port;
+    }
+    return normalizedHost + ":" + port;

Review Comment:
   NetUtils.getHostPortString(host, port) now deliberately emits bracketed IPv6 
literals (e.g., "[::1]:123"), but NetUtils.getPortFromHostPortString still 
splits on ":" and rejects anything except exactly one colon. This makes the two 
helpers inconsistent and will fail for any caller that needs to extract the 
port from a bracketed IPv6 authority.
   
   Update getPortFromHostPortString() to accept both "<host>:<port>" and 
"[<ipv6>]:<port>" (and explicitly reject ambiguous unbracketed IPv6).





> Support IPv6 delegation token service addresses
> -----------------------------------------------
>
>                 Key: HADOOP-19958
>                 URL: https://issues.apache.org/jira/browse/HADOOP-19958
>             Project: Hadoop Common
>          Issue Type: Sub-task
>            Reporter: Siyao Meng
>            Priority: Major
>              Labels: pull-request-available
>
> Hadoop formats delegation token services as host:port. This format is 
> ambiguous for IPv6 literals. Update NetUtils and SecurityUtil to use 
> bracketed IPv6 authorities. Verify round trips with 
> hadoop.security.token.service.use_ip set to true and false. Reject ambiguous 
> unbracketed IPv6 authorities.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to