@@ -39,7 +39,7 @@ pub async fn proxy_core(
39
39
. change_context ( errors:: ApiErrorResponse :: InternalServerError )
40
40
. attach_printable ( "Failed to serialize vault data" ) ?;
41
41
42
- let processed_body = process_value ( req. request_body . clone ( ) , & vault_data) ?;
42
+ let processed_body = interpolate_token_references_with_vault_data ( req. request_body . clone ( ) , & vault_data) ?;
43
43
44
44
let res = execute_proxy_request ( & state, & req_wrapper, processed_body) . await ?;
45
45
@@ -48,12 +48,12 @@ pub async fn proxy_core(
48
48
Ok ( services:: ApplicationResponse :: Json ( proxy_response) )
49
49
}
50
50
51
- fn process_value ( value : Value , vault_data : & Value ) -> RouterResult < Value > {
51
+ fn interpolate_token_references_with_vault_data ( value : Value , vault_data : & Value ) -> RouterResult < Value > {
52
52
match value {
53
53
Value :: Object ( obj) => {
54
54
let new_obj = obj
55
55
. into_iter ( )
56
- . map ( |( key, val) | process_value ( val, vault_data) . map ( |processed| ( key, processed) ) )
56
+ . map ( |( key, val) | interpolate_token_references_with_vault_data ( val, vault_data) . map ( |processed| ( key, processed) ) )
57
57
. collect :: < Result < serde_json:: Map < _ , _ > , error_stack:: Report < errors:: ApiErrorResponse > > > ( ) ?;
58
58
59
59
Ok ( Value :: Object ( new_obj) )
@@ -86,16 +86,10 @@ fn extract_field_from_vault_data(vault_data: &Value, field_name: &str) -> Router
86
86
match vault_data {
87
87
Value :: Object ( obj) => find_field_recursively_in_vault_data ( obj, field_name)
88
88
. ok_or_else ( || {
89
- logger:: debug!(
90
- "Field '{}' not found in vault data: {:?}" ,
91
- field_name,
92
- vault_data
93
- ) ;
94
89
errors:: ApiErrorResponse :: InternalServerError
95
90
} )
96
91
. attach_printable ( format ! ( "Field '{}' not found" , field_name) ) ,
97
92
_ => {
98
- logger:: debug!( "Vault data is not an object: {:?}" , vault_data) ;
99
93
Err ( errors:: ApiErrorResponse :: InternalServerError )
100
94
. attach_printable ( "Vault data is not a valid JSON object" )
101
95
}
@@ -146,17 +140,7 @@ impl TryFrom<ProxyResponseWrapper> for proxy_api_models::ProxyResponse {
146
140
. attach_printable ( "Failed to parse the response" ) ?;
147
141
148
142
let status_code = res. status_code ;
149
- let response_headers = res
150
- . headers
151
- . as_ref ( )
152
- . map ( |h| {
153
- let map: std:: collections:: HashMap < _ , _ > = h
154
- . iter ( )
155
- . map ( |( k, v) | ( k. to_string ( ) , v. to_str ( ) . unwrap_or ( "" ) . to_string ( ) ) )
156
- . collect ( ) ;
157
- proxy_api_models:: Headers ( map)
158
- } )
159
- . unwrap_or_else ( || proxy_api_models:: Headers ( std:: collections:: HashMap :: new ( ) ) ) ;
143
+ let response_headers = proxy_api_models:: Headers :: from_header_map ( res. headers . as_ref ( ) ) ;
160
144
161
145
Ok ( Self {
162
146
response : response_body,
0 commit comments