Skip to content

Commit 2679616

Browse files
committed
Major chages to Jersey's implementation. Moved to using servlet requests and responses as underlying objects. This solves #62 and simplifies writers and readers by condensing everything in the servlet implementation
1 parent 0675628 commit 2679616

File tree

14 files changed

+409
-380
lines changed

14 files changed

+409
-380
lines changed

aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/RequestReader.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ public abstract class RequestReader<RequestType, ContainerRequestType> {
5050
*/
5151
public static final String LAMBDA_CONTEXT_PROPERTY = "com.amazonaws.lambda.context";
5252

53+
/**
54+
* The key for the <strong>JAX RS security context</strong> properties stored in the request attributes
55+
*/
56+
public static final String JAX_SECURITY_CONTEXT_PROPERTY = "com.amazonaws.serverless.jaxrs.securityContext";
57+
5358

5459
//-------------------------------------------------------------
5560
// Methods - Abstract

aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequest.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public class AwsProxyHttpServletRequest extends AwsHttpServletRequest {
7979
private SecurityContext securityContext;
8080
private Map<String, List<String>> urlEncodedFormParameters;
8181
private Map<String, Part> multipartFormParameters;
82-
private Logger log = LoggerFactory.getLogger(AwsProxyHttpServletRequest.class);
82+
private static Logger log = LoggerFactory.getLogger(AwsProxyHttpServletRequest.class);
8383
private ContainerConfig config;
8484

8585

@@ -749,9 +749,13 @@ private Map<String, List<String>> getFormUrlEncodedParametersMap() {
749749
return output;
750750
}
751751

752-
private String decodeValueIfEncoded(String value) {
752+
public static String decodeValueIfEncoded(String value) {
753+
if (value == null) {
754+
return null;
755+
}
756+
753757
try {
754-
return URLDecoder.decode(value, DEFAULT_CHARACTER_ENCODING);
758+
return URLDecoder.decode(value, LambdaContainerHandler.getContainerConfig().getUriEncoding());
755759
} catch (UnsupportedEncodingException e) {
756760
log.warn("Could not decode body content - proceeding as if it was already decoded", e);
757761
return value;

aws-serverless-java-container-core/src/main/java/com/amazonaws/serverless/proxy/internal/servlet/AwsProxyHttpServletRequestReader.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public AwsProxyHttpServletRequest readRequest(AwsProxyRequest request, SecurityC
3838
servletRequest.setAttribute(API_GATEWAY_CONTEXT_PROPERTY, request.getRequestContext());
3939
servletRequest.setAttribute(API_GATEWAY_STAGE_VARS_PROPERTY, request.getStageVariables());
4040
servletRequest.setAttribute(LAMBDA_CONTEXT_PROPERTY, lambdaContext);
41+
servletRequest.setAttribute(JAX_SECURITY_CONTEXT_PROPERTY, securityContext);
4142

4243
return servletRequest;
4344
}

aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/JerseyAwsProxyRequestReader.java

Lines changed: 0 additions & 148 deletions
This file was deleted.

aws-serverless-java-container-jersey/src/main/java/com/amazonaws/serverless/proxy/jersey/JerseyAwsProxyResponseWriter.java

Lines changed: 0 additions & 73 deletions
This file was deleted.

0 commit comments

Comments
 (0)