From 3cd58a98022141da2af4bf0bad29ab1dbdc86fbe Mon Sep 17 00:00:00 2001 From: Jack Magne Date: Wed, 1 Jun 2016 15:05:20 -0700 Subject: Show KeyOwner info when viewing recovery requests. This simple fix will grab the subject info out of the cert associated with either pending or complete recovery requests being viewed in the KRA UI. For example: KeyOwner: UID=jmagne, O=Token Key User Will be displayed. This simple fix should be good enough for this round, despite the bug asking about agent info and such. Ticket : Ticket #1512 : Key owner info missing from the Search results of Recovery request --- .../cms/servlet/request/CertReqParser.java | 27 ++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'base/server/cms/src/com') diff --git a/base/server/cms/src/com/netscape/cms/servlet/request/CertReqParser.java b/base/server/cms/src/com/netscape/cms/servlet/request/CertReqParser.java index fd4589437..03975ac4f 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/request/CertReqParser.java +++ b/base/server/cms/src/com/netscape/cms/servlet/request/CertReqParser.java @@ -59,6 +59,7 @@ import com.netscape.certsrv.request.RequestStatus; import com.netscape.cms.servlet.common.CMSTemplate; import com.netscape.cms.servlet.common.CMSTemplateParams; import com.netscape.cms.servlet.common.RawJS; +import com.netscape.cmsutil.util.Utils; /** * Output a 'pretty print' of a certificate request @@ -653,8 +654,10 @@ public class CertReqParser extends ReqParser { arg.addStringValue("certExtsEnabled", "yes"); String profile = req.getExtDataInString("profile"); + String reqType = req.getExtDataInString(IRequest.ATTR_REQUEST_TYPE); //CMS.debug("CertReqParser: profile=" + profile); + //profile null can mean either recovery case or TMS reqs if (profile != null) { arg.addStringValue("profile", profile); String requestorDN = getRequestorDN(req); @@ -662,13 +665,33 @@ public class CertReqParser extends ReqParser { if (requestorDN != null) { arg.addStringValue("subject", requestorDN); } - } else { + } else if (IRequest.KEYRECOVERY_REQUEST.equals(reqType)) { + arg.addStringValue("profile", "false"); + + String cert = req.getExtDataInString("cert"); + + if (cert != null) { + + X509CertImpl theCert = null; + try { + theCert = new X509CertImpl(Utils.base64decode(cert)); + } catch (CertificateException e) { + } + + if (theCert != null) { + String subject = theCert.getSubjectDN().toString(); + arg.addStringValue("subject", subject); + } + } + + } else { //TMS arg.addStringValue("profile", "false"); String keyID = getKeyID(req); - if (keyID != null) { + if (keyID != null && !keyID.isEmpty()) { arg.addStringValue("subject", keyID); } + } int saCounter = 0; -- cgit