1 package com.sslexplorer.keystore.wizards.types; 2 3 import java.io.File ; 4 import java.io.FileInputStream ; 5 import java.io.FilenameFilter ; 6 import java.security.cert.Certificate ; 7 import java.security.cert.X509Certificate ; 8 9 import com.sslexplorer.boot.ContextKey; 10 import com.sslexplorer.boot.KeyStoreManager; 11 import com.sslexplorer.boot.Util; 12 import com.sslexplorer.core.CoreAttributeConstants; 13 import com.sslexplorer.core.CoreEvent; 14 import com.sslexplorer.core.CoreEventConstants; 15 import com.sslexplorer.core.CoreServlet; 16 import com.sslexplorer.keystore.wizards.AbstractKeyStoreImportType; 17 import com.sslexplorer.properties.Property; 18 import com.sslexplorer.properties.impl.systemconfig.SystemConfigKey; 19 import com.sslexplorer.security.LogonControllerFactory; 20 import com.sslexplorer.security.SessionInfo; 21 import com.sslexplorer.util.ZipExtract; 22 import com.sslexplorer.wizard.AbstractWizardSequence; 23 24 31 public class _3SPPurchaseImportType extends AbstractKeyStoreImportType { 32 33 36 public final static String _3SP_PURCHASE = "3spPurchase"; 37 38 41 public _3SPPurchaseImportType() { 42 super(_3SP_PURCHASE, "keystore", false, false, 1); 43 } 44 45 48 public void doInstall(File file, String alias, String passphrase, 49 AbstractWizardSequence seq, SessionInfo sessionInfo) throws Exception { 50 51 52 KeyStoreManager mgr = KeyStoreManager.getInstance(KeyStoreManager.DEFAULT_KEY_STORE); 53 54 X509Certificate web = (X509Certificate ) mgr.getCertificate(Property.getProperty(new ContextKey("webServer.alias"))); 55 56 final String actualCert = KeyStoreManager.getX509CertificateEntity(web, "cn").replaceAll("\\.", "_") + ".crt"; 57 58 File parent = new File (file.getParentFile(), "comodo"); 59 60 Util.delTree(parent); 61 parent.mkdirs(); 62 63 try { 64 ZipExtract.extractZipFile(parent, new FileInputStream (file)); 65 66 String [] certs = parent.list(new FilenameFilter () { 67 public boolean accept(File file, String filename) { 68 return filename.endsWith(".crt") && (!filename.equals(actualCert) && !filename.equals(actualCert.replaceAll("\\*", "STAR"))); 69 } 70 }); 71 String pw = Property.getProperty(new ContextKey("webServer.keystore.sslCertificate.password")); 72 73 for(int i=0;i<certs.length;i++) { 74 File tmp = new File (parent, certs[i]); 75 mgr.importCert(tmp.getName().toLowerCase(), tmp, pw); 76 77 Certificate certif = mgr.getCertificate(tmp.getName().toLowerCase()); 78 79 CoreEvent coreEvent = new CoreEvent(this, CoreEventConstants.KEYSTORE_CERTIFICATE_SIGNED_IMPORTED, Property.getProperty(new ContextKey("webServer.alias")), seq.getSession()) 80 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_ALIAS, tmp.getName()) 81 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_TYPE, certif.getType()) 82 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_HOSTNAME, KeyStoreManager.getX509CertificateEntity((X509Certificate )certif, "cn")) 83 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_ORGANISATIONAL_UNIT, KeyStoreManager.getX509CertificateEntity((X509Certificate )certif, "ou")) 84 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_COMPANY, KeyStoreManager.getX509CertificateEntity((X509Certificate )certif, "o")) 85 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_STATE, KeyStoreManager.getX509CertificateEntity((X509Certificate )certif, "st")) 86 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_LOCATION, KeyStoreManager.getX509CertificateEntity((X509Certificate )certif, "l")) 87 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_COUNTRY_CODE, KeyStoreManager.getX509CertificateEntity((X509Certificate )certif, "c")); 88 89 CoreServlet.getServlet().fireCoreEvent(coreEvent); 90 91 } 92 93 File cert = new File (parent, actualCert); 94 95 mgr.importCert(Property.getProperty(new ContextKey("webServer.alias")), cert, pw); 96 mgr.reloadKeystore(); 97 Certificate certif = mgr.getCertificate(Property.getProperty(new ContextKey("webServer.alias"))); 98 99 CoreServlet.getServlet().fireCoreEvent(new CoreEvent( 100 this, CoreEventConstants.KEYSTORE_CERTIFICATE_SIGNED_IMPORTED, Property.getProperty(new ContextKey("webServer.alias")), seq.getSession()) 101 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_ALIAS, Property.getProperty(new ContextKey("webServer.alias"))) 102 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_TYPE, certif.getType()) 103 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_HOSTNAME, KeyStoreManager.getX509CertificateEntity((X509Certificate )certif, "cn")) 104 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_ORGANISATIONAL_UNIT, KeyStoreManager.getX509CertificateEntity((X509Certificate )certif, "ou")) 105 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_COMPANY, KeyStoreManager.getX509CertificateEntity((X509Certificate )certif, "o")) 106 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_STATE, KeyStoreManager.getX509CertificateEntity((X509Certificate )certif, "st")) 107 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_LOCATION, KeyStoreManager.getX509CertificateEntity((X509Certificate )certif, "l")) 108 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_COUNTRY_CODE, KeyStoreManager.getX509CertificateEntity((X509Certificate )certif, "c"))); 109 110 Property.setProperty(new ContextKey("webServer.disableCertificateWarning"), true, sessionInfo); 111 112 } finally { 113 Util.delTree(parent); 114 } 115 } 116 } | Popular Tags |