[ISSUE #8046] Fix authentication context build for no extFields (#8102)

This commit is contained in:
dingshuangxi888
2025-07-19 18:17:46 +08:00
committed by RongtongJin
parent fc6752f395
commit ca6b6856ea
2 changed files with 7 additions and 3 deletions
@@ -98,12 +98,12 @@ public class DefaultAuthenticationContextBuilder implements AuthenticationContex
@Override
public DefaultAuthenticationContext build(ChannelHandlerContext context, RemotingCommand request) {
HashMap<String, String> fields = request.getExtFields();
if (MapUtils.isEmpty(fields)) {
throw new AuthenticationException("authentication field is null.");
}
DefaultAuthenticationContext result = new DefaultAuthenticationContext();
result.setChannelId(context.channel().id().asLongText());
result.setRpcCode(String.valueOf(request.getCode()));
if (MapUtils.isEmpty(fields)) {
return result;
}
if (!fields.containsKey(SessionCredentials.ACCESS_KEY)) {
return result;
}
@@ -40,6 +40,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.acl.common.AclException;
@@ -160,6 +161,9 @@ public class DefaultAuthorizationContextBuilder implements AuthorizationContextB
List<DefaultAuthorizationContext> result = new ArrayList<>();
try {
HashMap<String, String> fields = command.getExtFields();
if (MapUtils.isEmpty(fields)) {
return result;
}
Subject subject = null;
if (fields.containsKey(SessionCredentials.ACCESS_KEY)) {
subject = User.of(fields.get(SessionCredentials.ACCESS_KEY));