import org.cacert.gigi.pages.LoginPage;
import org.cacert.gigi.pages.MainPage;
import org.cacert.gigi.pages.Page;
-import org.cacert.gigi.pages.PolicyRedir;
import org.cacert.gigi.pages.TestSecure;
import org.cacert.gigi.pages.Verify;
import org.cacert.gigi.pages.account.MailAdd;
pages.put(MailCertificates.PATH, new MailCertificates());
pages.put(MyDetails.PATH, new MyDetails());
pages.put(RegisterPage.PATH, new RegisterPage());
- pages.put(PolicyRedir.PATH, new PolicyRedir());
pages.put(MailOverview.DEFAULT_PATH, new MailOverview(
"My email addresses"));
pages.put(MailAdd.DEFAULT_PATH, new MailAdd("Add new email"));
import javax.net.ssl.SSLEngine;
import javax.net.ssl.SSLParameters;
import javax.net.ssl.TrustManagerFactory;
-
import org.cacert.gigi.natives.SetUID;
import org.cacert.gigi.util.CipherInfo;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.SslConnectionFactory;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.server.handler.HandlerList;
+import org.eclipse.jetty.server.handler.HandlerWrapper;
import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
return servlet;
}
- private static ContextHandler generateStaticContext() {
- ResourceHandler rh = new ResourceHandler();
+ private static Handler generateStaticContext() {
+ final ResourceHandler rh = new ResourceHandler();
rh.setResourceBase("static");
+ HandlerWrapper hw = new PolicyRedirector();
+ hw.setHandler(rh);
+
ContextHandler ch = new ContextHandler();
- ch.setHandler(rh);
ch.setContextPath("/static");
+ ch.setHandler(hw);
+
return ch;
}
--- /dev/null
+package org.cacert.gigi;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.eclipse.jetty.server.Request;
+import org.eclipse.jetty.server.handler.HandlerWrapper;
+
+public class PolicyRedirector extends HandlerWrapper {
+ @Override
+ public void handle(String target, Request baseRequest,
+ HttpServletRequest request, HttpServletResponse response)
+ throws IOException, ServletException {
+ if (target.startsWith("/policy/") && target.endsWith(".php")) {
+ target = target.replace(".php", ".html");
+ response.sendRedirect("/static" + target);
+ baseRequest.setHandled(true);
+ return;
+ }
+ super.handle(target, baseRequest, request, response);
+ }
+}
+++ /dev/null
-package org.cacert.gigi.pages;
-
-import java.io.IOException;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-public class PolicyRedir extends Page {
- public PolicyRedir() {
- super("Policy");
- }
-
- public static final String PATH = "/policy/*";
- @Override
- public boolean beforeTemplate(HttpServletRequest req,
- HttpServletResponse resp) throws IOException {
- String substring = req.getPathInfo().substring(PATH.length() - 1);
- resp.sendRedirect("/static/policy/"
- + substring.replace(".php", ".html"));
- return true;
- }
- @Override
- public boolean needsLogin() {
- return false;
- }
- @Override
- public void doGet(HttpServletRequest req, HttpServletResponse resp)
- throws IOException {
-
- }
-
-}