diff options
author | Endi S. Dewata <edewata@redhat.com> | 2017-04-19 23:23:39 +0200 |
---|---|---|
committer | Endi S. Dewata <edewata@redhat.com> | 2017-04-25 21:44:49 +0200 |
commit | 36a606e4b51de17c56da0f9ee4daab062ec4acf3 (patch) | |
tree | a63f303c90c768330e5223586b5f339cc88b013f | |
parent | 993a55fb4c883b3ca7ea0e64e24f4501909a571c (diff) | |
download | pki-36a606e4b51de17c56da0f9ee4daab062ec4acf3.tar.gz pki-36a606e4b51de17c56da0f9ee4daab062ec4acf3.tar.xz pki-36a606e4b51de17c56da0f9ee4daab062ec4acf3.zip |
Added CertRequestProcessedEvent constructor for X509CertImpl.
A new CertRequestProcessedEvent constructor has been added to
encapsulate CERT_REQUEST_PROCESSED events that take an X509CertImpl
object.
Copies of auditInfoCertValue() method in various classes have been
combined and moved into CertRequestProcessedEvent.
https://pagure.io/dogtagpki/issue/2636
Change-Id: Ie234bdb9f1b52399dad4bd1e20f57dcb99d86091
8 files changed, 91 insertions, 287 deletions
diff --git a/base/common/src/com/netscape/certsrv/logging/event/CertRequestProcessedEvent.java b/base/common/src/com/netscape/certsrv/logging/event/CertRequestProcessedEvent.java index 1703f65ff..3e5041ddf 100644 --- a/base/common/src/com/netscape/certsrv/logging/event/CertRequestProcessedEvent.java +++ b/base/common/src/com/netscape/certsrv/logging/event/CertRequestProcessedEvent.java @@ -17,7 +17,13 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.certsrv.logging.event; +import java.security.cert.CertificateEncodingException; + import com.netscape.certsrv.logging.AuditEvent; +import com.netscape.certsrv.logging.ILogger; +import com.netscape.cmsutil.util.Utils; + +import netscape.security.x509.X509CertImpl; public class CertRequestProcessedEvent extends AuditEvent { @@ -40,4 +46,69 @@ public class CertRequestProcessedEvent extends AuditEvent { infoValue }); } + + public CertRequestProcessedEvent( + String subjectID, + String outcome, + String requesterID, + String infoName, + X509CertImpl x509cert) { + + super(CERT_REQUEST_PROCESSED); + + setParameters(new Object[] { + subjectID, + outcome, + requesterID, + infoName, + auditInfoCertValue(x509cert) + }); + } + + /** + * Signed Audit Log Info Certificate Value + * + * This method is called to obtain the certificate from the passed in + * "X509CertImpl" for a signed audit log message. + * <P> + * + * @param x509cert an X509CertImpl + * @return cert string containing the certificate + */ + public static String auditInfoCertValue(X509CertImpl x509cert) { + + if (x509cert == null) { + return ILogger.SIGNED_AUDIT_EMPTY_VALUE; + } + + byte rawData[] = null; + + try { + rawData = x509cert.getEncoded(); + } catch (CertificateEncodingException e) { + return ILogger.SIGNED_AUDIT_EMPTY_VALUE; + } + + String cert = null; + + // convert "rawData" into "base64Data" + if (rawData != null) { + String base64Data = Utils.base64encode(rawData).trim(); + + // concatenate lines + cert = base64Data.replace("\r", "").replace("\n", ""); + } + + if (cert != null) { + cert = cert.trim(); + + if (cert.equals("")) { + return ILogger.SIGNED_AUDIT_EMPTY_VALUE; + } else { + return cert; + } + } else { + return ILogger.SIGNED_AUDIT_EMPTY_VALUE; + } + } } diff --git a/base/server/cms/src/com/netscape/cms/servlet/cert/CertProcessor.java b/base/server/cms/src/com/netscape/cms/servlet/cert/CertProcessor.java index 2a60cb06d..d25d817b4 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/cert/CertProcessor.java +++ b/base/server/cms/src/com/netscape/cms/servlet/cert/CertProcessor.java @@ -246,8 +246,9 @@ public class CertProcessor extends CAProcessor { req.setRequestStatus(RequestStatus.COMPLETE); X509CertImpl x509cert = req.getExtDataInCert(IEnrollProfile.REQUEST_ISSUED_CERT); - String auditInfoCertValue = auditInfoCertValue(x509cert); + String auditInfoCertValue = CertRequestProcessedEvent.auditInfoCertValue(x509cert); + // TODO: simplify this condition if (auditInfoCertValue != null) { if (!(auditInfoCertValue.equals( ILogger.SIGNED_AUDIT_EMPTY_VALUE))) { @@ -257,7 +258,7 @@ public class CertProcessor extends CAProcessor { ILogger.SUCCESS, auditRequesterID, ILogger.SIGNED_AUDIT_ACCEPTANCE, - auditInfoCertValue)); + x509cert)); } } } catch (EDeferException e) { diff --git a/base/server/cms/src/com/netscape/cms/servlet/cert/EnrollServlet.java b/base/server/cms/src/com/netscape/cms/servlet/cert/EnrollServlet.java index cb2b76fbe..43df5b651 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/cert/EnrollServlet.java +++ b/base/server/cms/src/com/netscape/cms/servlet/cert/EnrollServlet.java @@ -19,7 +19,6 @@ package com.netscape.cms.servlet.cert; import java.io.IOException; import java.math.BigInteger; -import java.security.cert.CertificateEncodingException; import java.security.cert.CertificateException; import java.security.cert.CertificateParsingException; import java.security.cert.X509Certificate; @@ -69,7 +68,6 @@ import com.netscape.cms.servlet.processors.CRMFProcessor; import com.netscape.cms.servlet.processors.KeyGenProcessor; import com.netscape.cms.servlet.processors.PKCS10Processor; import com.netscape.cms.servlet.processors.PKIProcessor; -import com.netscape.cmsutil.util.Utils; import netscape.security.pkcs.PKCS10; import netscape.security.x509.AlgorithmId; @@ -1374,7 +1372,7 @@ public class EnrollServlet extends CMSServlet { ILogger.SUCCESS, auditRequesterID, ILogger.SIGNED_AUDIT_ACCEPTANCE, - auditInfoCertValue(issuedCerts[i]))); + issuedCerts[i])); } } catch (IOException ex) { cmsReq.setStatus(ICMSRequest.ERROR); @@ -1455,7 +1453,7 @@ public class EnrollServlet extends CMSServlet { ILogger.SUCCESS, auditRequesterID, ILogger.SIGNED_AUDIT_ACCEPTANCE, - auditInfoCertValue(issuedCerts[i]))); + issuedCerts[i])); } return; @@ -1475,7 +1473,7 @@ public class EnrollServlet extends CMSServlet { ILogger.SUCCESS, auditRequesterID, ILogger.SIGNED_AUDIT_ACCEPTANCE, - auditInfoCertValue(issuedCerts[i]))); + issuedCerts[i])); } } catch (IOException e) { log(ILogger.LL_FAILURE, @@ -1674,57 +1672,4 @@ public class EnrollServlet extends CMSServlet { throws EBaseException { mIsTestBed = config.getBoolean("isTestBed", true); } - - /** - * Signed Audit Log Info Certificate Value - * - * This method is called to obtain the certificate from the passed in - * "X509CertImpl" for a signed audit log message. - * <P> - * - * @param x509cert an X509CertImpl - * @return cert string containing the certificate - */ - private String auditInfoCertValue(X509CertImpl x509cert) { - // if no signed audit object exists, bail - if (mSignedAuditLogger == null) { - return null; - } - - if (x509cert == null) { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } - - byte rawData[] = null; - - try { - rawData = x509cert.getEncoded(); - } catch (CertificateEncodingException e) { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } - - String cert = null; - - // convert "rawData" into "base64Data" - if (rawData != null) { - String base64Data = null; - - base64Data = Utils.base64encode(rawData).trim(); - - // concatenate lines - cert = base64Data.replace("\r", "").replace("\n", ""); - } - - if (cert != null) { - cert = cert.trim(); - - if (cert.equals("")) { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } else { - return cert; - } - } else { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } - } } diff --git a/base/server/cms/src/com/netscape/cms/servlet/cert/RequestProcessor.java b/base/server/cms/src/com/netscape/cms/servlet/cert/RequestProcessor.java index 66fe58c27..b66aec27e 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/cert/RequestProcessor.java +++ b/base/server/cms/src/com/netscape/cms/servlet/cert/RequestProcessor.java @@ -392,7 +392,7 @@ public class RequestProcessor extends CertProcessor { ILogger.SUCCESS, auditRequesterID, ILogger.SIGNED_AUDIT_ACCEPTANCE, - auditInfoCertValue(theCert))); + theCert)); } catch (EProfileException eAudit1) { diff --git a/base/server/cms/src/com/netscape/cms/servlet/connector/ConnectorServlet.java b/base/server/cms/src/com/netscape/cms/servlet/connector/ConnectorServlet.java index ee60187e2..b5ccdd2e4 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/connector/ConnectorServlet.java +++ b/base/server/cms/src/com/netscape/cms/servlet/connector/ConnectorServlet.java @@ -25,7 +25,6 @@ import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.security.cert.Certificate; -import java.security.cert.CertificateEncodingException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.Enumeration; @@ -62,7 +61,6 @@ import com.netscape.certsrv.request.RequestId; import com.netscape.certsrv.request.RequestStatus; import com.netscape.cms.servlet.base.CMSServlet; import com.netscape.cms.servlet.common.CMSRequest; -import com.netscape.cmsutil.util.Utils; import netscape.security.x509.CRLExtensions; import netscape.security.x509.CRLReasonExtension; @@ -622,8 +620,9 @@ public class ConnectorServlet extends CMSServlet { if (isProfileRequest(thisreq)) { X509CertImpl x509cert = thisreq.getExtDataInCert(IEnrollProfile.REQUEST_ISSUED_CERT); - String auditInfoCertValue = auditInfoCertValue(x509cert); + String auditInfoCertValue = CertRequestProcessedEvent.auditInfoCertValue(x509cert); + // TODO: simplify this condition if (auditInfoCertValue != null) { if (!(auditInfoCertValue.equals( ILogger.SIGNED_AUDIT_EMPTY_VALUE))) { @@ -633,7 +632,7 @@ public class ConnectorServlet extends CMSServlet { ILogger.SUCCESS, auditRequesterID, ILogger.SIGNED_AUDIT_ACCEPTANCE, - auditInfoCertValue)); + x509cert)); } } } @@ -641,8 +640,9 @@ public class ConnectorServlet extends CMSServlet { if (isProfileRequest(thisreq)) { X509CertImpl x509cert = thisreq.getExtDataInCert(IEnrollProfile.REQUEST_ISSUED_CERT); - String auditInfoCertValue = auditInfoCertValue(x509cert); + String auditInfoCertValue = CertRequestProcessedEvent.auditInfoCertValue(x509cert); + // TODO: simplify this condition if (auditInfoCertValue != null) { if (!(auditInfoCertValue.equals( ILogger.SIGNED_AUDIT_EMPTY_VALUE))) { @@ -652,7 +652,7 @@ public class ConnectorServlet extends CMSServlet { ILogger.FAILURE, auditRequesterID, ILogger.SIGNED_AUDIT_ACCEPTANCE, - auditInfoCertValue)); + x509cert)); } } } @@ -1054,57 +1054,4 @@ public class ConnectorServlet extends CMSServlet { return profileID; } - - /** - * Signed Audit Log Info Certificate Value - * - * This method is called to obtain the certificate from the passed in - * "X509CertImpl" for a signed audit log message. - * <P> - * - * @param x509cert an X509CertImpl - * @return cert string containing the certificate - */ - private String auditInfoCertValue(X509CertImpl x509cert) { - // if no signed audit object exists, bail - if (mSignedAuditLogger == null) { - return null; - } - - if (x509cert == null) { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } - - byte rawData[] = null; - - try { - rawData = x509cert.getEncoded(); - } catch (CertificateEncodingException e) { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } - - String cert = null; - - // convert "rawData" into "base64Data" - if (rawData != null) { - String base64Data = null; - - base64Data = Utils.base64encode(rawData).trim(); - - // concatenate lines - cert = base64Data.replace("\r", "").replace("\n", ""); - } - - if (cert != null) { - cert = cert.trim(); - - if (cert.equals("")) { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } else { - return cert; - } - } else { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } - } } diff --git a/base/server/cms/src/com/netscape/cms/servlet/processors/CAProcessor.java b/base/server/cms/src/com/netscape/cms/servlet/processors/CAProcessor.java index 74f501f59..25f7bb3e1 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/processors/CAProcessor.java +++ b/base/server/cms/src/com/netscape/cms/servlet/processors/CAProcessor.java @@ -71,7 +71,6 @@ import com.netscape.certsrv.util.IStatsSubsystem; import com.netscape.cms.servlet.common.AuthCredentials; import com.netscape.cms.servlet.common.CMSGateway; import com.netscape.cms.servlet.common.ServletUtils; -import com.netscape.cmsutil.util.Utils; import netscape.security.x509.X509CertImpl; @@ -1040,59 +1039,6 @@ public class CAProcessor extends Processor { } /** - * Signed Audit Log Info Certificate Value - * - * This method is called to obtain the certificate from the passed in - * "X509CertImpl" for a signed audit log message. - * <P> - * - * @param x509cert an X509CertImpl - * @return cert string containing the certificate - */ - protected String auditInfoCertValue(X509CertImpl x509cert) { - // if no signed audit object exists, bail - if (signedAuditLogger == null) { - return null; - } - - if (x509cert == null) { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } - - byte rawData[] = null; - - try { - rawData = x509cert.getEncoded(); - } catch (CertificateEncodingException e) { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } - - String cert = null; - - // convert "rawData" into "base64Data" - if (rawData != null) { - String base64Data = null; - - base64Data = Utils.base64encode(rawData).trim(); - - // concatenate lines - cert = base64Data.replace("\r", "").replace("\n", ""); - } - - if (cert != null) { - cert = cert.trim(); - - if (cert.equals("")) { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } else { - return cert; - } - } else { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } - } - - /** * Signed Audit Groups * * This method is called to extract all "groups" associated diff --git a/base/server/cms/src/com/netscape/cms/servlet/profile/ProfileSubmitCMCServlet.java b/base/server/cms/src/com/netscape/cms/servlet/profile/ProfileSubmitCMCServlet.java index 28f777b81..26ca2a4cc 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/profile/ProfileSubmitCMCServlet.java +++ b/base/server/cms/src/com/netscape/cms/servlet/profile/ProfileSubmitCMCServlet.java @@ -19,7 +19,6 @@ package com.netscape.cms.servlet.profile; import java.io.InputStream; import java.io.OutputStream; -import java.security.cert.CertificateEncodingException; import java.util.Enumeration; import java.util.Locale; @@ -671,8 +670,9 @@ public class ProfileSubmitCMCServlet extends ProfileServlet { reqs[k].setRequestStatus(RequestStatus.COMPLETE); X509CertImpl x509cert = reqs[k].getExtDataInCert(IEnrollProfile.REQUEST_ISSUED_CERT); - String auditInfoCertValue = auditInfoCertValue(x509cert); + String auditInfoCertValue = CertRequestProcessedEvent.auditInfoCertValue(x509cert); + // TODO: simplify this condition if (auditInfoCertValue != null) { if (!(auditInfoCertValue.equals( ILogger.SIGNED_AUDIT_EMPTY_VALUE))) { @@ -682,7 +682,7 @@ public class ProfileSubmitCMCServlet extends ProfileServlet { ILogger.SUCCESS, auditRequesterID, ILogger.SIGNED_AUDIT_ACCEPTANCE, - auditInfoCertValue)); + x509cert)); } } } catch (EDeferException e) { @@ -768,8 +768,9 @@ public class ProfileSubmitCMCServlet extends ProfileServlet { CMS.debug("ProfileSubmitCMCServlet: provedReq set to complete"); X509CertImpl x509cert = reqs[0].getExtDataInCert(IEnrollProfile.REQUEST_ISSUED_CERT); - String auditInfoCertValue = auditInfoCertValue(x509cert); + String auditInfoCertValue = CertRequestProcessedEvent.auditInfoCertValue(x509cert); + // TODO: simplify this condition if (auditInfoCertValue != null) { if (!(auditInfoCertValue.equals( ILogger.SIGNED_AUDIT_EMPTY_VALUE))) { @@ -779,7 +780,7 @@ public class ProfileSubmitCMCServlet extends ProfileServlet { ILogger.SUCCESS, auditRequesterID, ILogger.SIGNED_AUDIT_ACCEPTANCE, - auditInfoCertValue)); + x509cert)); } } } catch (ERejectException e) { @@ -875,57 +876,4 @@ public class ProfileSubmitCMCServlet extends ProfileServlet { return requesterID; } - - /** - * Signed Audit Log Info Certificate Value - * - * This method is called to obtain the certificate from the passed in - * "X509CertImpl" for a signed audit log message. - * <P> - * - * @param x509cert an X509CertImpl - * @return cert string containing the certificate - */ - private String auditInfoCertValue(X509CertImpl x509cert) { - // if no signed audit object exists, bail - if (mSignedAuditLogger == null) { - return null; - } - - if (x509cert == null) { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } - - byte rawData[] = null; - - try { - rawData = x509cert.getEncoded(); - } catch (CertificateEncodingException e) { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } - - String cert = null; - - // convert "rawData" into "base64Data" - if (rawData != null) { - String base64Data = null; - - base64Data = Utils.base64encode(rawData).trim(); - - // concatenate lines - cert = base64Data.replace("\r", "").replace("\n", ""); - } - - if (cert != null) { - cert = cert.trim(); - - if (cert.equals("")) { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } else { - return cert; - } - } else { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } - } } diff --git a/base/server/cms/src/com/netscape/cms/servlet/request/ProcessCertReq.java b/base/server/cms/src/com/netscape/cms/servlet/request/ProcessCertReq.java index 2bcc8ad1c..c229263dc 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/request/ProcessCertReq.java +++ b/base/server/cms/src/com/netscape/cms/servlet/request/ProcessCertReq.java @@ -21,7 +21,6 @@ import java.io.IOException; import java.math.BigInteger; import java.security.NoSuchAlgorithmException; import java.security.cert.Certificate; -import java.security.cert.CertificateEncodingException; import java.security.cert.CertificateException; import java.util.Date; import java.util.Enumeration; @@ -935,7 +934,7 @@ public class ProcessCertReq extends CMSServlet { ILogger.SUCCESS, auditRequesterID, auditInfoName, - auditInfoCertValue(issuedCerts[i]))); + issuedCerts[i])); } header.addStringValue( "serialNumber", sbuf.toString()); @@ -1757,59 +1756,6 @@ public class ProcessCertReq extends CMSServlet { return infoName; } - - /** - * Signed Audit Log Info Certificate Value - * - * This method is called to obtain the certificate from the passed in - * "X509CertImpl" for a signed audit log message. - * <P> - * - * @param x509cert an X509CertImpl - * @return cert string containing the certificate - */ - private String auditInfoCertValue(X509CertImpl x509cert) { - // if no signed audit object exists, bail - if (mSignedAuditLogger == null) { - return null; - } - - if (x509cert == null) { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } - - byte rawData[] = null; - - try { - rawData = x509cert.getEncoded(); - } catch (CertificateEncodingException e) { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } - - String cert = null; - - // convert "rawData" into "base64Data" - if (rawData != null) { - String base64Data = null; - - base64Data = Utils.base64encode(rawData).trim(); - - // concatenate lines - cert = base64Data.replace("\r", "").replace("\n", ""); - } - - if (cert != null) { - cert = cert.trim(); - - if (cert.equals("")) { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } else { - return cert; - } - } else { - return ILogger.SIGNED_AUDIT_EMPTY_VALUE; - } - } } class RAReqCompletedFiller extends ImportCertsTemplateFiller { |