public RestxResponse setHeader(String headerName, String header) { restxResponse.setHeader(headerName, header); return this; }
public RestxResponse setHeader(String headerName, String header) { restxResponse.setHeader(headerName, header); return this; }
@Override public void handle(RestxRequestMatch match, RestxRequest req, RestxResponse resp, RestxContext ctx) throws IOException { AcceptedCORS cors = (AcceptedCORS) match.getOtherParams().get("cors"); resp.setHeader("Access-Control-Allow-Origin", cors.getOrigin()); if (!cors.getHeaders().isEmpty()) { resp.setHeader("Access-Control-Allow-Headers", Joiner.on(", ").join(cors.getHeaders())); } if (!cors.getMethods().isEmpty()) { resp.setHeader("Access-Control-Allow-Methods", Joiner.on(", ").join(cors.getMethods())); } if (cors.getAllowCredentials().or(false)) { resp.setHeader("Access-Control-Allow-Credentials", "true"); } resp.setHeader("Access-Control-Max-Age", String.valueOf(cors.getMaxAge())); }
@Override public void handle(RestxRequestMatch match, RestxRequest req, RestxResponse resp, RestxContext ctx) throws IOException { AcceptedCORS cors = (AcceptedCORS) match.getOtherParams().get("cors"); resp.setHeader("Access-Control-Allow-Origin", cors.getOrigin()); if (!cors.getHeaders().isEmpty()) { resp.setHeader("Access-Control-Allow-Headers", Joiner.on(", ").join(cors.getHeaders())); } if (!cors.getMethods().isEmpty()) { resp.setHeader("Access-Control-Allow-Methods", Joiner.on(", ").join(cors.getMethods())); } if (cors.getAllowCredentials().or(false)) { resp.setHeader("Access-Control-Allow-Credentials", "true"); } resp.setHeader("Access-Control-Max-Age", String.valueOf(cors.getMaxAge())); }
@Override protected void onEntityOutput(StdRoute stdRoute, RestxRequest req, RestxResponse resp, Optional<?> input, Optional<?> output, ResourceDescription resourceDescription, OperationDescription operationDescription) { if(!output.isPresent()) { return; } ExpiresAfter expiresAfterAnn = operationDescription.findAnnotation(ExpiresAfter.class).get(); Locale currentLocale = Locale.US; DateTime expirationDate = DateTime.now().plus(MorePeriods.parsePeriod(expiresAfterAnn.value(), currentLocale)); String expiresHeaderValue = createRFC1123DateFormat(currentLocale).format(expirationDate.toDate()); resp.setHeader("Expires", expiresHeaderValue); }
@Override public void handle(RestxRequestMatch match, RestxRequest req, RestxResponse resp, RestxContext ctx) throws IOException { AcceptedCORS cors = (AcceptedCORS) match.getOtherParams().get("cors"); resp.setHeader("Access-Control-Allow-Origin", cors.getOrigin()); if (!cors.getHeaders().isEmpty()) { resp.setHeader("Access-Control-Allow-Headers", Joiner.on(", ").join(cors.getHeaders())); } if (!cors.getMethods().isEmpty()) { resp.setHeader("Access-Control-Allow-Methods", Joiner.on(", ").join(cors.getMethods())); } if (cors.getAllowCredentials().or(false)) { resp.setHeader("Access-Control-Allow-Credentials", "true"); } ctx.nextHandlerMatch().handle(req, resp, ctx); }
@Override public void handle(RestxRequestMatch match, RestxRequest req, RestxResponse resp, RestxContext ctx) throws IOException { AcceptedCORS cors = (AcceptedCORS) match.getOtherParams().get("cors"); resp.setHeader("Access-Control-Allow-Origin", cors.getOrigin()); if (!cors.getHeaders().isEmpty()) { resp.setHeader("Access-Control-Allow-Headers", Joiner.on(", ").join(cors.getHeaders())); } if (!cors.getMethods().isEmpty()) { resp.setHeader("Access-Control-Allow-Methods", Joiner.on(", ").join(cors.getMethods())); } if (cors.getAllowCredentials().or(false)) { resp.setHeader("Access-Control-Allow-Credentials", "true"); } ctx.nextHandlerMatch().handle(req, resp, ctx); }
@Override protected void onEntityOutput(StdRoute stdRoute, RestxRequest req, RestxResponse resp, Optional<?> input, Optional<?> output, ResourceDescription resourceDescription, OperationDescription operationDescription) { if(!output.isPresent()) { return; } ExpiresAfter expiresAfterAnn = operationDescription.findAnnotation(ExpiresAfter.class).get(); Locale currentLocale = currentLocaleResolver.guessLocale(req); DateTime expirationDate = DateTime.now().plus(MorePeriods.parsePeriod(expiresAfterAnn.value(), currentLocale)); String expiresHeaderValue = createRFC1123DateFormat(currentLocale).format(expirationDate.toDate()); resp.setHeader("Expires", expiresHeaderValue); }
@Override protected void onEntityOutput(StdRoute stdRoute, RestxRequest req, RestxResponse resp, Optional<?> input, Optional<?> output, ResourceDescription resourceDescription, OperationDescription operationDescription) { if(!output.isPresent()) { return; } LocationHeader locationHeaderAnn = operationDescription.findAnnotation(LocationHeader.class).get(); try { StringWriter locationWriter = new StringWriter(); templatesCache.get(locationHeaderAnn.value()).execute(output.get(), ImmutableMap.of( "_baseUri_", req.getBaseUri(), "_currentUri_", req.getBaseUri()+req.getRestxUri() ), locationWriter); resp.setHeader("Location", locationWriter.toString()); } catch (ExecutionException e) { Throwables.propagate(e); } } }
@Override protected void onEntityOutput(StdRoute stdRoute, RestxRequest req, RestxResponse resp, Optional<?> input, Optional<?> output, ResourceDescription resourceDescription, OperationDescription operationDescription) { if(!output.isPresent()) { return; } LocationHeader locationHeaderAnn = operationDescription.findAnnotation(LocationHeader.class).get(); try { StringWriter locationWriter = new StringWriter(); templatesCache.get(locationHeaderAnn.value()).execute(output.get(), ImmutableMap.of( "_baseUri_", req.getBaseUri(), "_currentUri_", req.getBaseUri()+req.getRestxUri() ), locationWriter); resp.setHeader("Location", locationWriter.toString()); } catch (ExecutionException e) { Throwables.propagate(e); } } }
protected void serveResource(RestxResponse resp, URL resource, String contentType, Map<String, String> headers) throws IOException { resp.setLogLevel(RestxLogLevel.QUIET); resp.setStatus(HttpStatus.OK); for(Map.Entry<String,String> headerEntry: headers.entrySet()) { resp.setHeader(headerEntry.getKey(), headerEntry.getValue()); } resp.setContentType(contentType); Resources.asByteSource(resource).copyTo(resp.getOutputStream()); }
public void handleIn(RestxRequest req, RestxResponse resp) { if (req.getHeader("If-None-Match").equals(Optional.of(value))) { throw new WebException(HttpStatus.NOT_MODIFIED); } else { cacheControl.writeTo(resp); resp.setHeader("ETag", value); } }
protected void serveResource(RestxResponse resp, URL resource, String contentType, Map<String, String> headers) throws IOException { resp.setLogLevel(RestxLogLevel.QUIET); resp.setStatus(HttpStatus.OK); for(Map.Entry<String,String> headerEntry: headers.entrySet()) { resp.setHeader(headerEntry.getKey(), headerEntry.getValue()); } resp.setContentType(contentType); Resources.asByteSource(resource).copyTo(resp.getOutputStream()); }
public void handleIn(RestxRequest req, RestxResponse resp) { if (req.getHeader("If-None-Match").equals(Optional.of(value))) { throw new WebException(HttpStatus.NOT_MODIFIED); } else { cacheControl.writeTo(resp); resp.setHeader("ETag", value); } }