diff options
Diffstat (limited to 'pki/base/common/src/com/netscape/cms/jobs/UnpublishExpiredJob.java')
-rw-r--r-- | pki/base/common/src/com/netscape/cms/jobs/UnpublishExpiredJob.java | 253 |
1 files changed, 115 insertions, 138 deletions
diff --git a/pki/base/common/src/com/netscape/cms/jobs/UnpublishExpiredJob.java b/pki/base/common/src/com/netscape/cms/jobs/UnpublishExpiredJob.java index 6a0a6d034..0c53d551f 100644 --- a/pki/base/common/src/com/netscape/cms/jobs/UnpublishExpiredJob.java +++ b/pki/base/common/src/com/netscape/cms/jobs/UnpublishExpiredJob.java @@ -17,7 +17,6 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cms.jobs; - import java.security.cert.X509Certificate; import java.text.DateFormat; import java.util.Date; @@ -46,60 +45,41 @@ import com.netscape.certsrv.request.IRequest; import com.netscape.certsrv.request.IRequestQueue; import com.netscape.certsrv.request.RequestId; - /** - * a job for the Jobs Scheduler. This job checks in the internal ldap - * db for certs that have expired and remove them from the ldap - * publishing directory. + * a job for the Jobs Scheduler. This job checks in the internal ldap db for + * certs that have expired and remove them from the ldap publishing directory. * <p> * the $TOKENS that are available for the this jobs's summary outer form are:<br> * <UL> - * $Status - * $InstanceID - * $SummaryItemList - * $SummaryTotalNum - * $SummaryTotalSuccess - * $SummaryTotalfailure - * $ExecutionTime + * $Status $InstanceID $SummaryItemList $SummaryTotalNum $SummaryTotalSuccess + * $SummaryTotalfailure $ExecutionTime * </UL> * and for the inner list items: * <UL> - * $SerialNumber - * $IssuerDN - * $SubjectDN - * $NotAfter - * $NotBefore - * $RequestorEmail + * $SerialNumber $IssuerDN $SubjectDN $NotAfter $NotBefore $RequestorEmail * $CertType * </UL> - * + * * @version $Revision$, $Date$ */ -public class UnpublishExpiredJob extends AJobBase - implements IJob, Runnable, IExtendedPluginInfo { - +public class UnpublishExpiredJob extends AJobBase implements IJob, Runnable, + IExtendedPluginInfo { + ICertificateAuthority mCa = null; IRequestQueue mReqQ = null; ICertificateRepository mRepository = null; IPublisherProcessor mPublisherProcessor = null; private boolean mSummary = false; - /* Holds configuration parameters accepted by this implementation. - * This list is passed to the configuration console so configuration - * for instances of this implementation can be configured through the - * console. + /* + * Holds configuration parameters accepted by this implementation. This list + * is passed to the configuration console so configuration for instances of + * this implementation can be configured through the console. */ - protected static String[] mConfigParams = - new String[] { - "enabled", - "cron", - "summary.enabled", - "summary.emailSubject", - "summary.emailTemplate", - "summary.itemTemplate", - "summary.senderEmail", - "summary.recipientEmail" - }; + protected static String[] mConfigParams = new String[] { "enabled", "cron", + "summary.enabled", "summary.emailSubject", "summary.emailTemplate", + "summary.itemTemplate", "summary.senderEmail", + "summary.recipientEmail" }; /* Vector of extendedPluginInfo strings */ protected static Vector mExtendedPluginInfo = null; @@ -109,26 +89,25 @@ public class UnpublishExpiredJob extends AJobBase public String[] getExtendedPluginInfo(Locale locale) { String s[] = { - IExtendedPluginInfo.HELP_TEXT + - "; A job that checks for expired certificates in the " + - "database, and removes them from the publishing " + - "directory", - "cron;string;Format: minute hour dayOfMonth month " + - "dayOfWeek. Use '*' for 'every'. For dayOfWeek, 0 is Sunday", - "summary.senderEmail;string;Specify the address to be used " + - "as the email's 'sender'. Bounces go to this address.", + IExtendedPluginInfo.HELP_TEXT + + "; A job that checks for expired certificates in the " + + "database, and removes them from the publishing " + + "directory", + "cron;string;Format: minute hour dayOfMonth month " + + "dayOfWeek. Use '*' for 'every'. For dayOfWeek, 0 is Sunday", + "summary.senderEmail;string;Specify the address to be used " + + "as the email's 'sender'. Bounces go to this address.", "summary.recipientEmail;string;Who should receive summaries", "enabled;boolean;Enable this plugin", - "summary.enabled;boolean;Enable the summary. You must enabled " + - "this for the job to work.", + "summary.enabled;boolean;Enable the summary. You must enabled " + + "this for the job to work.", "summary.emailSubject;string;Subject of summary email", - "summary.emailTemplate;string;Fully qualified pathname of " + - "template file of email to be sent", - "summary.itemTemplate;string;Fully qualified pathname of " + - "file containing template for each item", - IExtendedPluginInfo.HELP_TOKEN + - ";configuration-jobrules-unpublishexpiredjobs", - }; + "summary.emailTemplate;string;Fully qualified pathname of " + + "template file of email to be sent", + "summary.itemTemplate;string;Fully qualified pathname of " + + "file containing template for each item", + IExtendedPluginInfo.HELP_TOKEN + + ";configuration-jobrules-unpublishexpiredjobs", }; return s; } @@ -136,14 +115,13 @@ public class UnpublishExpiredJob extends AJobBase /** * initialize from the configuration file */ - public void init(ISubsystem owner, String id, String implName, IConfigStore config) throws - EBaseException { + public void init(ISubsystem owner, String id, String implName, + IConfigStore config) throws EBaseException { mConfig = config; mId = id; mImplName = implName; - mCa = (ICertificateAuthority) - CMS.getSubsystem("ca"); + mCa = (ICertificateAuthority) CMS.getSubsystem("ca"); if (mCa == null) { return; } @@ -151,13 +129,13 @@ public class UnpublishExpiredJob extends AJobBase mReqQ = mCa.getRequestQueue(); mRepository = (ICertificateRepository) mCa.getCertificateRepository(); mPublisherProcessor = mCa.getPublisherProcessor(); - + // read from the configuration file mCron = mConfig.getString(IJobCron.PROP_CRON); if (mCron == null) { return; } - + // parse cron string into a JobCron class IJobsScheduler scheduler = (IJobsScheduler) owner; @@ -179,16 +157,14 @@ public class UnpublishExpiredJob extends AJobBase } /** - * look in the internal db for certificateRecords that are - * expired. - * remove them from ldap publishing directory - * if remove successfully, mark <i>false</i> on the - * <b>InLdapPublishDir</b> flag, - * else, if remove unsuccessfully, log it + * look in the internal db for certificateRecords that are expired. remove + * them from ldap publishing directory if remove successfully, mark + * <i>false</i> on the <b>InLdapPublishDir</b> flag, else, if remove + * unsuccessfully, log it */ public void run() { - // System.out.println("in ExpiredUnpublishJob "+ - // getId()+ " : run()"); + // System.out.println("in ExpiredUnpublishJob "+ + // getId()+ " : run()"); // get time now..."now" is before the loop Date date = CMS.getCurrentDate(); long now = date.getTime(); @@ -196,12 +172,11 @@ public class UnpublishExpiredJob extends AJobBase String nowString = dateFormat.format(date); // form filter - String filter = "(&(x509Cert.notAfter<=" + now + - ")(!(x509Cert.notAfter=" + now + "))" + - "(" + "certMetainfo=" + ICertRecord.META_LDAPPUBLISH + - ":true))"; + String filter = "(&(x509Cert.notAfter<=" + now + + ")(!(x509Cert.notAfter=" + now + "))" + "(" + "certMetainfo=" + + ICertRecord.META_LDAPPUBLISH + ":true))"; // a test for without CertRecord.META_LDAPPUBLISH - //String filter = "(x509Cert.notAfter<="+ now +")"; + // String filter = "(x509Cert.notAfter<="+ now +")"; Enumeration expired = null; @@ -209,13 +184,14 @@ public class UnpublishExpiredJob extends AJobBase expired = mRepository.findCertRecs(filter); // bug 399150 /* - CertRecordList list = null; - list = mRepository.findCertRecordsInList(filter, null, "serialno", 5); - int size = list.getSize(); - expired = list.getCertRecords(0, size - 1); + * CertRecordList list = null; list = + * mRepository.findCertRecordsInList(filter, null, "serialno", 5); + * int size = list.getSize(); expired = list.getCertRecords(0, size + * - 1); */ } catch (EBaseException e) { - log(ILogger.LL_FAILURE, CMS.getLogMessage("OPERATION_ERROR", e.toString())); + log(ILogger.LL_FAILURE, + CMS.getLogMessage("OPERATION_ERROR", e.toString())); } int count = 0; // how many have been unpublished successfully @@ -233,13 +209,14 @@ public class UnpublishExpiredJob extends AJobBase while (expired != null && expired.hasMoreElements()) { ICertRecord rec = (ICertRecord) expired.nextElement(); - if (rec == null) break; + if (rec == null) + break; X509CertImpl cert = rec.getCertificate(); if (mSummary == true) buildItemParams(cert); - // get request id from cert record MetaInfo + // get request id from cert record MetaInfo MetaInfo minfo = null; try { @@ -248,42 +225,39 @@ public class UnpublishExpiredJob extends AJobBase negCount += 1; if (mSummary == true) buildItemParams(IEmailFormProcessor.TOKEN_STATUS, - STATUS_FAILURE); - log(ILogger.LL_FAILURE, - CMS.getLogMessage("JOBS_META_INFO_ERROR", - cert.getSerialNumber().toString(16) + - e.toString())); + STATUS_FAILURE); + log(ILogger.LL_FAILURE, + CMS.getLogMessage("JOBS_META_INFO_ERROR", cert + .getSerialNumber().toString(16) + e.toString())); } String ridString = null; try { if (minfo != null) - ridString = (String) minfo.get(ICertRecord.META_REQUEST_ID); + ridString = (String) minfo.get(ICertRecord.META_REQUEST_ID); } catch (EBaseException e) { negCount += 1; if (mSummary == true) buildItemParams(IEmailFormProcessor.TOKEN_STATUS, - STATUS_FAILURE); - log(ILogger.LL_FAILURE, - CMS.getLogMessage("JOBS_META_REQUEST_ERROR", - cert.getSerialNumber().toString(16) + - e.toString())); + STATUS_FAILURE); + log(ILogger.LL_FAILURE, + CMS.getLogMessage("JOBS_META_REQUEST_ERROR", cert + .getSerialNumber().toString(16) + e.toString())); } catch (NullPointerException e) { // no requestId in MetaInfo...skip to next record negCount += 1; if (mSummary == true) buildItemParams(IEmailFormProcessor.TOKEN_STATUS, - STATUS_FAILURE); - log(ILogger.LL_FAILURE, - CMS.getLogMessage("JOBS_META_REQUEST_ERROR", - cert.getSerialNumber().toString(16) + - e.toString())); + STATUS_FAILURE); + log(ILogger.LL_FAILURE, + CMS.getLogMessage("JOBS_META_REQUEST_ERROR", cert + .getSerialNumber().toString(16) + e.toString())); } if (ridString != null) { RequestId rid = new RequestId(ridString); - + // get request from request id IRequest req = null; @@ -297,19 +271,21 @@ public class UnpublishExpiredJob extends AJobBase negCount += 1; if (mSummary == true) buildItemParams(IEmailFormProcessor.TOKEN_STATUS, - STATUS_FAILURE); - log(ILogger.LL_FAILURE, - CMS.getLogMessage("JOBS_FIND_REQUEST_ERROR", - cert.getSerialNumber().toString(16) + - e.toString())); + STATUS_FAILURE); + log(ILogger.LL_FAILURE, + CMS.getLogMessage( + "JOBS_FIND_REQUEST_ERROR", + cert.getSerialNumber().toString(16) + + e.toString())); } try { - if ((mPublisherProcessor != null) && - mPublisherProcessor.enabled()) { - mPublisherProcessor.unpublishCert((X509Certificate) cert, req); + if ((mPublisherProcessor != null) + && mPublisherProcessor.enabled()) { + mPublisherProcessor.unpublishCert( + (X509Certificate) cert, req); if (mSummary == true) buildItemParams(IEmailFormProcessor.TOKEN_STATUS, - STATUS_SUCCESS); + STATUS_SUCCESS); count += 1; } else { negCount += 1; @@ -318,21 +294,23 @@ public class UnpublishExpiredJob extends AJobBase negCount += 1; if (mSummary == true) buildItemParams(IEmailFormProcessor.TOKEN_STATUS, - STATUS_FAILURE); - log(ILogger.LL_FAILURE, - CMS.getLogMessage("JOBS_UNPUBLISH_ERROR", - cert.getSerialNumber().toString(16) + - e.toString())); + STATUS_FAILURE); + log(ILogger.LL_FAILURE, + CMS.getLogMessage( + "JOBS_UNPUBLISH_ERROR", + cert.getSerialNumber().toString(16) + + e.toString())); } } // ridString != null else { try { - if ((mPublisherProcessor != null) && - mPublisherProcessor.enabled()) { - mPublisherProcessor.unpublishCert((X509Certificate) cert, null); + if ((mPublisherProcessor != null) + && mPublisherProcessor.enabled()) { + mPublisherProcessor.unpublishCert( + (X509Certificate) cert, null); if (mSummary == true) buildItemParams(IEmailFormProcessor.TOKEN_STATUS, - STATUS_SUCCESS); + STATUS_SUCCESS); count += 1; } else { negCount += 1; @@ -341,11 +319,12 @@ public class UnpublishExpiredJob extends AJobBase negCount += 1; if (mSummary == true) buildItemParams(IEmailFormProcessor.TOKEN_STATUS, - STATUS_FAILURE); - log(ILogger.LL_FAILURE, - CMS.getLogMessage("JOBS_UNPUBLISH_ERROR", - cert.getSerialNumber().toString(16) + - e.toString())); + STATUS_FAILURE); + log(ILogger.LL_FAILURE, + CMS.getLogMessage( + "JOBS_UNPUBLISH_ERROR", + cert.getSerialNumber().toString(16) + + e.toString())); } } // ridString == null @@ -354,8 +333,8 @@ public class UnpublishExpiredJob extends AJobBase // if summary is enabled, form the item content if (mSummary) { - IEmailFormProcessor emailItemFormProcessor = - CMS.getEmailFormProcessor(); + IEmailFormProcessor emailItemFormProcessor = CMS + .getEmailFormProcessor(); String c = emailItemFormProcessor.getEmailContent(itemForm, mItemParams); @@ -370,37 +349,35 @@ public class UnpublishExpiredJob extends AJobBase // time for summary if (mSummary == true) { - buildContentParams(IEmailFormProcessor.TOKEN_ID, - mId); + buildContentParams(IEmailFormProcessor.TOKEN_ID, mId); buildContentParams(IEmailFormProcessor.TOKEN_SUMMARY_ITEM_LIST, - itemListContent); + itemListContent); buildContentParams(IEmailFormProcessor.TOKEN_SUMMARY_TOTAL_NUM, - String.valueOf(count + negCount)); + String.valueOf(count + negCount)); buildContentParams(IEmailFormProcessor.TOKEN_SUMMARY_SUCCESS_NUM, - String.valueOf(count)); + String.valueOf(count)); buildContentParams(IEmailFormProcessor.TOKEN_SUMMARY_FAILURE_NUM, - String.valueOf(negCount)); + String.valueOf(negCount)); buildContentParams(IEmailFormProcessor.TOKEN_EXECUTION_TIME, - nowString); + nowString); - IEmailFormProcessor emailFormProcessor = CMS.getEmailFormProcessor(); - String mailContent = - emailFormProcessor.getEmailContent(contentForm, - mContentParams); + IEmailFormProcessor emailFormProcessor = CMS + .getEmailFormProcessor(); + String mailContent = emailFormProcessor.getEmailContent( + contentForm, mContentParams); mailSummary(mailContent); } } /** - * Returns a list of configuration parameter names. - * The list is passed to the configuration console so instances of - * this implementation can be configured through the console. - * + * Returns a list of configuration parameter names. The list is passed to + * the configuration console so instances of this implementation can be + * configured through the console. + * * @return String array of configuration parameter names. */ public String[] getConfigParams() { return (mConfigParams); } } - |