KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sslexplorer > keystore > actions > DownloadServerCertificateCSRAction


1 /*
2  * SSL-Explorer
3  *
4  * Copyright (C) 2003-2006 3SP LTD. All Rights Reserved
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2 of
9  * the License, or (at your option) any later version.
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public
16  * License along with this program; if not, write to the Free Software
17  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  */

19             
20 package com.sslexplorer.keystore.actions;
21
22 import java.io.File JavaDoc;
23 import java.io.FileWriter JavaDoc;
24
25 import javax.servlet.http.HttpServletRequest JavaDoc;
26 import javax.servlet.http.HttpServletResponse JavaDoc;
27
28 import org.apache.struts.action.ActionForm;
29 import org.apache.struts.action.ActionForward;
30 import org.apache.struts.action.ActionMapping;
31
32 import com.sslexplorer.boot.ContextKey;
33 import com.sslexplorer.boot.KeyStoreManager;
34 import com.sslexplorer.core.CoreUtil;
35 import com.sslexplorer.core.FileDownloadPageInterceptListener;
36 import com.sslexplorer.core.actions.AuthenticatedAction;
37 import com.sslexplorer.keystore.CSRDownload;
38 import com.sslexplorer.policyframework.Permission;
39 import com.sslexplorer.policyframework.PolicyConstants;
40 import com.sslexplorer.properties.Property;
41 import com.sslexplorer.security.SessionInfo;
42
43 /**
44  * Action for downloading a certificate
45  *
46  * @author James D Robinson <a HREF="mailto:james@3sp.com">&lt;james@3sp.com&gt;</a>
47  *
48  */

49 public class DownloadServerCertificateCSRAction extends AuthenticatedAction {
50
51     /**
52      * Constructor
53      */

54     public DownloadServerCertificateCSRAction() {
55         super(PolicyConstants.KEYSTORE_RESOURCE_TYPE, new Permission[] {
56                         PolicyConstants.PERM_CHANGE
57         });
58     }
59
60     /* (non-Javadoc)
61      * @see com.sslexplorer.core.actions.AuthenticatedAction#onExecute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
62      */

63     public ActionForward onExecute(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request,
64                     HttpServletResponse JavaDoc response) throws Exception JavaDoc {
65         FileDownloadPageInterceptListener l = (FileDownloadPageInterceptListener) CoreUtil.getPageInterceptListenerById(request
66                         .getSession(), "fileDownload");
67         if (l == null) {
68             l = new FileDownloadPageInterceptListener();
69             CoreUtil.addPageInterceptListener(request.getSession(), l);
70         }
71         File JavaDoc f = new File JavaDoc(CoreUtil.getTempDownloadDirectory(getSessionInfo(request)), "server.csr");
72         String JavaDoc pw = Property.getProperty(new ContextKey("webServer.keystore.sslCertificate.password"));
73         String JavaDoc data = KeyStoreManager.getInstance(KeyStoreManager.DEFAULT_KEY_STORE).generateCSR(Property.getProperty(new ContextKey("webServer.alias")), pw);
74         FileWriter JavaDoc fos = new FileWriter JavaDoc(f);
75         fos.write(data);
76         fos.flush();
77         fos.close();
78         l.addDownload(new CSRDownload(f, f.getName(), "application/octet-stream", mapping.findForward("success"),
79                         "downloadCSR.message", "keystore"));
80         return mapping.findForward("success");
81     }
82
83     /* (non-Javadoc)
84      * @see com.sslexplorer.core.actions.AuthenticatedAction#getNavigationContext(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
85      */

86     public int getNavigationContext(ActionMapping mapping, ActionForm form, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) {
87         return SessionInfo.MANAGEMENT_CONSOLE_CONTEXT;
88     }
89
90 }
91
Popular Tags