1 17 package org.apache.geronimo.console.keystores; 18 19 import org.apache.commons.logging.Log; 20 import org.apache.commons.logging.LogFactory; 21 import org.apache.geronimo.console.MultiPageModel; 22 import org.apache.geronimo.management.geronimo.KeystoreException; 23 import org.apache.geronimo.util.CertificateUtil; 24 25 import javax.portlet.ActionRequest; 26 import javax.portlet.ActionResponse; 27 import javax.portlet.PortletException; 28 import javax.portlet.RenderRequest; 29 import javax.portlet.RenderResponse; 30 31 import java.io.ByteArrayInputStream ; 32 import java.io.IOException ; 33 import java.io.InputStream ; 34 import java.security.NoSuchAlgorithmException ; 35 import java.security.cert.CertificateException ; 36 import java.security.cert.CertificateFactory ; 37 import java.security.cert.X509Certificate ; 38 import java.text.SimpleDateFormat ; 39 import java.util.Collection ; 40 41 46 public class ConfirmCertificateHandler extends BaseKeystoreHandler { 47 private final static Log log = LogFactory.getLog(ConfirmCertificateHandler.class); 48 49 public ConfirmCertificateHandler() { 50 super(CONFIRM_CERTIFICATE, "/WEB-INF/view/keystore/confirmCertificate.jsp"); 51 } 52 53 public String actionBeforeView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException { 54 return getMode(); 55 } 56 57 public void renderView(RenderRequest request, RenderResponse response, MultiPageModel model) throws PortletException, IOException { 58 SimpleDateFormat sdf = new SimpleDateFormat ("MM/dd/yyyy"); 59 request.setAttribute("id", request.getParameter("id")); 60 request.setAttribute("alias", request.getParameter("alias")); 61 66 String certificate = request.getParameter("certificate"); 67 request.setAttribute("certificate", certificate); 68 InputStream is = new ByteArrayInputStream (certificate.getBytes()); 69 try { 70 CertificateFactory cf = CertificateFactory.getInstance("X.509"); 71 Collection certificates = cf.generateCertificates(is); 72 X509Certificate cert = (X509Certificate ) certificates.iterator().next(); 73 request.setAttribute("fingerprint", CertificateUtil.generateFingerprint(cert, "MD5")); 74 request.setAttribute("issuer", cert.getIssuerDN().getName()); 75 request.setAttribute("subject", cert.getSubjectDN().getName()); 76 request.setAttribute("serial", cert.getSerialNumber()); 77 request.setAttribute("validStart", sdf.format(cert.getNotBefore())); 78 request.setAttribute("validEnd", sdf.format(cert.getNotAfter())); 79 } catch (CertificateException e) { 80 log.error("Unable to process uploaded certificate", e); 81 } catch (NoSuchAlgorithmException e) { 82 log.error("Unable to process uploaded certificate", e); 83 } 84 } 85 86 public String actionAfterView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException { 87 String id = request.getParameter("id"); 88 String alias = request.getParameter("alias"); 89 String certificate = request.getParameter("certificate"); 90 if(id == null || id.equals("") || alias == null || alias.equals("") || certificate == null || certificate.equals("")) { 91 return LIST_MODE+BEFORE_ACTION; } 93 KeystoreData data = ((KeystoreData) request.getPortletSession(true).getAttribute(KEYSTORE_DATA_PREFIX + id)); 94 try { 95 data.importTrustCert(certificate, alias); 96 } catch (KeystoreException e) { 97 throw new PortletException(e); 98 } 99 response.setRenderParameter("id", id); 100 return VIEW_KEYSTORE+BEFORE_ACTION; 101 } 102 } 103 | Popular Tags |