KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sslexplorer > keystore > wizards > types > _3SPPurchaseImportType


1 package com.sslexplorer.keystore.wizards.types;
2
3 import java.io.File JavaDoc;
4 import java.io.FileInputStream JavaDoc;
5 import java.io.FilenameFilter JavaDoc;
6 import java.security.cert.Certificate JavaDoc;
7 import java.security.cert.X509Certificate JavaDoc;
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 /**
25  * Implementation of {@link com.sslexplorer.keystore.wizards.AbstractKeyStoreImportType}
26  * for the _3SPPurchaseImportType.
27  *
28  * @author James D Robinson <a HREF="mailto:james@3sp.com">&lt;james@3sp.com&gt;</a>
29  *
30  */

31 public class _3SPPurchaseImportType extends AbstractKeyStoreImportType {
32
33     /**
34      * Constant for importing a reply from a CA
35      */

36     public final static String JavaDoc _3SP_PURCHASE = "3spPurchase";
37     
38     /**
39      * Constructor
40      */

41     public _3SPPurchaseImportType() {
42         super(_3SP_PURCHASE, "keystore", false, false, 1);
43     }
44
45     /* (non-Javadoc)
46      * @see com.sslexplorer.keystore.wizards.AbstractKeyStoreImportType#doInstall(java.io.File, java.lang.String, java.lang.String, com.sslexplorer.wizard.AbstractWizardSequence)
47      */

48     public void doInstall(File JavaDoc file, String JavaDoc alias, String JavaDoc passphrase,
49             AbstractWizardSequence seq, SessionInfo sessionInfo) throws Exception JavaDoc {
50
51         
52         KeyStoreManager mgr = KeyStoreManager.getInstance(KeyStoreManager.DEFAULT_KEY_STORE);
53         
54         X509Certificate JavaDoc web = (X509Certificate JavaDoc) mgr.getCertificate(Property.getProperty(new ContextKey("webServer.alias")));
55
56         final String JavaDoc actualCert = KeyStoreManager.getX509CertificateEntity(web, "cn").replaceAll("\\.", "_") + ".crt";
57
58         File JavaDoc parent = new File JavaDoc(file.getParentFile(), "comodo");
59         
60         Util.delTree(parent);
61         parent.mkdirs();
62         
63         try {
64             ZipExtract.extractZipFile(parent, new FileInputStream JavaDoc(file));
65             
66             String JavaDoc[] certs = parent.list(new FilenameFilter JavaDoc() {
67                 public boolean accept(File JavaDoc file, String JavaDoc filename) {
68                     return filename.endsWith(".crt") && (!filename.equals(actualCert) && !filename.equals(actualCert.replaceAll("\\*", "STAR")));
69                 }
70             });
71             String JavaDoc pw = Property.getProperty(new ContextKey("webServer.keystore.sslCertificate.password"));
72     
73             for(int i=0;i<certs.length;i++) {
74                 File JavaDoc tmp = new File JavaDoc(parent, certs[i]);
75                 mgr.importCert(tmp.getName().toLowerCase(), tmp, pw);
76                 
77                 Certificate JavaDoc 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 JavaDoc)certif, "cn"))
83                                 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_ORGANISATIONAL_UNIT, KeyStoreManager.getX509CertificateEntity((X509Certificate JavaDoc)certif, "ou"))
84                                 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_COMPANY, KeyStoreManager.getX509CertificateEntity((X509Certificate JavaDoc)certif, "o"))
85                                 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_STATE, KeyStoreManager.getX509CertificateEntity((X509Certificate JavaDoc)certif, "st"))
86                                 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_LOCATION, KeyStoreManager.getX509CertificateEntity((X509Certificate JavaDoc)certif, "l"))
87                                 .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_COUNTRY_CODE, KeyStoreManager.getX509CertificateEntity((X509Certificate JavaDoc)certif, "c"));
88                 
89                  CoreServlet.getServlet().fireCoreEvent(coreEvent);
90     
91             }
92             
93             File JavaDoc cert = new File JavaDoc(parent, actualCert);
94             
95             mgr.importCert(Property.getProperty(new ContextKey("webServer.alias")), cert, pw);
96             mgr.reloadKeystore();
97             Certificate JavaDoc 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 JavaDoc)certif, "cn"))
104                             .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_ORGANISATIONAL_UNIT, KeyStoreManager.getX509CertificateEntity((X509Certificate JavaDoc)certif, "ou"))
105                             .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_COMPANY, KeyStoreManager.getX509CertificateEntity((X509Certificate JavaDoc)certif, "o"))
106                             .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_STATE, KeyStoreManager.getX509CertificateEntity((X509Certificate JavaDoc)certif, "st"))
107                             .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_LOCATION, KeyStoreManager.getX509CertificateEntity((X509Certificate JavaDoc)certif, "l"))
108                             .addAttribute(CoreAttributeConstants.EVENT_ATTR_CERTIFICATE_COUNTRY_CODE, KeyStoreManager.getX509CertificateEntity((X509Certificate JavaDoc)certif, "c")));
109             
110             Property.setProperty(new ContextKey("webServer.disableCertificateWarning"), true, sessionInfo);
111             
112         } finally {
113             Util.delTree(parent);
114         }
115     }
116 }
Popular Tags