diff options
author | Matthew Harmsen <mharmsen@redhat.com> | 2014-09-03 21:07:07 -0700 |
---|---|---|
committer | Matthew Harmsen <mharmsen@redhat.com> | 2014-09-03 21:07:07 -0700 |
commit | abaa8473f51a5c436a2952920625b7447e226b29 (patch) | |
tree | e9e731a6e4eb8be63f1a74fffad101332b060afe /base/tps/src/org/dogtagpki/server/tps/TPSPhoneHome.java | |
parent | 4dbec5fe960a89b7ced3028e000b5695b6d9aac7 (diff) | |
download | pki-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.java | 95 |
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; + + } + +} |