Grizzly: capture all matching request & response headers (#6463)

This commit is contained in:
Lauri Tulmin 2022-08-11 19:24:48 +03:00 committed by GitHub
parent cd8489f09a
commit fea157fc70
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 5 deletions

View File

@ -6,9 +6,9 @@
package io.opentelemetry.javaagent.instrumentation.grizzly;
import static java.util.Collections.emptyList;
import static java.util.Collections.singletonList;
import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesGetter;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nullable;
import org.glassfish.grizzly.http.HttpRequestPacket;
@ -24,8 +24,16 @@ final class GrizzlyHttpAttributesGetter
@Override
public List<String> requestHeader(HttpRequestPacket request, String name) {
String value = request.getHeader(name);
return value == null ? emptyList() : singletonList(value);
return toHeaderList(request.getHeaders().values(name));
}
private static List<String> toHeaderList(Iterable<String> values) {
if (values.iterator().hasNext()) {
List<String> result = new ArrayList<>();
values.forEach(result::add);
return result;
}
return emptyList();
}
@Override
@ -36,8 +44,7 @@ final class GrizzlyHttpAttributesGetter
@Override
public List<String> responseHeader(
HttpRequestPacket request, HttpResponsePacket response, String name) {
String value = response.getHeader(name);
return value == null ? emptyList() : singletonList(value);
return toHeaderList(response.getHeaders().values(name));
}
@Override