@@ -7,22 +7,36 @@ function invokeWith(msg) {
77	var  string  =  "curl -i -s -k -X  '" + msg . getRequestHeader ( ) . getMethod ( ) + "'  \\\n" ; 
88	var  header  =  msg . getRequestHeader ( ) . getHeadersAsString ( ) ; 
99	header  =  header . split ( msg . getRequestHeader ( ) . getLineDelimiter ( ) ) ; 
10+ 	var  suspiciousHeaders  =  false ; 
1011	for ( var  i = 0 ; i < header . length ; i ++ ) { 
12+ 		var  headerEntry  =  header [ i ] . trim ( ) 
13+ 		if  ( headerEntry . startsWith ( "@" ) )  { 
14+ 			suspiciousHeaders  =  true ; 
15+ 		} 
1116		//blacklisting Host (other blacklisting should also specify here 
12- 		var  keyval  =  header [ i ] . split ( ":" ) ; 
17+ 		var  keyval  =  headerEntry . split ( ":" ) ; 
1318		if ( keyval [ 0 ] . trim ( )  !=  "Host" ) 
14- 			string  +=  " -H '" + header [ i ] . trim ( ) + "' " ; 
19+ 			string  +=  " -H '" + headerEntry + "' " ; 
1520	} 
1621	string  +=  " \\\n" ; 
1722	var  body  =  msg . getRequestBody ( ) . toString ( ) ; 
1823	if ( body . length ( )  !=  0 ) { 
19- 		string  +=  "--data-binary  $'" + addSlashes ( body ) + "' \\\n" ; 
24+ 		string  +=  "--data-raw  $'" + addSlashes ( body ) + "' \\\n" ; 
2025	} 
2126	string  +=  "'" + msg . getRequestHeader ( ) . getURI ( ) . toString ( ) + "'" ; 
22- 	var  selected  =  new  java . awt . datatransfer . StringSelection ( string ) ; 
23- 	var  clipboard  =  java . awt . Toolkit . getDefaultToolkit ( ) . getSystemClipboard ( ) ; 
24- 	clipboard . setContents ( selected , null ) ; 
27+ 
28+ 	if  ( ! suspiciousHeaders )  { 
29+ 		var  selected  =  new  java . awt . datatransfer . StringSelection ( string ) ; 
30+ 		var  clipboard  =  java . awt . Toolkit . getDefaultToolkit ( ) . getSystemClipboard ( ) ; 
31+ 		clipboard . setContents ( selected , null ) ; 
32+ 	} 
2533	print  ( string ) ; 
34+ 
35+ 	if  ( suspiciousHeaders )  { 
36+ 		print ( "\n**WARNING**" ) ; 
37+ 		print ( "The generated command might be including a local file (e.g. `@/path/to/file`) in a header, carefully review the command before executing it." ) ; 
38+ 		print ( "Note: The command was *not* added to the clipboard.\n" ) ; 
39+ 	} 
2640} 
2741
2842function  addSlashes ( body ) { 
0 commit comments