1 package io.undertow.server.handlers;
2
3 import java.util.Collections;
4 import java.util.Map;
5 import java.util.Set;
6
7 import io.undertow.server.HandlerWrapper;
8 import io.undertow.server.HttpHandler;
9 import io.undertow.server.HttpServerExchange;
10 import io.undertow.server.handlers.builder.HandlerBuilder;
11 import io.undertow.util.Headers;
12
13
20 public class DisableCacheHandler implements HttpHandler {
21
22 private final HttpHandler next;
23
24 public DisableCacheHandler(HttpHandler next) {
25 this.next = next;
26 }
27
28 @Override
29 public void handleRequest(HttpServerExchange exchange) throws Exception {
30 exchange.getResponseHeaders().add(Headers.CACHE_CONTROL, "no-cache, no-store, must-revalidate");
31 exchange.getResponseHeaders().add(Headers.PRAGMA, "no-cache");
32 exchange.getResponseHeaders().add(Headers.EXPIRES, "0");
33 next.handleRequest(exchange);
34 }
35
36 public static class Builder implements HandlerBuilder {
37
38 @Override
39 public String name() {
40 return "disable-cache";
41 }
42
43 @Override
44 public Map<String, Class<?>> parameters() {
45 return Collections.emptyMap();
46 }
47
48 @Override
49 public Set<String> requiredParameters() {
50 return Collections.emptySet();
51 }
52
53 @Override
54 public String defaultParameter() {
55 return null;
56 }
57
58 @Override
59 public HandlerWrapper build(Map<String, Object> config) {
60 return new Wrapper();
61 }
62
63 }
64
65 private static class Wrapper implements HandlerWrapper {
66 @Override
67 public HttpHandler wrap(HttpHandler handler) {
68 return new DisableCacheHandler(handler);
69 }
70 }
71 }
72