Allow pages to add HTTP headers to the response.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Sat, 6 Dec 2014 22:07:44 +0000 (23:07 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Sat, 6 Dec 2014 22:07:44 +0000 (23:07 +0100)
src/main/java/net/pterodactylus/sone/web/page/FreenetTemplatePage.java

index 40e19b1..14e48ac 100644 (file)
@@ -33,6 +33,7 @@ import java.util.logging.Logger;
 import net.pterodactylus.util.template.Template;
 import net.pterodactylus.util.template.TemplateContext;
 import net.pterodactylus.util.template.TemplateContextFactory;
+import net.pterodactylus.util.web.Header;
 import net.pterodactylus.util.web.Method;
 import net.pterodactylus.util.web.Page;
 import net.pterodactylus.util.web.RedirectResponse;
@@ -168,6 +169,12 @@ public class FreenetTemplatePage implements FreenetPage, LinkEnabledCallback {
 
                postProcess(request, templateContext);
 
+               for (Header header : getAdditionalHeaders(request)) {
+                       for (String value : header) {
+                               response.addHeader(header.getName(), value);
+                       }
+               }
+
                return response.setStatusCode(200).setStatusText("OK").setContentType("text/html").write(pageNode.outer.generate());
        }
 
@@ -236,6 +243,10 @@ public class FreenetTemplatePage implements FreenetPage, LinkEnabledCallback {
                return null;
        }
 
+       protected Iterable<Header> getAdditionalHeaders(FreenetRequest request) {
+               return Collections.emptyList();
+       }
+
        /**
         * Returns additional &lt;link&gt; nodes for the HTML’s &lt;head&gt; node.
         *