File tree Expand file tree Collapse file tree 3 files changed +14
-4
lines changed Expand file tree Collapse file tree 3 files changed +14
-4
lines changed Original file line number Diff line number Diff line change @@ -93,7 +93,7 @@ export const onInterceptResponse = async (
93
93
return ;
94
94
}
95
95
96
- const templateId = generateTemplateId ( request ) ;
96
+ const templateId = generateTemplateId ( request , settings . deDuplicateHeaders ) ;
97
97
if ( store . templateExists ( templateId ) ) {
98
98
return
99
99
}
@@ -124,9 +124,17 @@ export const registerTemplateEvents = (sdk: SDK) => {
124
124
} ;
125
125
126
126
127
- const generateTemplateId = ( request : Request ) : string => {
128
- // Should replace to perhaps exclude and include different parts of the request
129
- return sha256Hash ( request . getRaw ( ) . toText ( ) )
127
+ const generateTemplateId = ( request : Request , dedupeHeaders : string [ ] = [ ] ) : string => {
128
+ let body = request . getBody ( ) ?. toText ( ) ;
129
+ if ( ! body ) {
130
+ body = "" ;
131
+ }
132
+ const bodyHash = sha256Hash ( body ) ;
133
+ let dedupe = `${ request . getMethod } ~${ request . getUrl ( ) } ~${ bodyHash } ` ;
134
+ dedupeHeaders . forEach ( ( h ) => {
135
+ dedupe += `~${ request . getHeader ( h ) ?. join ( "~" ) } `
136
+ } )
137
+ return sha256Hash ( dedupe )
130
138
}
131
139
132
140
const toTemplate = ( request : Request , response : Response , templateId : string = generateTemplateId ( request ) ) : TemplateDTO => {
Original file line number Diff line number Diff line change @@ -9,6 +9,7 @@ export class SettingsStore {
9
9
this . settings = {
10
10
autoCaptureRequests : "off" ,
11
11
autoRunAnalysis : true ,
12
+ deDuplicateHeaders : [ ] ,
12
13
} ;
13
14
}
14
15
Original file line number Diff line number Diff line change @@ -43,6 +43,7 @@ export type RoleDTO = {
43
43
export type SettingsDTO = {
44
44
autoCaptureRequests : "off" | "all" | "inScope" ;
45
45
autoRunAnalysis : boolean ;
46
+ deDuplicateHeaders : string [ ] ;
46
47
} ;
47
48
48
49
export type UserAttributeDTO = {
You can’t perform that action at this time.
0 commit comments