@@ -691,9 +691,10 @@ func (request *Request) executeRequest(input *contextargs.Context, generatedRequ
691691 }
692692
693693 var (
694- resp * http.Response
695- fromCache bool
696- dumpedRequest []byte
694+ resp * http.Response
695+ fromCache bool
696+ dumpedRequest []byte
697+ projectCacheKey []byte
697698 )
698699
699700 // Dump request for variables checks
@@ -731,6 +732,11 @@ func (request *Request) executeRequest(input *contextargs.Context, generatedRequ
731732 if dumpError != nil {
732733 return dumpError
733734 }
735+ if generatedRequest .request != nil && generatedRequest .request .URL != nil {
736+ projectCacheKey = getHTTPProjectCacheScope (dumpedRequest , generatedRequest .request .Scheme , generatedRequest .request .URL .Host )
737+ } else {
738+ projectCacheKey = dumpedRequest
739+ }
734740 dumpedRequestString := string (dumpedRequest )
735741
736742 if ignoreList := GetVariablesNamesSkipList (generatedRequest .original .Signature .Value ); ignoreList != nil {
@@ -815,7 +821,7 @@ func (request *Request) executeRequest(input *contextargs.Context, generatedRequ
815821 if request .options .ProjectFile != nil {
816822 // if unavailable fail silently
817823 fromCache = true
818- resp , err = request .options .ProjectFile .Get (dumpedRequest )
824+ resp , err = request .options .ProjectFile .Get (projectCacheKey )
819825 if err != nil {
820826 fromCache = false
821827 }
@@ -965,7 +971,7 @@ func (request *Request) executeRequest(input *contextargs.Context, generatedRequ
965971 onceFunc := sync .OnceFunc (func () {
966972 // if nuclei-project is enabled store the response if not previously done
967973 if request .options .ProjectFile != nil && ! fromCache {
968- if err := request .options .ProjectFile .Set (dumpedRequest , resp , respChain .BodyBytes ()); err != nil {
974+ if err := request .options .ProjectFile .Set (projectCacheKey , resp , respChain .BodyBytes ()); err != nil {
969975 errx = errors .Wrap (err , "could not store in project file" )
970976 }
971977 }
0 commit comments