@@ -17,7 +17,7 @@ type httpContext struct {
17
17
18
18
func (c * httpContext ) OnHttpRequestHeaders (_ int , _ bool ) types.Action {
19
19
for _ , requestHeaderToRename := range c .configuration .requestHeadersToRename {
20
- if err := c .renameRequestHeader (requestHeaderToRename .header . key , requestHeaderToRename . header . value ); err != nil {
20
+ if err := c .renameRequestHeader (requestHeaderToRename .header ); err != nil {
21
21
setErrorHTTPResponseWithLog ("failed to rename the header: %s" , err )
22
22
return types .ActionPause
23
23
}
@@ -26,22 +26,27 @@ func (c *httpContext) OnHttpRequestHeaders(_ int, _ bool) types.Action {
26
26
return types .ActionContinue
27
27
}
28
28
29
- func (c * httpContext ) renameRequestHeader (origName , newName string ) error {
30
- value , err := proxywasm .GetHttpRequestHeader (origName )
29
+ func (c * httpContext ) renameRequestHeader (h headerValue ) error {
30
+ value , err := proxywasm .GetHttpRequestHeader (h . key )
31
31
if err != nil {
32
32
if err == types .ErrorStatusNotFound {
33
33
return nil
34
34
}
35
35
36
- return fmt .Errorf ("failed to get the original header, `%s`: %w" , origName , err )
36
+ return fmt .Errorf ("failed to get the original header, `%s`: %w" , h . key , err )
37
37
}
38
38
39
- if err := proxywasm .ReplaceHttpRequestHeader (newName , value ); err != nil {
40
- return fmt .Errorf ("failed to set the new header, `%s`: %w" , newName , err )
39
+ newValue := value
40
+ if h .prefix != "" {
41
+ newValue = h .prefix + value
41
42
}
42
43
43
- if err := proxywasm .RemoveHttpRequestHeader (origName ); err != nil {
44
- return fmt .Errorf ("failed to delete the original header, `%s`: %w" , origName , err )
44
+ if err := proxywasm .ReplaceHttpRequestHeader (h .value , newValue ); err != nil {
45
+ return fmt .Errorf ("failed to set the new header, `%s`: %w" , h .value , err )
46
+ }
47
+
48
+ if err := proxywasm .RemoveHttpRequestHeader (h .key ); err != nil {
49
+ return fmt .Errorf ("failed to delete the original header, `%s`: %w" , h .key , err )
45
50
}
46
51
47
52
return nil
0 commit comments