summaryrefslogtreecommitdiffstats
path: root/base/tps/src/org/dogtagpki/server/tps/TPSPhoneHome.java
diff options
context:
space:
mode:
authorMatthew Harmsen <mharmsen@redhat.com>2014-09-03 21:07:07 -0700
committerMatthew Harmsen <mharmsen@redhat.com>2014-09-03 21:07:07 -0700
commitabaa8473f51a5c436a2952920625b7447e226b29 (patch)
treee9e731a6e4eb8be63f1a74fffad101332b060afe /base/tps/src/org/dogtagpki/server/tps/TPSPhoneHome.java
parent4dbec5fe960a89b7ced3028e000b5695b6d9aac7 (diff)
downloadpki-abaa8473f51a5c436a2952920625b7447e226b29.tar.gz
pki-abaa8473f51a5c436a2952920625b7447e226b29.tar.xz
pki-abaa8473f51a5c436a2952920625b7447e226b29.zip
Rename pki-tps-tomcat to pki-tps
* PKI TRAC Ticket #1017 - Rename pki-tps-tomcat to pki-tps
Diffstat (limited to 'base/tps/src/org/dogtagpki/server/tps/TPSPhoneHome.java')
-rw-r--r--base/tps/src/org/dogtagpki/server/tps/TPSPhoneHome.java95
1 files changed, 95 insertions, 0 deletions
diff --git a/base/tps/src/org/dogtagpki/server/tps/TPSPhoneHome.java b/base/tps/src/org/dogtagpki/server/tps/TPSPhoneHome.java
new file mode 100644
index 000000000..e0b3b6b87
--- /dev/null
+++ b/base/tps/src/org/dogtagpki/server/tps/TPSPhoneHome.java
@@ -0,0 +1,95 @@
+package org.dogtagpki.server.tps;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.dogtagpki.tps.main.TPSBuffer;
+
+import com.netscape.certsrv.apps.CMS;
+
+public class TPSPhoneHome extends HttpServlet {
+
+ private static final long serialVersionUID = 1864386666927370987L;
+ private static String phoneHomeName = "phoneHome.xml";
+
+ public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
+ //Simply return xml file to the client
+ //In the future we could get this info from elsewhere such as LDAP
+
+ CMS.debug("TPSPhoneHome entering.");
+
+ renderPhoneHome(request, response);
+ }
+
+ private void renderPhoneHome(HttpServletRequest request, HttpServletResponse response) throws ServletException,
+ IOException {
+ ServletOutputStream stream = null;
+ BufferedInputStream buf = null;
+ FileInputStream input = null;
+
+ try {
+
+ stream = response.getOutputStream();
+ response.setContentType("application/xml");
+
+ String confPath = getConfigPath();
+
+ confPath += File.separator + phoneHomeName;
+
+ input = new FileInputStream(confPath);
+ // InputStream input = ctx.getResourceAsStream(phoneHomeName);
+ buf = new BufferedInputStream(input);
+
+ int readBytes = 0;
+ TPSBuffer readData = new TPSBuffer();
+ while ((readBytes = buf.read()) != -1) {
+ stream.write(readBytes);
+ readData.add((byte) readBytes);
+ }
+
+ CMS.debug("TPSPhoneHome.renderPhoneHome: data: " + readData.toHexString());
+
+ } catch (IOException e) {
+ CMS.debug("TPSPhoneHome.renderPhoneHome: Error encountered: " + e);
+ throw new ServletException("TPSPhoneHome.renderPhoneHome: Error encountered: " + e);
+ } finally {
+ if (stream != null)
+ stream.close();
+ if (buf != null)
+ buf.close();
+ if (input != null)
+ input.close();
+ }
+
+ }
+
+ private String getConfigPath() {
+
+ String path = null;
+ String context = getServletContext().getContextPath();
+
+ // get subsystem name by removing the / prefix from the context
+ String subsystem = context.startsWith("/") ? context.substring(1) : context;
+
+ // catalina.base points to instance dir
+ String instanceDir = System.getProperty("catalina.base");
+
+ //Finish off path of conf directory
+ path = instanceDir + File.separator + "conf" + File.separator +
+ subsystem + File.separator;
+
+ CMS.debug("TPSPhoneHome.getConfigPath: returning: " + path);
+
+ return path;
+
+ }
+
+}