1 19 20 package com.sslexplorer.keystore.actions; 21 22 import java.io.File ; 23 import java.io.FileWriter ; 24 25 import javax.servlet.http.HttpServletRequest ; 26 import javax.servlet.http.HttpServletResponse ; 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 49 public class DownloadServerCertificateCSRAction extends AuthenticatedAction { 50 51 54 public DownloadServerCertificateCSRAction() { 55 super(PolicyConstants.KEYSTORE_RESOURCE_TYPE, new Permission[] { 56 PolicyConstants.PERM_CHANGE 57 }); 58 } 59 60 63 public ActionForward onExecute(ActionMapping mapping, ActionForm form, HttpServletRequest request, 64 HttpServletResponse response) throws Exception { 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 f = new File (CoreUtil.getTempDownloadDirectory(getSessionInfo(request)), "server.csr"); 72 String pw = Property.getProperty(new ContextKey("webServer.keystore.sslCertificate.password")); 73 String data = KeyStoreManager.getInstance(KeyStoreManager.DEFAULT_KEY_STORE).generateCSR(Property.getProperty(new ContextKey("webServer.alias")), pw); 74 FileWriter fos = new FileWriter (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 86 public int getNavigationContext(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { 87 return SessionInfo.MANAGEMENT_CONSOLE_CONTEXT; 88 } 89 90 } 91 | Popular Tags |