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 24 import javax.portlet.ActionRequest; 25 import javax.portlet.ActionResponse; 26 import javax.portlet.PortletException; 27 import javax.portlet.RenderRequest; 28 import javax.portlet.RenderResponse; 29 import java.io.IOException ; 30 31 36 public class EditKeystoreHandler extends BaseKeystoreHandler { 37 private final static Log log = LogFactory.getLog(EditKeystoreHandler.class); 38 public EditKeystoreHandler() { 39 super(UNLOCK_KEYSTORE_FOR_EDITING, "/WEB-INF/view/keystore/unlockKeystore.jsp"); 40 } 41 42 public String actionBeforeView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException { 43 String keystore = request.getParameter("keystore"); 44 if(keystore != null) { 45 response.setRenderParameter("keystore", keystore); 46 } return getMode(); 48 } 49 50 public void renderView(RenderRequest request, RenderResponse response, MultiPageModel model) throws PortletException, IOException { 51 String [] params = {ERROR_MSG, INFO_MSG}; 52 for(int i = 0; i < params.length; ++i) { 53 String value = request.getParameter(params[i]); 54 if(value != null) request.setAttribute(params[i], value); 55 } 56 request.setAttribute("keystore", request.getParameter("keystore")); 57 request.setAttribute("mode", "unlockEdit"); 58 } 59 60 public String actionAfterView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException { 61 String keystore = request.getParameter("keystore"); 62 String password = request.getParameter("password"); 63 if(keystore == null || keystore.equals("")) { 64 return getMode(); } else if(password == null) { 66 response.setRenderParameter("keystore", keystore); 67 return getMode(); 68 } 69 KeystoreData data = ((KeystoreData) request.getPortletSession(true).getAttribute(KEYSTORE_DATA_PREFIX + keystore)); 70 char[] storePass = password.toCharArray(); 71 try { 72 data.unlockEdit(storePass); 73 } catch (KeystoreException e) { 74 response.setRenderParameter(ERROR_MSG, "Unable to unlock keystore "+keystore+" for editing. "+e.toString()); 75 log.error("Unable to unlock keystore "+keystore+" for editing.", e); 76 return getMode()+BEFORE_ACTION; 77 } 78 response.setRenderParameter(INFO_MSG, "Keystore "+keystore+" successfully unlocked for editing."); 79 return LIST_MODE+BEFORE_ACTION; 80 } 81 } 82 | Popular Tags |