diff --git a/src/main/java/org/akhq/modules/HeaderAuthenticationFetcher.java b/src/main/java/org/akhq/modules/HeaderAuthenticationFetcher.java index 04e737392..c4250777e 100644 --- a/src/main/java/org/akhq/modules/HeaderAuthenticationFetcher.java +++ b/src/main/java/org/akhq/modules/HeaderAuthenticationFetcher.java @@ -19,6 +19,7 @@ import java.net.InetSocketAddress; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.regex.Pattern; @@ -86,17 +87,19 @@ public Publisher fetchAuthentication(HttpRequest request) { log.debug("One or more of the IP patterns matched the host address [{}]. Continuing request processing.", hostAddress); } - Optional groupHeaders = headerAuth.getGroupsHeader() != null ? - request.getHeaders().get(headerAuth.getGroupsHeader(), String.class) : - Optional.empty(); + List groupsHeader = headerAuth.getGroupsHeader() != null ? + request.getHeaders().getAll(headerAuth.getGroupsHeader()) : + Collections.emptyList(); return Flowable .fromCallable(() -> { - List groups = groupHeaders + List groups = groupsHeader .stream() .flatMap(s -> Arrays.stream(s.split(headerAuth.getGroupsHeaderSeparator()))) .collect(Collectors.toList()); + log.debug("Got groups [{}] from groupsHeader [{}] and separator [{}]", groups, groupsHeader, headerAuth.getGroupsHeaderSeparator()); + ClaimRequest claim = ClaimRequest.builder() .providerType(ClaimProviderType.HEADER)