@Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { // we have already added the necessary headers for OPTIONS requests below if ("options".equalsIgnoreCase(requestContext.getRequest().getMethod())) { if(Response.Status.Family.familyOf(responseContext.getStatus()) == Response.Status.Family.SUCCESSFUL) { return; } responseContext.setStatus(Response.Status.NO_CONTENT.getStatusCode()); responseContext.setEntity(""); } String origin = requestContext.getHeaders().getFirst("Origin"); if (origin != null && !origin.isEmpty()) { responseContext.getHeaders().add("Access-Control-Allow-Origin", origin); responseContext.getHeaders().add("Access-Control-Allow-Credentials", true); responseContext.getHeaders().add("Access-Control-Allow-Headers", "Authorization, Content-Type, X-Graylog-No-Session-Extension, X-Requested-With, X-Requested-By"); responseContext.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); // In order to avoid redoing the preflight thingy for every request, see http://stackoverflow.com/a/12021982/1088469 responseContext.getHeaders().add("Access-Control-Max-Age", "600"); // 10 minutes seems to be the maximum allowable value } }
responseContext.setEntity(""); responseContext.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); LOGGER.severe("Authorization failure. Request for" + fc.getResourcePath() + " has failed, as it was marked" + "as explicitly authorized, yet authorization was never called on security context. The method"
@Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { if (responseContext.getStatus() == 200) { for (Annotation i : responseContext.getEntityAnnotations()) { if (i instanceof Status) { responseContext.setStatus(((Status) i).value()); break; } } } }
@Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { if (authenticator != null) { // This filter should not be created using CDI runtime (it is vetoed) as // such the injection should not be performed. responseContext.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); } } }
@Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { if (authenticator != null) { // This filter should not be created using CDI runtime (it is vetoed) as // such the injection should not be performed. responseContext.setStatus(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); } } }
@Override public void filter(ContainerRequestContext containerRequestContext, ContainerResponseContext containerResponseContext) throws IOException { if (containerResponseContext.getStatus() == Response.Status.OK.getStatusCode()) { Object o = containerResponseContext.getEntity(); if (o == null) { containerResponseContext.setStatus(Response.Status.NO_CONTENT.getStatusCode()); } } } }
public void populateResponse(ContainerResponseContext responseContext) { if (hasResponseContent) { responseContext.setEntity(responseContent); } if (hasResponseContentType) { responseContext.getHeaders().putSingle(HttpHeaders.CONTENT_TYPE, responseContentType); } if (hasResponseStatus) { responseContext.setStatus(responseStatus); } for (Entry<String, String> headers : responseHeaders.entrySet()) { responseContext.getHeaders().putSingle(headers.getKey(), headers.getValue()); } for (NewCookie cookie : responseCookies) { responseContext.getHeaders().add(HttpHeaders.SET_COOKIE, cookie); } } }
@Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { Object entity = responseContext.getEntity(); if (entity instanceof AgResponse) { AgResponse response = (AgResponse) entity; if (response.getStatus() != null) { responseContext.setStatus(response.getStatus().getStatusCode()); } } } }
@Override public void filter(ContainerRequestContext containerRequestContext, ContainerResponseContext containerResponseContext) throws IOException { String method = containerRequestContext.getRequest().getMethod(); if (method.equals("POST") && containerResponseContext.getStatus() == Response.Status.OK.getStatusCode()) { containerResponseContext.setStatus(Response.Status.CREATED.getStatusCode()); RestEntity entity = (RestEntity) containerResponseContext.getEntity(); String id = entity.getId(); containerResponseContext.getHeaders().add("Location", containerRequestContext.getUriInfo().getAbsolutePathBuilder().path(id).build().toString()); } //containerResponseContext.getHeaders().put("Location") } }
@Override public void filter(ContainerRequestContext req, ContainerResponseContext response) throws IOException { if (response.getEntity() instanceof Result) { buildHeaders(response); response.setEntity(buildContentBody(response)); if (!paginationHelper.isPartialContentResponse()) { response.setStatus(Status.OK.getStatusCode()); } else { response.setStatus(Status.PARTIAL_CONTENT.getStatusCode()); } } else { if (Status.BAD_REQUEST.getStatusCode() == response.getStatus() && drc.getEntityClass() == null) { paginationHelper.buildAcceptRangeWithResponse(response); } } }
/** * {@inheritDoc} */ @Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { int status = responseContext.getStatus(); if (status == 404 || status == UnprocessableEntityException.STATUS) { String path = mappedViewPath(); if (path != null) { responseContext.setEntity(Viewables.newDefaultViewable(path), new Annotation[0], MediaType.TEXT_HTML_TYPE); responseContext.setStatus(Response.Status.OK.getStatusCode()); } } } }
@Override public void filter(ContainerRequestContext req, ContainerResponseContext response) throws IOException { if (response.getEntity() instanceof Result) { buildHeaders(response); response.setEntity(buildContentBody(response)); if (!paginationHelper.isPartialContentResponse()) { response.setStatus(Status.OK.getStatusCode()); } else { response.setStatus(Status.PARTIAL_CONTENT.getStatusCode()); } } else { if (Status.BAD_REQUEST.getStatusCode() == response.getStatus() && drc.getEntityClass() == null) { paginationHelper.buildAcceptRangeWithResponse(response); } } }
public class KPFilter implements ContainerResponseFilter { private Logger LOG = LoggerFactory.getLogger(KPFilter.class); public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { if(responseContext.getStatus()== Status.OK.getStatusCode()){ final String myHeader = requestContext.getHeaderString("myHeader"); if(myHeader !=null && myHeader.equals("kp-header")){ responseContext.getHeaders().add("resHeader", myHeader+"-res"); }else{ responseContext.setEntity("An erro occured"); responseContext.setStatus(500); } }else{ LOG.info("Status is not OK, its {}", responseContext.getStatus()); } } }
@Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { // we have already added the necessary headers for OPTIONS requests below if ("options".equalsIgnoreCase(requestContext.getRequest().getMethod())) { if(Response.Status.Family.familyOf(responseContext.getStatus()) == Response.Status.Family.SUCCESSFUL) { return; } responseContext.setStatus(Response.Status.NO_CONTENT.getStatusCode()); responseContext.setEntity(""); } String origin = requestContext.getHeaders().getFirst("Origin"); if (origin != null && !origin.isEmpty()) { responseContext.getHeaders().add("Access-Control-Allow-Origin", origin); responseContext.getHeaders().add("Access-Control-Allow-Credentials", true); responseContext.getHeaders().add("Access-Control-Allow-Headers", "Authorization, Content-Type, X-Graylog-No-Session-Extension, X-Requested-With, X-Requested-By"); responseContext.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); // In order to avoid redoing the preflight thingy for every request, see http://stackoverflow.com/a/12021982/1088469 responseContext.getHeaders().add("Access-Control-Max-Age", "600"); // 10 minutes seems to be the maximum allowable value } }
/** * When active, this filter transforms all responses for specified basePath to 200, even in case of error. */ @Provider public class DiscardErrors implements ContainerResponseFilter { private String basePath; public DiscardErrors(String basePath) { this.basePath = basePath; } @Override public void filter(ContainerRequestContext containerRequestContext, ContainerResponseContext containerResponseContext) throws IOException { if containerRequestContext.getUriInfo().getPath().startsWith(this.basePath) { if (containerResponseContext.getStatus() != 200) { // Check if response code is different from 200 containerResponseContext.setStatus(200); // Force 200 status code containerResponseContext.setEntity(""); // Empty body } } } }
@Override public void filter(ContainerRequestContext req, ContainerResponseContext resp) throws IOException { if (resp.hasEntity() && (resp.getEntity() instanceof Status)) { Status status = (Status) resp.getEntity(); int code = (Status.State.UP == status.getState()) ? 200 : 503; resp.setStatus(code); resp.setEntity(status.toJson()); resp.getHeaders().putSingle("Content-Type", MediaType.APPLICATION_JSON); } }
/** * Set the entity response to a 404 JSON entity. */ private void replaceResponse(final ContainerRequestContext requestContext, final ContainerResponseContext responseContext) { final ServerError serverError = new ServerError(); if (requestContext.getUriInfo().getPathParameters().size() == 1) { // Single parameter ---> entity identifier or whatever identifying a data serverError.setCode("entity"); serverError.setMessage(requestContext.getUriInfo().getPathParameters().values().iterator().next().get(0)); } else { serverError.setCode("data"); } responseContext.setStatus(Status.NOT_FOUND.getStatusCode()); responseContext.setEntity(toEntity(serverError), responseContext.getEntityAnnotations(), MediaType.APPLICATION_JSON_TYPE); }
public class RangeResponseFilter implements ContainerResponseFilter { private static final String RANGE = "Range"; private static final String ACCEPT_RANGES = "Accept-Ranges"; @Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { if (requestContext.getHeaders().containsKey(RANGE)) { String rangeHeader = requestContext.getHeaderString(RANGE); String contentType = responseContext.getMediaType().toString(); OutputStream originOutputStream = responseContext.getEntityStream(); RangedOutputStream rangedOutputStream = new RangedOutputStream(originOutputStream, rangeHeader, contentType, responseContext.getHeaders()); responseContext.setStatus(Status.PARTIAL_CONTENT.getStatusCode()); responseContext.getHeaders().putSingle(ACCEPT_RANGES, rangedOutputStream.getAcceptRanges()); responseContext.setEntityStream(rangedOutputStream); } } }
@Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { @SuppressWarnings("unchecked") ResponseObjectAwareMessageBodyWriter<Object> writer = (ResponseObjectAwareMessageBodyWriter<Object>) getMessageWriter(responseContext.getEntityClass()); if (writer != null) { Object entity = responseContext.getEntity(); Class<?> entityClass = responseContext.getEntityClass(); int status = writer.getStatusCode(entity, entityClass); responseContext.setStatus(status); if (status == Status.NO_CONTENT.getStatusCode()) { writer.writeTo(entity, entityClass, null, null, responseContext.getMediaType(), responseContext.getHeaders(), responseContext.getEntityStream()); } } }
@Override public void processResponse(ContainerRequestContext requestContext, ContainerResponseContext responseContext, ResourceInfo resourceInfo) { MediaType mediaType = responseContext.getMediaType(); if (mediaType != null && MediaType.APPLICATION_JSON_TYPE.equals(mediaType)) { Object responseData = responseContext.getEntity(); WrapperResponseEntity jsonResponse; if (responseData instanceof WrapperResponseEntity) { jsonResponse = (WrapperResponseEntity) responseData; } else { jsonResponse = new WrapperResponseEntity(ResponseCode.OK); jsonResponse.setData(responseData); } responseContext.setStatus(ResponseCode.OK.getCode()); responseContext.setEntity(jsonResponse); } }