@@ -120,11 +120,33 @@ private static HttpServletRequest generateRequest1(String request, Context lambd
120120 SecurityContextWriter securityWriter , ObjectMapper mapper , ServletContext servletContext ) {
121121 AwsProxyRequest v1Request = readValue (request , AwsProxyRequest .class , mapper );
122122
123- // Use AWS container's servlet request instead of Spring Cloud Function's
124- AwsProxyHttpServletRequest httpServletRequest = new AwsProxyHttpServletRequest (v1Request , lambdaContext , securityWriter .writeSecurityContext (v1Request , lambdaContext ));
125- httpServletRequest .setServletContext (servletContext );
126- return httpServletRequest ;
123+ ServerlessHttpServletRequest httpRequest = new ServerlessHttpServletRequest (servletContext , v1Request .getHttpMethod (), v1Request .getPath ());
124+
125+ populateQueryStringParametersV1 (v1Request , httpRequest );
126+ populateMultiValueQueryStringParametersV1 (v1Request , httpRequest );
127+
128+ if (v1Request .getMultiValueHeaders () != null ) {
129+ MultiValueMapAdapter headers = new MultiValueMapAdapter (v1Request .getMultiValueHeaders ());
130+ httpRequest .setHeaders (headers );
131+ }
132+ populateContentAndContentType (
133+ v1Request .getBody (),
134+ v1Request .getMultiValueHeaders ().getFirst (HttpHeaders .CONTENT_TYPE ),
135+ v1Request .isBase64Encoded (),
136+ httpRequest
137+ );
138+ if (v1Request .getRequestContext () != null ) {
139+ httpRequest .setAttribute (RequestReader .API_GATEWAY_CONTEXT_PROPERTY , v1Request .getRequestContext ());
140+ httpRequest .setAttribute (RequestReader .ALB_CONTEXT_PROPERTY , v1Request .getRequestContext ().getElb ());
141+ }
142+ httpRequest .setAttribute (RequestReader .API_GATEWAY_STAGE_VARS_PROPERTY , v1Request .getStageVariables ());
143+ httpRequest .setAttribute (RequestReader .API_GATEWAY_EVENT_PROPERTY , v1Request );
144+ httpRequest .setAttribute (RequestReader .LAMBDA_CONTEXT_PROPERTY , lambdaContext );
145+ httpRequest .setAttribute (RequestReader .JAX_SECURITY_CONTEXT_PROPERTY ,
146+ securityWriter .writeSecurityContext (v1Request , lambdaContext ));
147+ return httpRequest ;
127148 }
149+
128150
129151
130152
0 commit comments