-
Notifications
You must be signed in to change notification settings - Fork 571
Description
Serverless Java Container version: Java 11 (Corretto)
Implementations: Jersey (+ Dagger)
Framework version: 2.35
Frontend service: HTTP API
Deployment method: Console
Scenario
We just need to get the client user agent but the value is truncated after the comma.
Expected behavior
servletRequest.getHeader("User-Agent") should return:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36
Actual behavior
servletRequest.getHeader("User-Agent") returns:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML
Steps to reproduce
`
package com.services.test;
import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.util.Enumeration;
@singleton
@path("test")
public class TestService {
private static final Logger logger = LoggerFactory.getLogger(TestService.class);
@Inject
public TestService() {
}
@GET
@Path("user-agent")
@Produces(MediaType.APPLICATION_JSON)
public AwsProxyResponse checkUserAgent(@Context HttpServletRequest servletRequest) {
final AwsProxyResponse response = new AwsProxyResponse();
response.setStatusCode(Response.Status.OK.getStatusCode());
for (Enumeration<?> e = servletRequest.getHeaderNames(); e.hasMoreElements(); ) {
String nextHeaderName = (String) e.nextElement();
String headerValue = servletRequest.getHeader(nextHeaderName);
logger.info("{} = {}", nextHeaderName, headerValue);
}
return response;
}
}
`
