use of javax.ws.rs.core.Request in project cxf by apache.
the class EvaluatePreconditionsTest method testIfNoneMatch304.
@Test
public void testIfNoneMatch304() {
final Request request = getRequest(HttpHeaders.IF_NONE_MATCH, ETAG_OLD.toString());
final Response response = service.perform(request);
Assert.assertEquals(HttpServletResponse.SC_NOT_MODIFIED, response.getStatus());
}
use of javax.ws.rs.core.Request in project cxf by apache.
the class EvaluatePreconditionsTest method testIfModified304.
@Test
public void testIfModified304() {
final Request request = getRequest(HttpHeaders.IF_MODIFIED_SINCE, dateFormat.format(DATE_NEW));
final Response response = service.perform(request);
Assert.assertEquals(HttpServletResponse.SC_NOT_MODIFIED, response.getStatus());
}
use of javax.ws.rs.core.Request in project che by eclipse.
the class JAXRSDownloadFileResponseFilter method filter.
/**
* JAX-RS Filter method called after a response has been provided for a request
* <p>
* Filters in the filter chain are ordered according to their {@code javax.annotation.Priority}
* class-level annotation value.
* </p>
*
* @param requestContext
* request context.
* @param responseContext
* response context.
* @throws IOException
* if an I/O exception occurs.
*/
@Override
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
// Apply header if all if correct
Request request = requestContext.getRequest();
String filename = getFileName(request, responseContext.getMediaType(), requestContext.getUriInfo(), responseContext.getStatus());
if (filename != null) {
if (hasCompliantEntity(responseContext.getEntity())) {
responseContext.getHeaders().putSingle(CONTENT_DISPOSITION, "attachment; filename=" + filename);
}
}
}
use of javax.ws.rs.core.Request in project che by eclipse.
the class ETagResponseFilter method doFilter.
/**
* Filter the given container response
*
* @param containerResponse
* the response to use
*/
public void doFilter(GenericContainerResponse containerResponse) {
// get entity of the response
Object entity = containerResponse.getEntity();
// no entity, skip
if (entity == null) {
return;
}
// Only handle JSON content
if (!MediaType.APPLICATION_JSON_TYPE.equals(containerResponse.getContentType())) {
return;
}
// Get the request
ApplicationContext applicationContext = ApplicationContext.getCurrent();
Request request = applicationContext.getRequest();
// manage only GET requests
if (!HttpMethod.GET.equals(request.getMethod())) {
return;
}
// calculate hash with MD5
HashFunction hashFunction = Hashing.md5();
Hasher hasher = hashFunction.newHasher();
boolean hashingSuccess = true;
// Manage a list
if (entity instanceof List) {
List<?> entities = (List) entity;
for (Object simpleEntity : entities) {
hashingSuccess = addHash(simpleEntity, hasher);
if (!hashingSuccess) {
break;
}
}
} else {
hashingSuccess = addHash(entity, hasher);
}
// if we're able to handle the hash
if (hashingSuccess) {
// get result of the hash
HashCode hashCode = hasher.hash();
// Create the entity tag
EntityTag entityTag = new EntityTag(hashCode.toString());
// Check the etag
Response.ResponseBuilder builder = request.evaluatePreconditions(entityTag);
// not modified ?
if (builder != null) {
containerResponse.setResponse(builder.tag(entityTag).build());
} else {
// it has been changed, so send response with new ETag and entity
Response.ResponseBuilder responseBuilder = Response.fromResponse(containerResponse.getResponse()).tag(entityTag);
containerResponse.setResponse(responseBuilder.build());
}
}
}
use of javax.ws.rs.core.Request in project che by eclipse.
the class EverrestDownloadFileResponseFilter method doFilter.
/**
* Filter the given container response.
*
* @param containerResponse
* the response to use
*/
public void doFilter(GenericContainerResponse containerResponse) {
containerResponse.getResponse();
// Get the request
ApplicationContext applicationContext = ApplicationContext.getCurrent();
Request request = applicationContext.getRequest();
// Apply header if all if correct
String filename = getFileName(request, containerResponse.getContentType(), applicationContext, containerResponse.getStatus());
if (filename != null) {
if (hasCompliantEntity(containerResponse.getEntity())) {
// it has been changed, so send response with updated header
Response.ResponseBuilder responseBuilder = Response.fromResponse(containerResponse.getResponse()).header(CONTENT_DISPOSITION, "attachment; filename=" + filename);
containerResponse.setResponse(responseBuilder.build());
}
}
}
Aggregations