Allow pages to add HTTP headers to the response.
[Sone.git] / 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.
         *