/** * This work was created by participants in the DataONE project, and is * jointly copyrighted by participating institutions in DataONE. For * more information on DataONE, see our web site at http://dataone.org. * * Copyright ${year} * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * $Id: D1TestServlet.java 15577 2015-05-08 16:53:19Z leinfelder $ */ package org.dataone.portal.servlets.myproxy; import static edu.uiuc.ncsa.security.util.pkcs.CertUtil.toPEM; import java.io.PrintWriter; import java.security.cert.X509Certificate; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.dataone.portal.PortalCertificateManager; import edu.uiuc.ncsa.myproxy.oa4mp.client.servlet.ClientServlet; /** * <p>Created by Ben Leinfelder<br> */ public class D1TestServlet extends ClientServlet { protected void doIt(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Throwable { // get the certificate, if we have it X509Certificate certificate = PortalCertificateManager.getInstance().getCertificate(httpServletRequest); String subject = "NONE FOUND"; if (certificate != null) { subject = certificate.getSubjectDN().toString(); } httpServletResponse.setContentType("text/html"); PrintWriter pw = httpServletResponse.getWriter(); /* Put the key and certificate in the result, but allow them to be initially hidden. */ String y = "<html>\n" + "<style type=\"text/css\">\n" + ".hidden { display: none; }\n" + ".unhidden { display: block; }\n" + "</style>\n" + "<script type=\"text/javascript\">\n" + "function unhide(divID) {\n" + " var item = document.getElementById(divID);\n" + " if (item) {\n" + " item.className=(item.className=='hidden')?'unhidden':'hidden';\n" + " }\n" + "}\n" + "</script>\n" + "<body>\n" + "<h1>Authentication information</h1>\n" + "<p>This is the DataONE certificate associated with your session.</p>\n" + "<ul>\n" + " <li><a href=\"javascript:unhide('showKey');\">Show/Hide subject</a></li>\n" + " <div id=\"showKey\" class=\"unhidden\">\n" + " <p><pre>" + subject + "</pre>\n" + " </div>\n"; if (certificate != null) { y += " <li><a href=\"javascript:unhide('showCert');\">Show/Hide certificate</a></li>\n" + " <div id=\"showCert\" class=\"hidden\">\n" + " <p><pre>" + toPEM(certificate) + "</pre>\n" + " </div>\n"; } y += "\n" + "</ul>\n" + "<form name=\"input\" action=" + httpServletRequest.getContextPath() + "/ method=\"get\">\n" + " <input type=\"submit\" value=\"Return to portal\" />\n" + "</form>" + "</body>\n" + "</html>"; pw.println(y); pw.flush(); } }