name.static=static.cacert.local
name.secure=secure.cacert.local
name.www=www.cacert.local
+name.api=api.cacert.local
+
port=443
#emailProvider=org.cacert.gigi.email.Sendmail
emailProvider=org.cacert.gigi.email.CommandlineEmailProvider
name.static=static.cacert.local
name.secure=secure.cacert.local
name.www=www.cacert.local
+name.api=api.cacert.local
sql.driver=com.mysql.jdbc.Driver
sql.url=jdbc:mysql://localhost:3306/cacert
sql.user=cacert
import javax.net.ssl.SSLParameters;
import javax.net.ssl.SSLSession;
+import org.cacert.gigi.api.GigiAPI;
import org.cacert.gigi.natives.SetUID;
import org.cacert.gigi.util.CipherInfo;
import org.cacert.gigi.util.ServerConstants;
HandlerList hl = new HandlerList();
hl.setHandlers(new Handler[]{generateStaticContext(),
- generateGigiContext(conf.getMainProps())});
+ generateGigiContext(conf.getMainProps()), generateAPIContext()});
s.setHandler(hl);
s.start();
if (connector.getPort() <= 1024
secureContextFactory.setNeedClientAuth(true);
final SslContextFactory staticContextFactory = generateSSLContextFactory(
conf, "static");
+ final SslContextFactory apiContextFactory = generateSSLContextFactory(
+ conf, "api");
try {
secureContextFactory.start();
staticContextFactory.start();
+ apiContextFactory.start();
} catch (Exception e) {
e.printStackTrace();
}
e2 = staticContextFactory.newSSLEngine();
} else if (hostname.equals("secure.cacert.local")) {
e2 = secureContextFactory.newSSLEngine();
+ } else if (hostname.equals("api.cacert.local")) {
+ e2 = apiContextFactory.newSSLEngine();
}
break;
}
return ch;
}
+ private static Handler generateAPIContext() {
+ ServletContextHandler sch = new ServletContextHandler();
+
+ sch.addVirtualHosts(new String[]{ServerConstants.getApiHostName()});
+ sch.addServlet(new ServletHolder(new GigiAPI()), "/*");
+ return sch;
+ }
+
private static SslContextFactory generateSSLContextFactory(GigiConfig conf,
String alias) throws GeneralSecurityException, IOException {
SslContextFactory scf = new SslContextFactory() {
--- /dev/null
+package org.cacert.gigi.api;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+public class GigiAPI extends HttpServlet {
+ @Override
+ protected void service(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ String pi = req.getPathInfo();
+ if (pi == null) {
+ return;
+ }
+ }
+}
private static String wwwHostName = "www.cacert.local";
private static String secureHostName = "secure.cacert.local";
private static String staticHostName = "static.cacert.local";
+ private static String apiHostName = "api.cacert.local";
private static String port;
public static void init(Properties conf) {
port = "";
wwwHostName = conf.getProperty("name.www");
secureHostName = conf.getProperty("name.secure");
staticHostName = conf.getProperty("name.static");
+ apiHostName = conf.getProperty("name.api");
}
public static String getSecureHostName() {
return secureHostName;
public static String getWwwHostName() {
return wwwHostName;
}
+ public static String getApiHostName() {
+ return apiHostName;
+ }
public static String getSecureHostNamePort() {
return secureHostName + port;
}
public static String getWwwHostNamePort() {
return wwwHostName + port;
}
+ public static String getApiHostNamePort() {
+ return apiHostName + port;
+ }
}