@@ -704,8 +704,11 @@ private NoopFlow onRequestEnded(RequestContext ctx_, IGSpanInfo spanInfo) {
704704 traceSeg .setDataTop ("appsec" , wrapper );
705705
706706 // Report collected request and response headers based on allow list
707- writeRequestHeaders (traceSeg , REQUEST_HEADERS_ALLOW_LIST , ctx .getRequestHeaders ());
708- writeResponseHeaders (traceSeg , RESPONSE_HEADERS_ALLOW_LIST , ctx .getResponseHeaders ());
707+ boolean collectAll = Config .get ().isAppSecCollectAllHeaders ();
708+ writeRequestHeaders (
709+ traceSeg , REQUEST_HEADERS_ALLOW_LIST , ctx .getRequestHeaders (), collectAll );
710+ writeResponseHeaders (
711+ traceSeg , RESPONSE_HEADERS_ALLOW_LIST , ctx .getResponseHeaders (), collectAll );
709712
710713 // Report collected stack traces
711714 List <StackTraceEvent > stackTraces = ctx .getStackTraces ();
@@ -715,10 +718,11 @@ private NoopFlow onRequestEnded(RequestContext ctx_, IGSpanInfo spanInfo) {
715718
716719 } else if (hasUserInfo (traceSeg )) {
717720 // Report all collected request headers on user tracking event
718- writeRequestHeaders (traceSeg , REQUEST_HEADERS_ALLOW_LIST , ctx .getRequestHeaders ());
721+ writeRequestHeaders (traceSeg , REQUEST_HEADERS_ALLOW_LIST , ctx .getRequestHeaders (), false );
719722 } else {
720723 // Report minimum set of collected request headers
721- writeRequestHeaders (traceSeg , DEFAULT_REQUEST_HEADERS_ALLOW_LIST , ctx .getRequestHeaders ());
724+ writeRequestHeaders (
725+ traceSeg , DEFAULT_REQUEST_HEADERS_ALLOW_LIST , ctx .getRequestHeaders (), false );
722726 }
723727 // If extracted any derivatives - commit them
724728 if (!ctx .commitDerivatives (traceSeg )) {
@@ -832,29 +836,33 @@ private static boolean hasUserCollectionEvent(final TraceSegment traceSeg) {
832836 private static void writeRequestHeaders (
833837 final TraceSegment traceSeg ,
834838 final Set <String > allowed ,
835- final Map <String , List <String >> headers ) {
836- writeHeaders (traceSeg , "http.request.headers." , "_dd.appsec.request." , allowed , headers );
839+ final Map <String , List <String >> headers ,
840+ final boolean collectAll ) {
841+ writeHeaders (
842+ traceSeg , "http.request.headers." , "_dd.appsec.request." , allowed , headers , collectAll );
837843 }
838844
839845 private static void writeResponseHeaders (
840846 final TraceSegment traceSeg ,
841847 final Set <String > allowed ,
842- final Map <String , List <String >> headers ) {
843- writeHeaders (traceSeg , "http.response.headers." , "_dd.appsec.response." , allowed , headers );
848+ final Map <String , List <String >> headers ,
849+ final boolean collectAll ) {
850+ writeHeaders (
851+ traceSeg , "http.response.headers." , "_dd.appsec.response." , allowed , headers , collectAll );
844852 }
845853
846854 private static void writeHeaders (
847855 final TraceSegment traceSeg ,
848856 final String prefix ,
849857 final String discardedPrefix ,
850858 final Set <String > allowed ,
851- final Map <String , List <String >> headers ) {
859+ final Map <String , List <String >> headers ,
860+ final boolean collectAll ) {
852861
853862 if (headers == null || headers .isEmpty ()) {
854863 return ;
855864 }
856865
857- final boolean collectAll = Config .get ().isAppSecCollectAllHeaders ();
858866 final int headerLimit = Config .get ().getAppsecMaxCollectedHeaders ();
859867 final Set <String > added = new HashSet <>();
860868 int excluded = 0 ;
0 commit comments