1 18 package org.apache.geronimo.console.ca; 19 20 import java.io.ByteArrayInputStream ; 21 import java.io.IOException ; 22 import java.util.Map ; 23 import java.util.Properties ; 24 25 import javax.portlet.ActionRequest; 26 import javax.portlet.ActionResponse; 27 import javax.portlet.PortletException; 28 import javax.portlet.RenderRequest; 29 import javax.portlet.RenderResponse; 30 31 import org.apache.commons.logging.Log; 32 import org.apache.commons.logging.LogFactory; 33 import org.apache.geronimo.console.MultiPageModel; 34 import org.apache.geronimo.management.geronimo.CertificateRequestStore; 35 import org.apache.geronimo.util.CaUtils; 36 import org.apache.geronimo.util.asn1.x509.X509Name; 37 38 43 public class ListRequestsIssueHandler extends BaseCAHandler { 44 private final static Log log = LogFactory.getLog(ListRequestsIssueHandler.class); 45 public ListRequestsIssueHandler() { 46 super(LIST_REQUESTS_ISSUE_MODE, "/WEB-INF/view/ca/listRequestsIssue.jsp"); 47 } 48 49 public String actionBeforeView(ActionRequest request, ActionResponse 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) response.setRenderParameter(params[i], value); 54 } 55 return getMode(); 56 } 57 58 public void renderView(RenderRequest request, RenderResponse response, MultiPageModel model) throws PortletException, IOException { 59 String [] params = {ERROR_MSG, INFO_MSG}; 60 for(int i = 0; i < params.length; ++i) { 61 String value = request.getParameter(params[i]); 62 if(value != null) request.setAttribute(params[i], value); 63 } 64 CertificateRequestStore csrStore = getCertificateRequestStore(request); 65 String [] csrIds = csrStore.getVerifiedRequestIds(); 66 request.setAttribute("csrIds", csrIds); 67 } 68 69 public String actionAfterView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException { 70 String errorMsg = null; 71 String requestId = request.getParameter("requestId"); 72 try { 73 response.setRenderParameter("requestId", requestId); 74 String certreq = getCertificateRequestStore(request).getRequest(requestId); 76 if(certreq.startsWith(CaUtils.CERT_REQ_HEADER)) { 77 Map certReqMap = CaUtils.processPKCS10Request(certreq); 79 response.setRenderParameter("subject", certReqMap.get(CaUtils.CERT_REQ_SUBJECT).toString()); 81 response.setRenderParameter("publickey", certReqMap.get(CaUtils.CERT_REQ_PUBLICKEY_OBJ).toString()); 82 } else { 83 Properties csrProps = new Properties (); 85 csrProps.load(new ByteArrayInputStream (certreq.getBytes())); 86 String spkac = csrProps.getProperty("SPKAC"); 87 String cn = csrProps.getProperty("CN"); 88 String ou = csrProps.getProperty("OU"); 89 String o = csrProps.getProperty("O"); 90 String l = csrProps.getProperty("L"); 91 String st = csrProps.getProperty("ST"); 92 String c = csrProps.getProperty("C"); 93 X509Name subject = CaUtils.getX509Name(cn, ou, o, l, st, c); 94 Map certReqMap = CaUtils.processSPKAC(spkac); 95 response.setRenderParameter("subject", subject.toString()); 97 response.setRenderParameter("publickey", certReqMap.get(CaUtils.CERT_REQ_PUBLICKEY_OBJ).toString()); 98 } 99 return CERT_REQ_DETAILS_MODE+BEFORE_ACTION; 100 } catch(Exception e) { 101 errorMsg = e.toString(); 102 log.error("Errors while processing a Certificate Request. id="+requestId, e); 103 } 104 response.setRenderParameter(ERROR_MSG, errorMsg); 105 return getMode()+BEFORE_ACTION; 106 } 107 } 108 | Popular Tags |