protected Action getAction(ContainerRequest request) { Action action; switch (request.getMethod()) { case "GET": case "HEAD": action = Action.READ; break; default: action = Action.WRITE; } return action; } }
private void commitWrite() throws IOException { if (!isCommitted) { if (getStatus() == 204) setStatus(200); isCommitted = true; o = responseWriter.writeStatusAndHeaders(size, ContainerResponse.this); } }
public void onReload() { WebApplication oldApplication = application; application = application.clone(); if (application.getFeaturesAndProperties() instanceof ReloadListener) ((ReloadListener) application.getFeaturesAndProperties()).onReload(); oldApplication.destroy(); } }
@Override public ContainerRequest filter( ContainerRequest containerRequest ) { String xForwardedHost = containerRequest.getHeaderValue( X_FORWARD_HOST_HEADER_KEY ); String xForwardedProto = containerRequest.getHeaderValue( X_FORWARD_PROTO_HEADER_KEY ); URI externalBaseUri = XForwardUtil.externalUri( containerRequest.getBaseUri(), xForwardedHost, xForwardedProto ); URI externalRequestUri = XForwardUtil.externalUri( containerRequest.getRequestUri(), xForwardedHost, xForwardedProto ); containerRequest.setUris( externalBaseUri, externalRequestUri ); return containerRequest; } }
package your.package; public class CORSFilter implements ContainerResponseFilter { @Override public ContainerResponse filter(ContainerRequest creq, ContainerResponse cresp) { cresp.getHttpHeaders().putSingle("Access-Control-Allow-Origin", "*"); cresp.getHttpHeaders().putSingle("Access-Control-Allow-Credentials", "true"); cresp.getHttpHeaders().putSingle("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, OPTIONS, HEAD"); cresp.getHttpHeaders().putSingle("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With"); return cresp; } }
@Test public void testResourcesFilteringAccess() { setUpMockExpectations(requestPath, true, requestMethod); EasyMock.expect(request.getEntity(Task.class)).andReturn(noopTask).anyTimes(); // As request object is a strict mock the ordering of expected calls matters // therefore adding the expectation below again as getEntity is called before getMethod EasyMock.expect(request.getMethod()).andReturn(requestMethod).anyTimes(); EasyMock.replay(req, request, authorizerMapper); resourceFilter.getRequestFilter().filter(request); }
@Override public Response getResponse() { if (response == null) { setResponse(null); } return response; }
@Test(expected = ForbiddenException.class) public void testDatasourcesResourcesFilteringNoAccess() { setUpMockExpectations(requestPath, false, requestMethod); EasyMock.expect(request.getEntity(Task.class)).andReturn(noopTask).anyTimes(); EasyMock.replay(req, request, authorizerMapper); try { resourceFilter.getRequestFilter().filter(request); } catch (ForbiddenException e) { throw e; } }
@Override public ResourceMethodDispatchProvider adapt( final ResourceMethodDispatchProvider resourceMethodDispatchProvider ) { return abstractResourceMethod -> { final RequestDispatcher requestDispatcher = resourceMethodDispatchProvider.create( abstractResourceMethod ); return new TransactionalRequestDispatcher( database, requestDispatcher ); }; } }
@Test public void testResourcesFilteringAccess() { setUpMockExpectations(requestPath, true, requestMethod); EasyMock.replay(req, request, authorizerMapper); resourceFilter.getRequestFilter().filter(request); EasyMock.verify(req, request, authorizerMapper); }
/** * Get the message body workers. * * @return the message body workers. */ public MessageBodyWorkers getMessageBodyWorkers() { return wa.getMessageBodyWorkers(); }
private void commitClose() throws IOException { if (!isCommitted) { isCommitted = true; o = responseWriter.writeStatusAndHeaders(-1, ContainerResponse.this); } } }
@Override public String getAuthenticationScheme() { return acr.getAuthenticationScheme(); } }
@Override public Throwable getMappedThrowable() { return response.getMappedThrowable(); }
@Override public boolean isCommitted() { return acr.isCommitted(); } }
@Override public OutputStream getOutputStream() throws IOException { if (out == null) out = new CommittingOutputStream(-1); return out; }
@Override public void setContainerRequest(ContainerRequest request) { this.request = request; this.response.setContainerRequest(request); }
@Override public void _dispatch(Object resource, HttpContext context) throws IllegalAccessException, InvocationTargetException { invoker.invoke(method, resource); } }
import com.sun.jersey.spi.container.ContainerRequest; import com.sun.jersey.spi.container.ContainerResponse; import com.sun.jersey.spi.container.ContainerResponseFilter; public class CORSFilter implements ContainerResponseFilter { @Override public ContainerResponse filter(ContainerRequest request, ContainerResponse response) { response.getHttpHeaders().add("Access-Control-Allow-Origin", "*"); response.getHttpHeaders().add("Access-Control-Allow-Headers", "origin, content-type, accept, authorization"); response.getHttpHeaders().add("Access-Control-Allow-Credentials", "true"); response.getHttpHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD"); return response; } }
/** * Get the message body workers. * * @return the message body workers. */ public MessageBodyWorkers getMessageBodyWorkers() { return wa.getMessageBodyWorkers(); }