diff options
Diffstat (limited to 'pki/base/common/src/com/netscape/cms/listeners/CertificateIssuedListener.java')
-rw-r--r-- | pki/base/common/src/com/netscape/cms/listeners/CertificateIssuedListener.java | 178 |
1 files changed, 86 insertions, 92 deletions
diff --git a/pki/base/common/src/com/netscape/cms/listeners/CertificateIssuedListener.java b/pki/base/common/src/com/netscape/cms/listeners/CertificateIssuedListener.java index a6a61c20a..d238c2792 100644 --- a/pki/base/common/src/com/netscape/cms/listeners/CertificateIssuedListener.java +++ b/pki/base/common/src/com/netscape/cms/listeners/CertificateIssuedListener.java @@ -17,6 +17,7 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cms.listeners; + import java.io.File; import java.io.IOException; import java.text.DateFormat; @@ -44,11 +45,12 @@ import com.netscape.certsrv.request.IRequest; import com.netscape.certsrv.request.IRequestListener; import com.netscape.certsrv.request.RequestId; + /** * a listener for every completed enrollment request * <p> - * Here is a list of available $TOKENs for email notification templates if - * certificate is successfully issued: + * Here is a list of available $TOKENs for email notification + templates if certificate is successfully issued: * <UL> * <LI>$InstanceID * <LI>$SerialNumber @@ -64,13 +66,13 @@ import com.netscape.certsrv.request.RequestId; * <LI>$RecipientEmail * </UL> * <p> - * Here is a list of available $TOKENs for email notification templates if - * certificate request is rejected: + * Here is a list of available $TOKENs for email notification + templates if certificate request is rejected: * <UL> * <LI>$RequestId * <LI>$InstanceID * </UL> - * + * * @version $Revision$, $Date$ */ public class CertificateIssuedListener implements IRequestListener { @@ -105,7 +107,7 @@ public class CertificateIssuedListener implements IRequestListener { } public void init(ISubsystem sub, IConfigStore config) - throws EListenersException, EPropertyNotFound, EBaseException { + throws EListenersException, EPropertyNotFound, EBaseException { mSubsystem = (ICertAuthority) sub; mConfig = mSubsystem.getConfigStore(); @@ -116,24 +118,25 @@ public class CertificateIssuedListener implements IRequestListener { mSenderEmail = rc.getString(PROP_SENDER_EMAIL); if (mSenderEmail == null) { - throw new EListenersException( - CMS.getLogMessage("NO_NOTIFY_SENDER_EMAIL_CONFIG_FOUND")); + throw new EListenersException(CMS.getLogMessage("NO_NOTIFY_SENDER_EMAIL_CONFIG_FOUND")); } mFormPath = rc.getString(PROP_EMAIL_TEMPLATE); String mDir = null; // figure out the reject email path: same dir as form path, - // same ending as form path + // same ending as form path int ridx = mFormPath.lastIndexOf(File.separator); if (ridx == -1) { - CMS.debug("CertificateIssuedListener: file separator: " - + File.separator + " not found. Use default /"); + CMS.debug("CertificateIssuedListener: file separator: " + File.separator + + + " not found. Use default /"); ridx = mFormPath.lastIndexOf("/"); mDir = mFormPath.substring(0, ridx + 1); } else { - mDir = mFormPath.substring(0, ridx + File.separator.length()); + mDir = mFormPath.substring(0, ridx + + File.separator.length()); } CMS.debug("CertificateIssuedListener: template file directory: " + mDir); mRejectPath = mDir + REJECT_FILE_NAME; @@ -151,7 +154,7 @@ public class CertificateIssuedListener implements IRequestListener { mDateFormat = DateFormat.getDateTimeInstance(); mSubject_Success = rc.getString(PROP_EMAIL_SUBJECT, - "Your Certificate Request"); + "Your Certificate Request"); mSubject = new String(mSubject_Success); // form the cert retrieval URL for the notification @@ -163,10 +166,9 @@ public class CertificateIssuedListener implements IRequestListener { } public void accept(IRequest r) { - CMS.debug("CertificateIssuedListener: accept " - + r.getRequestId().toString()); - if (mEnabled != true) - return; + CMS.debug("CertificateIssuedListener: accept " + + r.getRequestId().toString()); + if (mEnabled != true) return; mSubject = mSubject_Success; mReqId = r.getRequestId(); @@ -188,18 +190,17 @@ public class CertificateIssuedListener implements IRequestListener { if (profileId == null) { if (r.getExtDataInInteger(IRequest.RESULT) == null) return; - if ((r.getExtDataInInteger(IRequest.RESULT)) - .equals(IRequest.RES_ERROR)) { - CMS.debug("CertificateIssuedListener: Request errored. " - + "No need to email notify for enrollment request id " - + mReqId); + if ((r.getExtDataInInteger(IRequest.RESULT)).equals(IRequest.RES_ERROR)) { + CMS.debug("CertificateIssuedListener: Request errored. " + + "No need to email notify for enrollment request id " + + mReqId); return; } } String requestType = r.getRequestType(); - if (requestType.equals(IRequest.ENROLLMENT_REQUEST) - || requestType.equals(IRequest.RENEWAL_REQUEST)) { + if (requestType.equals(IRequest.ENROLLMENT_REQUEST) || + requestType.equals(IRequest.RENEWAL_REQUEST)) { CMS.debug("accept() enrollment/renewal request..."); // Get the certificate from the request X509CertImpl issuedCert[] = null; @@ -209,8 +210,8 @@ public class CertificateIssuedListener implements IRequestListener { issuedCert = r.getExtDataInCertArray(IRequest.ISSUED_CERTS); } else { issuedCert = new X509CertImpl[1]; - issuedCert[0] = r - .getExtDataInCert(IEnrollProfile.REQUEST_ISSUED_CERT); + issuedCert[0] = + r.getExtDataInCert(IEnrollProfile.REQUEST_ISSUED_CERT); } if (issuedCert != null) { @@ -222,10 +223,11 @@ public class CertificateIssuedListener implements IRequestListener { try { keys.set(IEmailResolverKeys.KEY_REQUEST, r); - keys.set(IEmailResolverKeys.KEY_CERT, issuedCert[0]); + keys.set(IEmailResolverKeys.KEY_CERT, + issuedCert[0]); } catch (EBaseException e) { - log(ILogger.LL_FAILURE, CMS.getLogMessage( - "LISTENERS_CERT_ISSUED_SET_RESOLVER", e.toString())); + log(ILogger.LL_FAILURE, + CMS.getLogMessage("LISTENERS_CERT_ISSUED_SET_RESOLVER", e.toString())); } IEmailResolver er = CMS.getReqCertSANameEmailResolver(); @@ -233,29 +235,31 @@ public class CertificateIssuedListener implements IRequestListener { try { mEmail = er.getEmail(keys); } catch (ENotificationException e) { - log(ILogger.LL_FAILURE, CMS.getLogMessage( - "LISTENERS_CERT_ISSUED_EXCEPTION", e.toString())); + log(ILogger.LL_FAILURE, + CMS.getLogMessage("LISTENERS_CERT_ISSUED_EXCEPTION", + e.toString())); } catch (EBaseException e) { - log(ILogger.LL_FAILURE, CMS.getLogMessage( - "LISTENERS_CERT_ISSUED_EXCEPTION", e.toString())); + log(ILogger.LL_FAILURE, + CMS.getLogMessage("LISTENERS_CERT_ISSUED_EXCEPTION", + e.toString())); } catch (Exception e) { - log(ILogger.LL_FAILURE, CMS.getLogMessage( - "LISTENERS_CERT_ISSUED_EXCEPTION", e.toString())); + log(ILogger.LL_FAILURE, + CMS.getLogMessage("LISTENERS_CERT_ISSUED_EXCEPTION", + e.toString())); } - + // now we can mail if ((mEmail != null) && (!mEmail.equals(""))) { mailIt(mEmail, issuedCert); } else { - log(ILogger.LL_FAILURE, CMS.getLogMessage( - "LISTENERS_CERT_ISSUED_NOTIFY_ERROR", issuedCert[0] - .getSerialNumber().toString(), mReqId - .toString())); + log(ILogger.LL_FAILURE, + CMS.getLogMessage("LISTENERS_CERT_ISSUED_NOTIFY_ERROR", + issuedCert[0].getSerialNumber().toString(), mReqId.toString())); // send failure notification to "sender" mSubject = "Certificate Issued notification undeliverable"; mailIt(mSenderEmail, issuedCert); } - } + } } } @@ -278,7 +282,7 @@ public class CertificateIssuedListener implements IRequestListener { if (!template.init()) { return; } - + buildContentParams(issuedCert, mEmail); IEmailFormProcessor et = CMS.getEmailFormProcessor(); String c = et.getEmailContent(template.toString(), mContentParams); @@ -288,23 +292,22 @@ public class CertificateIssuedListener implements IRequestListener { } mn.setContent(c); } else { - log(ILogger.LL_FAILURE, CMS.getLogMessage( - "LISTENERS_CERT_ISSUED_TEMPLATE_ERROR", issuedCert[0] - .getSerialNumber().toString(), mReqId.toString())); + log(ILogger.LL_FAILURE, + CMS.getLogMessage("LISTENERS_CERT_ISSUED_TEMPLATE_ERROR", + issuedCert[0].getSerialNumber().toString(), mReqId.toString())); - mn.setContent("Serial Number = " + issuedCert[0].getSerialNumber() - + "; Request ID = " + mReqId); + mn.setContent("Serial Number = " + + issuedCert[0].getSerialNumber() + + "; Request ID = " + mReqId); } - + try { mn.sendNotification(); } catch (ENotificationException e) { - log(ILogger.LL_FAILURE, - CMS.getLogMessage("OPERATION_ERROR", e.toString())); - + log(ILogger.LL_FAILURE, CMS.getLogMessage("OPERATION_ERROR", e.toString())); + } catch (IOException e) { - log(ILogger.LL_FAILURE, - CMS.getLogMessage("OPERATION_ERROR", e.toString())); + log(ILogger.LL_FAILURE, CMS.getLogMessage("OPERATION_ERROR", e.toString())); } } @@ -317,8 +320,7 @@ public class CertificateIssuedListener implements IRequestListener { keys.set(IEmailResolverKeys.KEY_REQUEST, r); } catch (EBaseException e) { log(ILogger.LL_FAILURE, - CMS.getLogMessage("LISTENERS_CERT_ISSUED_SET_RESOLVER", - e.toString())); + CMS.getLogMessage("LISTENERS_CERT_ISSUED_SET_RESOLVER", e.toString())); } IEmailResolver er = CMS.getReqCertSANameEmailResolver(); @@ -326,14 +328,11 @@ public class CertificateIssuedListener implements IRequestListener { try { mEmail = er.getEmail(keys); } catch (ENotificationException e) { - log(ILogger.LL_FAILURE, - CMS.getLogMessage("OPERATION_ERROR", e.toString())); + log(ILogger.LL_FAILURE, CMS.getLogMessage("OPERATION_ERROR", e.toString())); } catch (EBaseException e) { - log(ILogger.LL_FAILURE, - CMS.getLogMessage("OPERATION_ERROR", e.toString())); + log(ILogger.LL_FAILURE, CMS.getLogMessage("OPERATION_ERROR", e.toString())); } catch (Exception e) { - log(ILogger.LL_FAILURE, - CMS.getLogMessage("OPERATION_ERROR", e.toString())); + log(ILogger.LL_FAILURE, CMS.getLogMessage("OPERATION_ERROR", e.toString())); } // now we can mail @@ -353,25 +352,23 @@ public class CertificateIssuedListener implements IRequestListener { if (!template.init()) { return; } - + if (template.isHTML()) { mn.setContentType("text/html"); } // build some token data mContentParams.put(IEmailFormProcessor.TOKEN_ID, - mConfig.getName()); + mConfig.getName()); mReqId = r.getRequestId(); mContentParams.put(IEmailFormProcessor.TOKEN_REQUEST_ID, - (Object) mReqId.toString()); + (Object) mReqId.toString()); IEmailFormProcessor et = CMS.getEmailFormProcessor(); - String c = et.getEmailContent(template.toString(), - mContentParams); + String c = et.getEmailContent(template.toString(), mContentParams); mn.setContent(c); } else { - log(ILogger.LL_FAILURE, - CMS.getLogMessage("LISTENERS_CERT_ISSUED_REJECTION")); + log(ILogger.LL_FAILURE, CMS.getLogMessage("LISTENERS_CERT_ISSUED_REJECTION")); mn.setContent("Your Certificate Request has been rejected. Please contact your administrator for assistance"); } @@ -379,52 +376,49 @@ public class CertificateIssuedListener implements IRequestListener { mn.sendNotification(); } catch (ENotificationException e) { // already logged, lets audit - log(ILogger.LL_FAILURE, - CMS.getLogMessage("OPERATION_ERROR", e.toString())); - + log(ILogger.LL_FAILURE, CMS.getLogMessage("OPERATION_ERROR", e.toString())); + } catch (IOException e) { - log(ILogger.LL_FAILURE, - CMS.getLogMessage("OPERATION_ERROR", e.toString())); + log(ILogger.LL_FAILURE, CMS.getLogMessage("OPERATION_ERROR", e.toString())); } } else { - log(ILogger.LL_FAILURE, CMS.getLogMessage( - "LISTENERS_CERT_ISSUED_REJECTION_NOTIFICATION", - mReqId.toString())); + log(ILogger.LL_FAILURE, + CMS.getLogMessage("LISTENERS_CERT_ISSUED_REJECTION_NOTIFICATION", mReqId.toString())); } } private void buildContentParams(X509CertImpl issuedCert[], String mEmail) { - mContentParams.put(IEmailFormProcessor.TOKEN_ID, mConfig.getName()); + mContentParams.put(IEmailFormProcessor.TOKEN_ID, + mConfig.getName()); mContentParams.put(IEmailFormProcessor.TOKEN_SERIAL_NUM, - (Object) issuedCert[0].getSerialNumber().toString()); + (Object) issuedCert[0].getSerialNumber().toString()); mContentParams.put(IEmailFormProcessor.TOKEN_HEX_SERIAL_NUM, - (Object) Long.toHexString(issuedCert[0].getSerialNumber() - .longValue())); + (Object) Long.toHexString(issuedCert[0].getSerialNumber().longValue())); mContentParams.put(IEmailFormProcessor.TOKEN_REQUEST_ID, - (Object) mReqId.toString()); + (Object) mReqId.toString()); mContentParams.put(IEmailFormProcessor.TOKEN_HTTP_HOST, - (Object) mHttpHost); + (Object) mHttpHost); mContentParams.put(IEmailFormProcessor.TOKEN_HTTP_PORT, - (Object) mHttpPort); + (Object) mHttpPort); mContentParams.put(IEmailFormProcessor.TOKEN_ISSUER_DN, - (Object) issuedCert[0].getIssuerDN().toString()); + (Object) issuedCert[0].getIssuerDN().toString()); mContentParams.put(IEmailFormProcessor.TOKEN_SUBJECT_DN, - (Object) issuedCert[0].getSubjectDN().toString()); + (Object) issuedCert[0].getSubjectDN().toString()); Date date = (Date) issuedCert[0].getNotAfter(); mContentParams.put(IEmailFormProcessor.TOKEN_NOT_AFTER, - mDateFormat.format(date)); + mDateFormat.format(date)); date = (Date) issuedCert[0].getNotBefore(); mContentParams.put(IEmailFormProcessor.TOKEN_NOT_BEFORE, - mDateFormat.format(date)); + mDateFormat.format(date)); mContentParams.put(IEmailFormProcessor.TOKEN_SENDER_EMAIL, - (Object) mSenderEmail); + (Object) mSenderEmail); mContentParams.put(IEmailFormProcessor.TOKEN_RECIPIENT_EMAIL, - (Object) mEmail); + (Object) mEmail); // ... and more } @@ -446,15 +440,15 @@ public class CertificateIssuedListener implements IRequestListener { } else if (name.equalsIgnoreCase(PROP_EMAIL_TEMPLATE)) { mFormPath = val; } else { - log(ILogger.LL_FAILURE, - CMS.getLogMessage("LISTENERS_CERT_ISSUED_SET")); + log(ILogger.LL_FAILURE, CMS.getLogMessage("LISTENERS_CERT_ISSUED_SET")); } } private void log(int level, String msg) { if (mLogger == null) return; - mLogger.log(ILogger.EV_SYSTEM, null, ILogger.S_OTHER, level, msg); + mLogger.log(ILogger.EV_SYSTEM, null, ILogger.S_OTHER, + level, msg); } } |