@Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { final Response.StatusType responseStatus = responseContext.getStatusInfo(); final String requestPath = requestContext.getUriInfo().getAbsolutePath().getPath(); final List<MediaType> acceptableMediaTypes = requestContext.getAcceptableMediaTypes(); final boolean acceptsHtml = acceptableMediaTypes.stream() .anyMatch(mediaType -> mediaType.isCompatible(MediaType.TEXT_HTML_TYPE) || mediaType.isCompatible(MediaType.APPLICATION_XHTML_XML_TYPE)); final boolean isGetRequest = "get".equalsIgnoreCase(requestContext.getMethod()); if (isGetRequest && responseStatus == Response.Status.NOT_FOUND && acceptsHtml && !requestPath.startsWith("/" + HttpConfiguration.PATH_API)) { final String entity = indexHtmlGenerator.get(requestContext.getHeaders()); responseContext.setStatusInfo(Response.Status.OK); responseContext.setEntity(entity, new Annotation[0], MediaType.TEXT_HTML_TYPE); responseContext.getHeaders().putSingle("X-UA-Compatible", "IE=edge"); } } }
@ResponseStatusCreated @Provider class StatusCreatedFilter implements ContainerResponseFilter { @Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { responseContext.setStatusInfo(Response.Status.CREATED) String location = "..."; // set based on responseContext.getEntity() // or any other properties responseContext.getHeaders().putSingle("Location", location); } }
@Override public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { final Response.StatusType responseStatus = responseContext.getStatusInfo(); final String requestPath = requestContext.getUriInfo().getAbsolutePath().getPath(); final List<MediaType> acceptableMediaTypes = requestContext.getAcceptableMediaTypes(); final boolean acceptsHtml = acceptableMediaTypes.stream() .anyMatch(mediaType -> mediaType.isCompatible(MediaType.TEXT_HTML_TYPE) || mediaType.isCompatible(MediaType.APPLICATION_XHTML_XML_TYPE)); final boolean isGetRequest = "get".equalsIgnoreCase(requestContext.getMethod()); if (isGetRequest && responseStatus == Response.Status.NOT_FOUND && acceptsHtml && requestPath.startsWith(webAppPrefix)) { final String entity = indexHtmlGenerator.get(); responseContext.setStatusInfo(Response.Status.OK); responseContext.setEntity(entity, new Annotation[0], MediaType.TEXT_HTML_TYPE); responseContext.getHeaders().putSingle("X-UA-Compatible", "IE=edge"); } } }
LOGGER.debug("Now: " + DateTime.now().toDate().toString()); responseContext.getHeaders().putSingle("Set-Cookie", getTokenSentence(null)); responseContext.setStatusInfo(Response.Status.UNAUTHORIZED); responseContext.setEntity("Token expired. Please login again."); LOGGER.info("Token expired. Please login again."); responseContext.setStatusInfo(Response.Status.UNAUTHORIZED);
LOGGER.debug("Now: " + DateTime.now().toDate().toString()); responseContext.getHeaders().putSingle("Set-Cookie", getTokenSentence("")); responseContext.setStatusInfo(Response.Status.UNAUTHORIZED); responseContext.setEntity("Token expired. Please login again."); LOGGER.info("Token expired. Please login again."); responseContext.setStatusInfo(Response.Status.UNAUTHORIZED);
responseContext.setStatusInfo(OK); // Needed for method returning void } else { throw new ServerErrorException("Response entity is null. Missing @View annotation? " if (view.startsWith(REDIRECT)) { final String uri = uriInfo.getBaseUri() + view.substring(REDIRECT.length() + 1); responseContext.setStatusInfo(FOUND); responseContext.getHeaders().putSingle(LOCATION_HEADER, uri); responseContext.setEntity(null);
/** * <p>applyStreaming.</p> * * @param requestContext a {@link javax.ws.rs.container.ContainerRequestContext} object. * @param context a {@link javax.ws.rs.ext.WriterInterceptorContext} object. * @throws java.io.IOException if any. */ protected void applyStreaming(ContainerRequestContext requestContext, WriterInterceptorContext context) throws IOException { Object entity = context.getEntity(); StreamingProcess<Object> process = MessageHelper.getStreamingProcess(context.getEntity(), manager); if (process != null) { ContainerResponseContext responseContext = (ContainerResponseContext) requestContext.getProperty(RESP_PROP_N); responseContext.setStatusInfo(Response.Status.PARTIAL_CONTENT); context.getHeaders().putSingle(ACCEPT_RANGES, BYTES_RANGE); context.setType(StreamingOutput.class); context.setEntity(new MediaStreaming( entity, requestContext.getHeaderString(MediaStreaming.RANGE), process, context.getMediaType(), context.getHeaders() ) ); } }
responseContext.setStatusInfo(Response.Status.OK); final String uri = uriInfo.getBaseUri() + noStartingSlash(noPrefix(view, REDIRECT)); if (view.startsWith(REDIRECT)) { responseContext.setStatusInfo(SEE_OTHER); responseContext.getHeaders().putSingle(HttpHeaders.LOCATION, uri); responseContext.setEntity(null);
responseContext.setStatusInfo(OK); // Needed for method returning void } else if (returnType == Void.class) { throw new ServerErrorException(messages.get("VoidControllerNoView", resourceInfo.getResourceMethod()), final String uri = uriInfo.getBaseUri() + noStartingSlash(noPrefix(view, REDIRECT)); if (view.startsWith(REDIRECT)) { responseContext.setStatusInfo(SEE_OTHER); responseContext.getHeaders().putSingle(HttpHeaders.LOCATION, uri); responseContext.setEntity(null);