|
4 | 4 | import java.nio.charset.StandardCharsets; |
5 | 5 | import java.util.Arrays; |
6 | 6 | import java.util.Collection; |
| 7 | +import java.util.Map; |
7 | 8 |
|
8 | 9 | import com.amazonaws.serverless.proxy.RequestReader; |
9 | 10 | import com.amazonaws.serverless.proxy.model.AlbContext; |
@@ -219,6 +220,10 @@ public static Collection<String> data() { |
219 | 220 | return Arrays.asList(new String[]{API_GATEWAY_EVENT, API_GATEWAY_EVENT_V2, ALB_EVENT}); |
220 | 221 | } |
221 | 222 |
|
| 223 | + public static Collection<String> v1Data() { |
| 224 | + return Arrays.asList(new String[]{API_GATEWAY_EVENT, ALB_EVENT}); |
| 225 | + } |
| 226 | + |
222 | 227 | @MethodSource("data") |
223 | 228 | @ParameterizedTest |
224 | 229 | public void validateHttpServletRequestGenerationWithInputStream(String jsonEvent) { |
@@ -256,6 +261,46 @@ public void validateHttpServletRequestGenerationWithJson(String jsonEvent) { |
256 | 261 | } |
257 | 262 |
|
258 | 263 |
|
| 264 | + @MethodSource("v1Data") |
| 265 | + @ParameterizedTest |
| 266 | + public void validateLambdaContextAttribute(String jsonEvent) { |
| 267 | + ServerlessServletContext servletContext = new ServerlessServletContext(); |
| 268 | + HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(jsonEvent, null, servletContext, mapper); |
| 269 | + assertNotNull(request.getAttribute(RequestReader.API_GATEWAY_EVENT_PROPERTY)); |
| 270 | + } |
| 271 | + |
| 272 | + @MethodSource("v1Data") |
| 273 | + @ParameterizedTest |
| 274 | + public void validateSecurityContextAttribute(String jsonEvent) { |
| 275 | + ServerlessServletContext servletContext = new ServerlessServletContext(); |
| 276 | + HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(jsonEvent, null, servletContext, mapper); |
| 277 | + assertNotNull(request.getAttribute(RequestReader.JAX_SECURITY_CONTEXT_PROPERTY)); |
| 278 | + } |
| 279 | + |
| 280 | + @MethodSource("v1Data") |
| 281 | + @ParameterizedTest |
| 282 | + public void validateNullMultiValueHeaders(String jsonEvent) throws Exception { |
| 283 | + Map<String, Object> event = mapper.readValue(jsonEvent, Map.class); |
| 284 | + event.put("multiValueHeaders", null); |
| 285 | + String modifiedEvent = mapper.writeValueAsString(event); |
| 286 | + ServerlessServletContext servletContext = new ServerlessServletContext(); |
| 287 | + HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(modifiedEvent, null, servletContext, mapper); |
| 288 | + assertNotNull(request); |
| 289 | + } |
| 290 | + |
| 291 | + @MethodSource("v1Data") |
| 292 | + @ParameterizedTest |
| 293 | + public void validateBase64EncodedBody(String jsonEvent) throws Exception { |
| 294 | + String base64Body = java.util.Base64.getEncoder().encodeToString("test body".getBytes(StandardCharsets.UTF_8)); |
| 295 | + Map<String, Object> event = mapper.readValue(jsonEvent, Map.class); |
| 296 | + event.put("body", base64Body); |
| 297 | + event.put("isBase64Encoded", true); |
| 298 | + String modifiedEvent = mapper.writeValueAsString(event); |
| 299 | + ServerlessServletContext servletContext = new ServerlessServletContext(); |
| 300 | + HttpServletRequest request = AwsSpringHttpProcessingUtils.generateHttpServletRequest(modifiedEvent, null, servletContext, mapper); |
| 301 | + assertNotNull(request); |
| 302 | + } |
| 303 | + |
259 | 304 | @EnableAutoConfiguration |
260 | 305 | @Configuration |
261 | 306 | @EnableWebSecurity |
|
0 commit comments