[ISSUE #8259] fix parse ipv6 address in haproxy (#8260)

* fix parse ipv6 from address in haproxy

* more
This commit is contained in:
yuz10
2025-07-19 18:17:50 +08:00
committed by RongtongJin
parent 224780ba75
commit 1b5f6553a8
2 changed files with 6 additions and 6 deletions
@@ -171,7 +171,7 @@ public class DefaultAuthorizationContextBuilder implements AuthorizationContextB
subject = User.of(fields.get(SessionCredentials.ACCESS_KEY));
}
String remoteAddr = RemotingHelper.parseChannelRemoteAddr(context.channel());
String sourceIp = StringUtils.substringBefore(remoteAddr, CommonConstants.COLON);
String sourceIp = StringUtils.substringBeforeLast(remoteAddr, CommonConstants.COLON);
Resource topic;
Resource group;
@@ -394,7 +394,7 @@ public class DefaultAuthorizationContextBuilder implements AuthorizationContextB
subject = User.of(metadata.get(GrpcConstants.AUTHORIZATION_AK));
}
Resource resource = Resource.ofTopic(topic.getName());
String sourceIp = StringUtils.substringBefore(metadata.get(GrpcConstants.REMOTE_ADDRESS), CommonConstants.COLON);
String sourceIp = StringUtils.substringBeforeLast(metadata.get(GrpcConstants.REMOTE_ADDRESS), CommonConstants.COLON);
DefaultAuthorizationContext context = DefaultAuthorizationContext.of(subject, resource, Arrays.asList(Action.PUB, Action.SUB), sourceIp);
return Collections.singletonList(context);
}
@@ -437,7 +437,7 @@ public class DefaultAuthorizationContextBuilder implements AuthorizationContextB
subject = User.of(metadata.get(GrpcConstants.AUTHORIZATION_AK));
}
Resource resource = Resource.ofTopic(topic.getName());
String sourceIp = StringUtils.substringBefore(metadata.get(GrpcConstants.REMOTE_ADDRESS), CommonConstants.COLON);
String sourceIp = StringUtils.substringBeforeLast(metadata.get(GrpcConstants.REMOTE_ADDRESS), CommonConstants.COLON);
DefaultAuthorizationContext context = DefaultAuthorizationContext.of(subject, resource, Action.PUB, sourceIp);
return Collections.singletonList(context);
}
@@ -483,7 +483,7 @@ public class DefaultAuthorizationContextBuilder implements AuthorizationContextB
if (metadata.containsKey(GrpcConstants.AUTHORIZATION_AK)) {
subject = User.of(metadata.get(GrpcConstants.AUTHORIZATION_AK));
}
String sourceIp = StringUtils.substringBefore(metadata.get(GrpcConstants.REMOTE_ADDRESS), CommonConstants.COLON);
String sourceIp = StringUtils.substringBeforeLast(metadata.get(GrpcConstants.REMOTE_ADDRESS), CommonConstants.COLON);
result.add(DefaultAuthorizationContext.of(subject, resource, Action.SUB, sourceIp));
return result;
}
@@ -118,11 +118,11 @@ public class HAProxyMessageForwarder extends ChannelInboundHandlerAdapter {
}
} else {
String remoteAddr = RemotingHelper.parseChannelRemoteAddr(inboundChannel);
sourceAddress = StringUtils.substringBefore(remoteAddr, CommonConstants.COLON);
sourceAddress = StringUtils.substringBeforeLast(remoteAddr, CommonConstants.COLON);
sourcePort = Integer.parseInt(StringUtils.substringAfterLast(remoteAddr, CommonConstants.COLON));
String localAddr = RemotingHelper.parseChannelLocalAddr(inboundChannel);
destinationAddress = StringUtils.substringBefore(localAddr, CommonConstants.COLON);
destinationAddress = StringUtils.substringBeforeLast(localAddr, CommonConstants.COLON);
destinationPort = Integer.parseInt(StringUtils.substringAfterLast(localAddr, CommonConstants.COLON));
}