@Override public Response getResponse() { if (response == null) { setResponse(null); } return response; }
@Override public void setResponse(Response response) { acr.setResponse(response); }
/** * Reset the response to 204 (No content) with no headers. */ public void reset() { setResponse(Responses.noContent().build()); }
private void onException(Throwable e, Response r, boolean mapped) { if (request.isTracingEnabled()) { Response.Status s = Response.Status.fromStatusCode(r.getStatus()); if (s != null) { request.trace(String.format("mapped exception to response: %s -> %d (%s)", ReflectionHelper.objectToString(e), r.getStatus(), s.getReasonPhrase())); } else { request.trace(String.format("mapped exception to response: %s -> %d", ReflectionHelper.objectToString(e), r.getStatus())); } } if (!mapped && r.getStatus() >= 500) { logException(e, r, Level.SEVERE); } else if (LOGGER.isLoggable(Level.FINE)) { logException(e, r, Level.FINE); } setResponse(r); this.mappedThrowable = e; if (getEntity() != null && getHttpHeaders().getFirst(HttpHeaders.CONTENT_TYPE) == null) { Object m = request.getProperties().get(HttpMethodRule.CONTENT_TYPE_PROPERTY); if (m != null) { request.getProperties().remove(HttpMethodRule.CONTENT_TYPE_PROPERTY); getHttpHeaders().putSingle(HttpHeaders.CONTENT_TYPE, m); } } }
/** * Adds the appropriate cors response headers to the response of * <a href="http://www.w3.org/TR/cors/#resource-requests">cors requests</a> * from a whitelisted origin. * * @param request the request. * @param containerResponse the response. * @return containerResponse */ public ContainerResponse filter(ContainerRequest request, ContainerResponse containerResponse) { if (request.getProperties().containsKey(CORS_PREFLIGHT_FAILED) || request.getProperties().containsKey(CORS_PREFLIGHT_SUCCEEDED) || extractOrigin(request) == null) { return containerResponse; } Iterable<CorsDefaults> defaults = pluginModuleTracker.getModules(); try { String origin = validateSingleOriginInWhitelist(defaults, request); Iterable<CorsDefaults> defaultsWithAllowedOrigin = allowsOrigin(defaults, origin); Response.ResponseBuilder response = Response.fromResponse(containerResponse.getResponse()); addAccessControlAllowOrigin(response, origin); conditionallyAddAccessControlAllowCredentials(response, origin, defaultsWithAllowedOrigin); addAccessControlExposeHeaders(response, getAllowedResponseHeaders(defaultsWithAllowedOrigin, origin)); containerResponse.setResponse(response.build()); return containerResponse; } catch (PreflightFailedException ex) { log.info("Unable to add CORS headers to response: " + ex.getMessage()); } return containerResponse; }
@Override public Response getResponse() { if (response == null) { setResponse(null); } return response; }
@Override public void setResponse(Response response) { acr.setResponse(response); }
@Override public Response getResponse() { if (response == null) { setResponse(null); } return response; }
@Override public void setResponse(Response response) { acr.setResponse(response); }
/** * Reset the response to 204 (No content) with no headers. */ public void reset() { setResponse(Responses.noContent().build()); }
/** * Reset the response to 204 (No content) with no headers. */ public void reset() { setResponse(Responses.noContent().build()); }
@Provider public class HeaderRewriteFilter implements ContainerResponseFilter { @Override public ContainerResponse filter(ContainerRequest request, ContainerResponse response) { response.setResponse(Response .fromResponse(response.getResponse()).header(HttpHeaders.CONTENT_TYPE, "text/plain").build()); return response; } }
@Override public ContainerResponse filter(final ContainerRequest request, final ContainerResponse response) { final ResponseBuilder resp = Response.fromResponse(response.getResponse()); fixCharset(response, resp); resp.header("Access-Control-Allow-Origin", "*").header( "Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); final String reqHead = request .getHeaderValue("Access-Control-Request-Headers"); if (null != reqHead && !reqHead.equals(null)) { resp.header("Access-Control-Allow-Headers", reqHead); } response.setResponse(resp.build()); return response; }
@Override public ContainerResponse filter( ContainerRequest req, ContainerResponse contResp ) { ResponseBuilder resp = Response.fromResponse( contResp.getResponse()); resp .header( "Access-Control-Allow-Origin", "*" ) .header( "Access-Control-Allow-Methods", "GET, DELETE, POST, OPTIONS" ); String reqHead = req.getHeaderValue( "Access-Control-Request-Headers" ); if( ! Utils.isEmptyOrWhitespaces( reqHead )) resp.header( "Access-Control-Allow-Headers", reqHead ); contResp.setResponse( resp.build()); return contResp; } }
@Override public ContainerResponse filter(ContainerRequest request, ContainerResponse response) { if (MediaType.APPLICATION_JSON_TYPE.isCompatible(response.getMediaType()) || TEXT_JSON.isCompatible(response.getMediaType())) { response.setResponse(Response.fromResponse(response.getResponse()).type(APPLICATION_JSON_UTF8_TYPE).build()); } return response; } }
containerResponse.setResponse(response.build()); return containerResponse;
@Provider public class CrossDomainFilter implements ContainerResponseFilter { @Override public ContainerResponse filter(ContainerRequest req,ContainerResponse contResp) { // TODO Auto-generated method stub ResponseBuilder resp = Response.fromResponse(contResp.getResponse()); resp.header("Access-Control-Allow-Origin", "*").header("Access-Control-Allow-Methods", "GET, POST, OPTIONS"); String reqHead = req.getHeaderValue("Access-Control-Request-Headers"); if (null != reqHead && !reqHead.equals("")) { resp.header("Access-Control-Allow-Headers", reqHead); } contResp.setResponse(resp.build()); return contResp; } }
public class CORSFilter implements ContainerResponseFilter { public ContainerResponse filter(ContainerRequest req, ContainerResponse containerResponse) { ResponseBuilder responseBuilder = Response.fromResponse(containerResponse.getResponse()); // *(allow from all servers) OR http://example.com/ responseBuilder.header("Access-Control-Allow-Origin", "*") // As a part of the response to a request, which HTTP methods can be used during the actual request. .header("Access-Control-Allow-Methods", "API, CRUNCHIFYGET, GET, POST, PUT, UPDATE, OPTIONS") // How long the results of a request can be cached in a result cache. .header("Access-Control-Max-Age", "151200") // As part of the response to a request, which HTTP headers can be used during the actual request. .header("Access-Control-Allow-Headers", "x-requested-with,Content-Type"); String requestHeader = req.getHeaderValue("Access-Control-Request-Headers"); if (null != requestHeader && !requestHeader.equals(null)) { responseBuilder.header("Access-Control-Allow-Headers", requestHeader); } containerResponse.setResponse(responseBuilder.build()); return containerResponse; } }
private void onException(Throwable e, Response r, boolean mapped) { if (request.isTracingEnabled()) { Response.Status s = Response.Status.fromStatusCode(r.getStatus()); if (s != null) { request.trace(String.format("mapped exception to response: %s -> %d (%s)", ReflectionHelper.objectToString(e), r.getStatus(), s.getReasonPhrase())); } else { request.trace(String.format("mapped exception to response: %s -> %d", ReflectionHelper.objectToString(e), r.getStatus())); } } if (!mapped && r.getStatus() >= 500) { logException(e, r, Level.SEVERE); } else if (LOGGER.isLoggable(Level.FINE)) { logException(e, r, Level.FINE); } setResponse(r); this.mappedThrowable = e; if (getEntity() != null && getHttpHeaders().getFirst(HttpHeaders.CONTENT_TYPE) == null) { Object m = request.getProperties().get(HttpMethodRule.CONTENT_TYPE_PROPERTY); if (m != null) { request.getProperties().remove(HttpMethodRule.CONTENT_TYPE_PROPERTY); getHttpHeaders().putSingle(HttpHeaders.CONTENT_TYPE, m); } } }
package yoiur.package.security; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.ResponseBuilder; import com.sun.jersey.spi.container.ContainerRequest; import com.sun.jersey.spi.container.ContainerResponse; import com.sun.jersey.spi.container.ContainerResponseFilter; public class ResponseCorsFilter implements ContainerResponseFilter { @Override public ContainerResponse filter(ContainerRequest req, ContainerResponse contResp) { ResponseBuilder resp = Response.fromResponse(contResp.getResponse()); resp.header("Access-Control-Allow-Origin", "*") .header("Access-Control-Allow-Methods", "GET, POST, OPTIONS"); String reqHead = req.getHeaderValue("Access-Control-Request-Headers"); if(null != reqHead && !reqHead.equals("")){ resp.header("Access-Control-Allow-Headers", reqHead); } contResp.setResponse(resp.build()); return contResp; } }