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 23 import javax.portlet.ActionRequest; 24 import javax.portlet.ActionResponse; 25 import javax.portlet.PortletException; 26 import javax.portlet.RenderRequest; 27 import javax.portlet.RenderResponse; 28 import java.io.IOException ; 29 30 35 public class UnlockKeystoreHandler extends BaseKeystoreHandler { 36 private final static Log log = LogFactory.getLog(UnlockKeystoreHandler.class); 37 public UnlockKeystoreHandler() { 38 super(UNLOCK_KEYSTORE_FOR_USAGE, "/WEB-INF/view/keystore/unlockKeystore.jsp"); 39 } 40 41 public String actionBeforeView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException { 42 String keystore = request.getParameter("keystore"); 43 if(keystore != null) { 44 response.setRenderParameter("keystore", keystore); 45 } return getMode(); 47 } 48 49 public void renderView(RenderRequest request, RenderResponse response, MultiPageModel model) throws PortletException, IOException { 50 String [] params = {ERROR_MSG, INFO_MSG}; 51 for(int i = 0; i < params.length; ++i) { 52 String value = request.getParameter(params[i]); 53 if(value != null) request.setAttribute(params[i], value); 54 } 55 String keystore = request.getParameter("keystore"); 56 request.setAttribute("keystore", keystore); 57 request.setAttribute("mode", "unlockKeystore"); 58 KeystoreData data = ((KeystoreData) request.getPortletSession(true).getAttribute(KEYSTORE_DATA_PREFIX + keystore)); 59 request.setAttribute("keys", data.getKeys()); 60 } 61 62 public String actionAfterView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException { 63 String keystore = request.getParameter("keystore"); 64 String password = request.getParameter("password"); 65 String alias = request.getParameter("keyAlias"); 66 String keyPassword = request.getParameter("keyPassword"); 67 if(keystore == null || keystore.equals("")) { 68 return getMode(); } else if(password == null) { 70 response.setRenderParameter("keystore", keystore); 71 return getMode(); 72 } 73 KeystoreData data = ((KeystoreData) request.getPortletSession(true).getAttribute(KEYSTORE_DATA_PREFIX + keystore)); 74 char[] storePass = password.toCharArray(); 75 try { 76 data.unlockUse(storePass); 77 if(data.getKeys() != null && data.getKeys().length > 0) { 78 data.unlockPrivateKey(alias, keyPassword.toCharArray()); 80 } else if (data.getInstance().listPrivateKeys(storePass) != null && data.getInstance().listPrivateKeys(storePass).length > 0) { 81 response.setRenderParameter("keystore", keystore); 83 response.setRenderParameter("password", password); 84 return UNLOCK_KEY+BEFORE_ACTION; 85 } } catch (Exception e) { 87 response.setRenderParameter(ERROR_MSG, "Unable to unlock keystore '"+keystore+"' for availability. "+e.toString()); 88 log.error("Unable to unlock keystore '"+keystore+"' for availability.", e); 89 return getMode()+BEFORE_ACTION; 90 } 91 response.setRenderParameter(INFO_MSG, "Successfully unlocked keystore '"+keystore+"' for availability."); 92 return LIST_MODE+BEFORE_ACTION; 93 } 94 } 95 | Popular Tags |