summaryrefslogtreecommitdiffstats
path: root/pki/base/common/src/com/netscape/cms/listeners/RequestInQListener.java
diff options
context:
space:
mode:
Diffstat (limited to 'pki/base/common/src/com/netscape/cms/listeners/RequestInQListener.java')
-rw-r--r--pki/base/common/src/com/netscape/cms/listeners/RequestInQListener.java283
1 files changed, 0 insertions, 283 deletions
diff --git a/pki/base/common/src/com/netscape/cms/listeners/RequestInQListener.java b/pki/base/common/src/com/netscape/cms/listeners/RequestInQListener.java
deleted file mode 100644
index 7ff13db54..000000000
--- a/pki/base/common/src/com/netscape/cms/listeners/RequestInQListener.java
+++ /dev/null
@@ -1,283 +0,0 @@
-// --- BEGIN COPYRIGHT BLOCK ---
-// This program is free software; you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; version 2 of the License.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this program; if not, write to the Free Software Foundation, Inc.,
-// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-//
-// (C) 2007 Red Hat, Inc.
-// All rights reserved.
-// --- END COPYRIGHT BLOCK ---
-package com.netscape.cms.listeners;
-
-import java.io.IOException;
-import java.util.Hashtable;
-
-import com.netscape.certsrv.apps.CMS;
-import com.netscape.certsrv.authority.ICertAuthority;
-import com.netscape.certsrv.base.EBaseException;
-import com.netscape.certsrv.base.EPropertyNotFound;
-import com.netscape.certsrv.base.IConfigStore;
-import com.netscape.certsrv.base.ISubsystem;
-import com.netscape.certsrv.listeners.EListenersException;
-import com.netscape.certsrv.logging.ILogger;
-import com.netscape.certsrv.notification.ENotificationException;
-import com.netscape.certsrv.notification.IEmailFormProcessor;
-import com.netscape.certsrv.notification.IEmailTemplate;
-import com.netscape.certsrv.notification.IMailNotification;
-import com.netscape.certsrv.request.IRequest;
-import com.netscape.certsrv.request.IRequestListener;
-import com.netscape.certsrv.request.RequestId;
-import com.netscape.cms.profile.input.SubjectNameInput;
-import com.netscape.cms.profile.input.SubmitterInfoInput;
-
-/**
- * a listener for every request gets into the request queue.
- * <p>
- * Here is a list of available $TOKENs for email notification templates:
- * <UL>
- * <LI>$RequestorEmail
- * <LI>$CertType
- * <LI>$RequestType
- * <LI>$RequestId
- * <LI>$HttpHost
- * <LI>$HttpPort
- * <LI>$SenderEmail
- * <LI>$RecipientEmail
- * </UL>
- *
- */
-public class RequestInQListener implements IRequestListener {
- protected static final String PROP_ENABLED = "enabled";
- protected final static String PROP_SENDER_EMAIL = "senderEmail";
- protected final static String PROP_RECVR_EMAIL = "recipientEmail";
- public final static String PROP_EMAIL_TEMPLATE = "emailTemplate";
- protected static final String PROP_EMAIL_SUBJECT = "emailSubject";
-
- protected final static String PROP_NOTIFY_SUBSTORE = "notification";
- protected final static String PROP_REQ_IN_Q_SUBSTORE = "requestInQ";
-
- private boolean mEnabled = false;
- private ILogger mLogger = CMS.getLogger();
- private String mSenderEmail = null;
- private String mRecipientEmail = null;
- private String mEmailSubject = null;
- private String mFormPath = null;
- private IConfigStore mConfig = null;
- private Hashtable<String, Object> mContentParams = new Hashtable<String, Object>();
- private String mId = "RequestInQListener";
- private ICertAuthority mSubsystem = null;
- private String mHttpHost = null;
- private String mAgentPort = null;
-
- /**
- * Constructor
- */
- public RequestInQListener() {
- }
-
- /**
- * initializes the listener from the configuration
- */
- public void init(ISubsystem sub, IConfigStore config)
- throws EListenersException, EPropertyNotFound, EBaseException {
-
- mSubsystem = (ICertAuthority) sub;
- mConfig = mSubsystem.getConfigStore();
-
- IConfigStore nc = mConfig.getSubStore(PROP_NOTIFY_SUBSTORE);
- IConfigStore rq = nc.getSubStore(PROP_REQ_IN_Q_SUBSTORE);
-
- mEnabled = rq.getBoolean(PROP_ENABLED, false);
-
- mSenderEmail = rq.getString(PROP_SENDER_EMAIL);
- if (mSenderEmail == null) {
- throw new EListenersException(CMS.getLogMessage("NO_NOTIFY_SENDER_EMAIL_CONFIG_FOUND"));
- }
- mRecipientEmail = rq.getString(PROP_RECVR_EMAIL);
- if (mRecipientEmail == null) {
- throw new EListenersException(CMS.getLogMessage("NO_NOTIFY_RECVR_EMAIL_CONFIG_FOUND"));
- }
-
- mEmailSubject = rq.getString(PROP_EMAIL_SUBJECT);
- if (mEmailSubject == null) {
- mEmailSubject = "Request in Queue";
- }
-
- mFormPath = rq.getString(PROP_EMAIL_TEMPLATE);
-
- // make available http host and port for forming url in templates
- mHttpHost = CMS.getAgentHost();
- mAgentPort = CMS.getAgentPort();
- if (mAgentPort == null)
- log(ILogger.LL_FAILURE, CMS.getLogMessage("LISTENERS_REQUEST_PORT_NOT_FOUND"));
- else
- CMS.debug("RequestInQuListener: agentport = " + mAgentPort);
-
- // register for this event listener
- mSubsystem.registerPendingListener(this);
- }
-
- /**
- * carries out the operation when the listener is triggered.
- *
- * @param r IRequest structure holding the request information
- * @see com.netscape.certsrv.request.IRequest
- */
- public void accept(IRequest r) {
-
- if (mEnabled != true)
- return;
-
- // regardless of type of request...notify for everything
- // no need for email resolver here...
- IMailNotification mn = CMS.getMailNotification();
-
- mn.setFrom(mSenderEmail);
- mn.setTo(mRecipientEmail);
- mn.setSubject(mEmailSubject + " (request id: " +
- r.getRequestId() + ")");
-
- /*
- * get form file from disk
- */
- IEmailTemplate template = CMS.getEmailTemplate(mFormPath);
-
- /*
- * parse and process the template
- */
- if (template != null) {
- if (!template.init()) {
- log(ILogger.LL_FAILURE, CMS.getLogMessage("LISTENERS_TEMPLATE_NOT_INIT"));
- return;
- }
-
- buildContentParams(r);
- IEmailFormProcessor et = CMS.getEmailFormProcessor();
- String c = et.getEmailContent(template.toString(), mContentParams);
-
- if (template.isHTML()) {
- mn.setContentType("text/html");
- }
- mn.setContent(c);
- } else {
- // log and mail
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("LISTENERS_TEMPLATE_NOT_GET"));
- mn.setContent("Template not retrievable for Request in Queue notification");
- }
-
- try {
- mn.sendNotification();
- } catch (ENotificationException e) {
- // already logged, lets audit
- mLogger.log(ILogger.EV_AUDIT, null,
- ILogger.S_OTHER,
- ILogger.LL_FAILURE, CMS.getLogMessage("OPERATION_ERROR", e.toString()));
-
- mLogger.log(ILogger.EV_SYSTEM, ILogger.S_OTHER,
- ILogger.LL_FAILURE,
- CMS.getLogMessage("LISTENERS_SEND_FAILED", e.toString()));
-
- } catch (IOException e) {
- log(ILogger.LL_FAILURE,
- CMS.getLogMessage("LISTENERS_SEND_FAILED", e.toString()));
- }
- }
-
- private void buildContentParams(IRequest r) {
- mContentParams.clear();
- mContentParams.put(IEmailFormProcessor.TOKEN_ID,
- mConfig.getName());
- Object val = null;
-
- String profileId = r.getExtDataInString("profileId");
-
- if (profileId == null) {
- val = r.getExtDataInString(IRequest.HTTP_PARAMS, "csrRequestorEmail");
- } else {
- // use the submitter info if available, otherwise, use the
- // subject name input email
- val = r.getExtDataInString(SubmitterInfoInput.EMAIL);
-
- if ((val == null) || (((String) val).compareTo("") == 0)) {
- val = r.getExtDataInString(SubjectNameInput.VAL_EMAIL);
- }
- }
- if (val != null)
- mContentParams.put(IEmailFormProcessor.TOKEN_REQUESTOR_EMAIL,
- val);
-
- if (profileId == null) {
- val = r.getExtDataInString(IRequest.HTTP_PARAMS, IRequest.CERT_TYPE);
- } else {
- val = profileId;
- }
- if (val != null) {
- mContentParams.put(IEmailFormProcessor.TOKEN_CERT_TYPE,
- val);
- }
-
- RequestId reqId = r.getRequestId();
-
- mContentParams.put(IEmailFormProcessor.TOKEN_REQUEST_ID,
- (Object) reqId.toString());
-
- mContentParams.put(IEmailFormProcessor.TOKEN_ID, mId);
-
- val = r.getRequestType();
- if (val != null)
- mContentParams.put(IEmailFormProcessor.TOKEN_REQUEST_TYPE,
- val);
-
- mContentParams.put(IEmailFormProcessor.TOKEN_HTTP_HOST,
- (Object) mHttpHost);
- mContentParams.put(IEmailFormProcessor.TOKEN_HTTP_PORT,
- (Object) mAgentPort);
-
- mContentParams.put(IEmailFormProcessor.TOKEN_SENDER_EMAIL,
- (Object) mSenderEmail);
- mContentParams.put(IEmailFormProcessor.TOKEN_RECIPIENT_EMAIL,
- (Object) mRecipientEmail);
- }
-
- /**
- * sets the configurable parameters
- *
- * @param name a String represents the name of the configuration parameter to be set
- * @param val a String containing the value to be set for name
- */
- public void set(String name, String val) {
- if (name.equalsIgnoreCase(PROP_ENABLED)) {
- if (val.equalsIgnoreCase("true")) {
- mEnabled = true;
- } else {
- mEnabled = false;
- }
- } else if (name.equalsIgnoreCase(PROP_SENDER_EMAIL)) {
- mSenderEmail = val;
- } else if (name.equalsIgnoreCase(PROP_RECVR_EMAIL)) {
- mRecipientEmail = val;
- } else if (name.equalsIgnoreCase(PROP_EMAIL_SUBJECT)) {
- mEmailSubject = val;
- } else if (name.equalsIgnoreCase(PROP_EMAIL_TEMPLATE)) {
- mFormPath = val;
- } else {
- 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);
- }
-}