@@ -268,6 +268,49 @@ func TestEngineTriggerWorkflow_RedactsSensitiveResultsInDebugLogs(t *testing.T)
268268 }
269269}
270270
271+ func TestEngineTriggerWorkflow_RedactsSensitiveResultHeadersInDebugLogs (t * testing.T ) {
272+ app := newMockApplication ()
273+ engine := NewStdEngine (app , app .Logger ())
274+ loadAllPlugins (t , engine )
275+
276+ handler := & mockWorkflowHandler {
277+ name : "mock.handler" ,
278+ handlesFor : []string {"header-result-workflow" },
279+ results : map [string ]any {
280+ "headers" : map [string ]any {
281+ "Authorization" : "Bearer jwt.secret.value" ,
282+ "Cookie" : "sid=session-secret" ,
283+ "Set-Cookie" : "sid=session-secret; HttpOnly" ,
284+ "X-API-Key" : "api-secret" ,
285+ "Content-Type" : "application/json" ,
286+ },
287+ },
288+ }
289+ engine .RegisterWorkflowHandler (handler )
290+
291+ holder := & module.PipelineResultHolder {}
292+ ctx := context .WithValue (context .Background (), module .PipelineResultContextKey , holder )
293+ if err := engine .TriggerWorkflow (ctx , "header-result-workflow" , "run" , map [string ]any {}); err != nil {
294+ t .Fatalf ("TriggerWorkflow failed: %v" , err )
295+ }
296+
297+ logText := strings .Join (app .logger .logs , "\n " )
298+ for _ , leaked := range []string {"jwt.secret.value" , "session-secret" , "api-secret" } {
299+ if strings .Contains (logText , leaked ) {
300+ t .Fatalf ("debug logs leaked sensitive header value %q:\n %s" , leaked , logText )
301+ }
302+ }
303+ if ! strings .Contains (logText , module .RedactionPlaceholder ) {
304+ t .Fatalf ("debug logs should include redaction placeholder, got:\n %s" , logText )
305+ }
306+
307+ raw := holder .Get ()
308+ headers := raw ["headers" ].(map [string ]any )
309+ if headers ["Authorization" ] != "Bearer jwt.secret.value" {
310+ t .Fatalf ("pipeline result holder must preserve raw Authorization header, got %#v" , headers ["Authorization" ])
311+ }
312+ }
313+
271314func TestEngineTriggerWorkflow_RedactsSensitiveInputInDebugLogs (t * testing.T ) {
272315 app := newMockApplication ()
273316 engine := NewStdEngine (app , app .Logger ())
0 commit comments