summaryrefslogtreecommitdiffstats
path: root/base/common/src/com/netscape/cms/servlet/request
diff options
context:
space:
mode:
authorEndi Sukma Dewata <edewata@redhat.com>2012-08-11 10:32:01 -0500
committerEndi Sukma Dewata <edewata@redhat.com>2012-08-15 12:07:39 -0500
commit3c9b8e787ccf066c38469e1fe2c119d5c410bb5e (patch)
tree88fdd1b9674f7a350ca56add03a99af13c58189f /base/common/src/com/netscape/cms/servlet/request
parent108bd269ab0eb512c334939fabde68eeab5b0b67 (diff)
downloadpki-3c9b8e787ccf066c38469e1fe2c119d5c410bb5e.tar.gz
pki-3c9b8e787ccf066c38469e1fe2c119d5c410bb5e.tar.xz
pki-3c9b8e787ccf066c38469e1fe2c119d5c410bb5e.zip
Reorganized REST server classes.
The factory and DAO classes used by REST services have been moved into the com.netscape.cms.servlet.<component> packages. Ticket #215
Diffstat (limited to 'base/common/src/com/netscape/cms/servlet/request')
-rw-r--r--base/common/src/com/netscape/cms/servlet/request/CMSRequestDAO.java (renamed from base/common/src/com/netscape/cms/servlet/request/model/CMSRequestDAO.java)6
-rw-r--r--base/common/src/com/netscape/cms/servlet/request/CertRequestService.java6
-rw-r--r--base/common/src/com/netscape/cms/servlet/request/KeyRequestService.java2
-rw-r--r--base/common/src/com/netscape/cms/servlet/request/model/CertEnrollmentRequestFactory.java51
-rw-r--r--base/common/src/com/netscape/cms/servlet/request/model/CertRequestDAO.java215
-rw-r--r--base/common/src/com/netscape/cms/servlet/request/model/CertRequestInfoFactory.java83
-rw-r--r--base/common/src/com/netscape/cms/servlet/request/model/CertReviewResponseFactory.java174
-rw-r--r--base/common/src/com/netscape/cms/servlet/request/model/KeyRequestDAO.java265
8 files changed, 8 insertions, 794 deletions
diff --git a/base/common/src/com/netscape/cms/servlet/request/model/CMSRequestDAO.java b/base/common/src/com/netscape/cms/servlet/request/CMSRequestDAO.java
index 5ac984168..5d1df774d 100644
--- a/base/common/src/com/netscape/cms/servlet/request/model/CMSRequestDAO.java
+++ b/base/common/src/com/netscape/cms/servlet/request/CMSRequestDAO.java
@@ -15,7 +15,7 @@
// (C) 2011 Red Hat, Inc.
// All rights reserved.
// --- END COPYRIGHT BLOCK ---
-package com.netscape.cms.servlet.request.model;
+package com.netscape.cms.servlet.request;
import java.net.URI;
import java.util.ArrayList;
@@ -34,6 +34,8 @@ import com.netscape.certsrv.request.IRequestQueue;
import com.netscape.certsrv.request.IRequestVirtualList;
import com.netscape.certsrv.request.RequestId;
import com.netscape.cms.servlet.base.model.Link;
+import com.netscape.cms.servlet.request.model.CMSRequestInfo;
+import com.netscape.cms.servlet.request.model.CMSRequestInfos;
/**
* @author alee
@@ -161,6 +163,6 @@ public abstract class CMSRequestDAO {
return false;
}
- abstract CMSRequestInfo createCMSRequestInfo(IRequest request, UriInfo uriInfo);
+ protected abstract CMSRequestInfo createCMSRequestInfo(IRequest request, UriInfo uriInfo);
}
diff --git a/base/common/src/com/netscape/cms/servlet/request/CertRequestService.java b/base/common/src/com/netscape/cms/servlet/request/CertRequestService.java
index e1aa56592..174b6d7fb 100644
--- a/base/common/src/com/netscape/cms/servlet/request/CertRequestService.java
+++ b/base/common/src/com/netscape/cms/servlet/request/CertRequestService.java
@@ -35,11 +35,11 @@ import com.netscape.certsrv.request.RequestId;
import com.netscape.cms.servlet.base.BadRequestException;
import com.netscape.cms.servlet.base.PKIException;
import com.netscape.cms.servlet.base.PKIService;
-import com.netscape.cms.servlet.request.model.CertReviewResponse;
-import com.netscape.cms.servlet.request.model.CertRequestDAO;
+import com.netscape.cms.servlet.cert.CertRequestDAO;
+import com.netscape.cms.servlet.request.model.CertEnrollmentRequest;
import com.netscape.cms.servlet.request.model.CertRequestInfo;
import com.netscape.cms.servlet.request.model.CertRequestInfos;
-import com.netscape.cms.servlet.request.model.CertEnrollmentRequest;
+import com.netscape.cms.servlet.request.model.CertReviewResponse;
import com.netscape.cmsutil.ldap.LDAPUtil;
/**
diff --git a/base/common/src/com/netscape/cms/servlet/request/KeyRequestService.java b/base/common/src/com/netscape/cms/servlet/request/KeyRequestService.java
index e2afaf58c..188bcb23c 100644
--- a/base/common/src/com/netscape/cms/servlet/request/KeyRequestService.java
+++ b/base/common/src/com/netscape/cms/servlet/request/KeyRequestService.java
@@ -27,8 +27,8 @@ import com.netscape.certsrv.base.EBaseException;
import com.netscape.certsrv.request.RequestId;
import com.netscape.cms.servlet.base.PKIException;
import com.netscape.cms.servlet.base.PKIService;
+import com.netscape.cms.servlet.key.KeyRequestDAO;
import com.netscape.cms.servlet.request.model.KeyArchivalRequest;
-import com.netscape.cms.servlet.request.model.KeyRequestDAO;
import com.netscape.cms.servlet.request.model.KeyRequestInfo;
import com.netscape.cms.servlet.request.model.KeyRequestInfos;
import com.netscape.cms.servlet.request.model.KeyRecoveryRequest;
diff --git a/base/common/src/com/netscape/cms/servlet/request/model/CertEnrollmentRequestFactory.java b/base/common/src/com/netscape/cms/servlet/request/model/CertEnrollmentRequestFactory.java
deleted file mode 100644
index 36c4adfca..000000000
--- a/base/common/src/com/netscape/cms/servlet/request/model/CertEnrollmentRequestFactory.java
+++ /dev/null
@@ -1,51 +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) 2012 Red Hat, Inc.
-//All rights reserved.
-//--- END COPYRIGHT BLOCK ---
-package com.netscape.cms.servlet.request.model;
-
-import java.util.Enumeration;
-import java.util.Locale;
-
-import com.netscape.certsrv.base.IArgBlock;
-import com.netscape.certsrv.profile.EProfileException;
-import com.netscape.certsrv.profile.IProfile;
-import com.netscape.certsrv.profile.IProfileInput;
-import com.netscape.cms.servlet.common.CMSRequest;
-import com.netscape.cms.servlet.profile.model.ProfileInput;
-import com.netscape.cms.servlet.profile.model.ProfileInputFactory;
-
-public class CertEnrollmentRequestFactory {
-
- public static CertEnrollmentRequest create(CMSRequest cmsReq, IProfile profile, Locale locale)
- throws EProfileException {
- IArgBlock params = cmsReq.getHttpParams();
-
- CertEnrollmentRequest ret = new CertEnrollmentRequest();
- ret.setProfileId(profile.getId());
-
- // populate profile inputs
- Enumeration<String> inputIds = profile.getProfileInputIds();
- while (inputIds.hasMoreElements()) {
- IProfileInput input = profile.getProfileInput(inputIds.nextElement());
- ProfileInput addInput = ProfileInputFactory.create(input, params, locale);
- ret.addInput(addInput);
- }
-
- return ret;
- }
-
-}
diff --git a/base/common/src/com/netscape/cms/servlet/request/model/CertRequestDAO.java b/base/common/src/com/netscape/cms/servlet/request/model/CertRequestDAO.java
deleted file mode 100644
index 3aacf1b88..000000000
--- a/base/common/src/com/netscape/cms/servlet/request/model/CertRequestDAO.java
+++ /dev/null
@@ -1,215 +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) 2011 Red Hat, Inc.
-// All rights reserved.
-// --- END COPYRIGHT BLOCK ---
-package com.netscape.cms.servlet.request.model;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Random;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.core.UriInfo;
-
-import com.netscape.certsrv.apps.CMS;
-import com.netscape.certsrv.base.EBaseException;
-import com.netscape.certsrv.base.Nonces;
-import com.netscape.certsrv.ca.ICertificateAuthority;
-import com.netscape.certsrv.profile.IProfile;
-import com.netscape.certsrv.profile.IProfileSubsystem;
-import com.netscape.certsrv.request.IRequest;
-import com.netscape.certsrv.request.IRequestQueue;
-import com.netscape.certsrv.request.RequestId;
-import com.netscape.cms.servlet.cert.EnrollmentProcessor;
-import com.netscape.cms.servlet.cert.RenewalProcessor;
-import com.netscape.cms.servlet.cert.RequestProcessor;
-import com.netscape.cms.servlet.processors.Processor;
-import com.netscape.cms.servlet.request.RequestNotFoundException;
-
-
-/**
- * @author alee
- *
- */
-public class CertRequestDAO extends CMSRequestDAO {
- private IRequestQueue queue;
- private ICertificateAuthority ca;
- IProfileSubsystem ps;
- private Nonces nonces = null;
- private Random random = null;
-
- public static final String ATTR_SERIALNO = "serialNumber";
-
- public CertRequestDAO() {
- super("ca");
- ca = (ICertificateAuthority) CMS.getSubsystem("ca");
- queue = ca.getRequestQueue();
- if (ca.noncesEnabled()) {
- random = new Random();
- nonces = ca.getNonces();
- }
- ps = (IProfileSubsystem) CMS.getSubsystem(IProfileSubsystem.ID);
- }
-
- /**
- * Finds list of requests matching the specified search filter.
- *
- * If the filter corresponds to a VLV search, then that search is executed and the pageSize
- * and start parameters are used. Otherwise, the maxResults and maxTime parameters are
- * used in the regularly indexed search.
- *
- * @param filter - ldap search filter
- * @param start - start position for VLV search
- * @param pageSize - page size for VLV search
- * @param maxResults - max results to be returned in normal search
- * @param maxTime - max time for normal search
- * @param uriInfo - uri context of request
- * @return collection of key request info
- * @throws EBaseException
- */
-
- @SuppressWarnings("unchecked")
- public CertRequestInfos listRequests(String filter, RequestId start, int pageSize, int maxResults, int maxTime,
- UriInfo uriInfo) throws EBaseException {
-
- CMSRequestInfos cmsInfos = listCMSRequests(filter, start, pageSize, maxResults, maxTime, uriInfo);
-
- CertRequestInfos ret = new CertRequestInfos();
-
- if (cmsInfos == null) {
- ret.setRequests(null);
- ret.setLinks(null);
- return ret;
- }
-
- List<CertRequestInfo> list = new ArrayList<CertRequestInfo>();
- ;
- Collection<? extends CMSRequestInfo> cmsList = cmsInfos.getRequests();
-
- // We absolutely know 100% that this list is a list
- // of CertRequestInfo objects. This is because the method
- // createCMSRequestInfo. Is the only one adding to it
-
- list = (List<CertRequestInfo>) cmsList;
-
- ret.setLinks(cmsInfos.getLinks());
- ret.setRequests(list);
-
- return ret;
- }
-
- /**
- * Gets info for a specific request
- *
- * @param id
- * @return info for specific request
- * @throws EBaseException
- */
- public CertRequestInfo getRequest(RequestId id, UriInfo uriInfo) throws EBaseException {
- IRequest request = queue.findRequest(id);
- if (request == null) {
- return null;
- }
- CertRequestInfo info = createCMSRequestInfo(request, uriInfo);
- return info;
- }
-
- /**
- * Gets info for a specific request
- *
- * @param id
- * @return info for specific request
- * @throws EBaseException
- */
- public CertReviewResponse reviewRequest(HttpServletRequest servletRequest, RequestId id,
- UriInfo uriInfo, Locale locale) throws EBaseException {
- IRequest request = queue.findRequest(id);
- if (request == null) {
- return null;
- }
- String profileId = request.getExtDataInString("profileId");
- IProfile profile = ps.getProfile(profileId);
- CertReviewResponse info = CertReviewResponseFactory.create(request, profile, uriInfo, locale);
- if (ca.noncesEnabled()) {
- addNonce(info, servletRequest);
- }
- return info;
- }
-
- private void addNonce(CertReviewResponse info, HttpServletRequest servletRequest) throws EBaseException {
- if (nonces != null) {
- long n = random.nextLong();
- long m = nonces.addNonce(n, Processor.getSSLClientCertificate(servletRequest));
- if ((n + m) != 0) {
- info.setNonce(Long.toString(m));
- }
- }
- }
-
- /**
- * Submits an enrollment request and processes it.
- *
- * @param data
- * @return info for the request submitted.
- * @throws EBaseException
- * @throws ServletException
- */
- public CertRequestInfos submitRequest(CertEnrollmentRequest data, HttpServletRequest request, UriInfo uriInfo,
- Locale locale) throws EBaseException {
- HashMap<String, Object> results = null;
- if (data.getIsRenewal()) {
- RenewalProcessor processor = new RenewalProcessor("caProfileSubmit", locale);
- results = processor.processRenewal(data, request);
- } else {
- EnrollmentProcessor processor = new EnrollmentProcessor("caProfileSubmit", locale);
- results = processor.processEnrollment(data, request);
- }
-
- CertRequestInfos ret = new CertRequestInfos();
- ArrayList<CertRequestInfo> infos = new ArrayList<CertRequestInfo>();
- IRequest reqs[] = (IRequest[]) results.get(Processor.ARG_REQUESTS);
- for (IRequest req : reqs) {
- CertRequestInfo info = CertRequestInfoFactory.create(req, uriInfo);
- infos.add(info);
- }
- // TODO - what happens if the errorCode is internal error ?
- ret.setRequests(infos);
- ret.setLinks(null);
-
- return ret;
- }
-
- public void changeRequestState(RequestId id, HttpServletRequest request, CertReviewResponse data,
- Locale locale, String op) throws EBaseException {
- IRequest ireq = queue.findRequest(id);
- if (ireq == null) {
- throw new RequestNotFoundException(id);
- }
-
- RequestProcessor processor = new RequestProcessor("caProfileProcess", locale);
- processor.processRequest(request, data, ireq, op);
- }
-
- @Override
- public CertRequestInfo createCMSRequestInfo(IRequest request, UriInfo uriInfo) {
- return CertRequestInfoFactory.create(request, uriInfo);
- }
-
-}
diff --git a/base/common/src/com/netscape/cms/servlet/request/model/CertRequestInfoFactory.java b/base/common/src/com/netscape/cms/servlet/request/model/CertRequestInfoFactory.java
deleted file mode 100644
index c21ea35c9..000000000
--- a/base/common/src/com/netscape/cms/servlet/request/model/CertRequestInfoFactory.java
+++ /dev/null
@@ -1,83 +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) 2012 Red Hat, Inc.
-// All rights reserved.
-// --- END COPYRIGHT BLOCK ---
-
-package com.netscape.cms.servlet.request.model;
-
-import java.math.BigInteger;
-
-import javax.ws.rs.Path;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-
-import netscape.security.x509.X509CertImpl;
-
-import org.apache.commons.lang.StringUtils;
-
-import com.netscape.certsrv.profile.IEnrollProfile;
-import com.netscape.certsrv.request.IRequest;
-import com.netscape.certsrv.request.RequestId;
-import com.netscape.certsrv.request.RequestStatus;
-import com.netscape.cms.servlet.cert.CertResource;
-import com.netscape.cms.servlet.request.CertRequestResource;
-
-public class CertRequestInfoFactory {
-
- public static CertRequestInfo create(IRequest request, UriInfo uriInfo) {
-
- CertRequestInfo info = new CertRequestInfo();
-
- String requestType = request.getRequestType();
- RequestStatus requestStatus = request.getRequestStatus();
-
- info.setRequestType(requestType);
- info.setRequestStatus(requestStatus);
-
- info.setCertRequestType(request.getExtDataInString("cert_request_type"));
-
- Path certRequestPath = CertRequestResource.class.getAnnotation(Path.class);
- RequestId requestId = request.getRequestId();
-
- UriBuilder reqBuilder = uriInfo.getBaseUriBuilder();
- reqBuilder.path(certRequestPath.value() + "/" + requestId);
- info.setRequestURL(reqBuilder.build().toString());
-
- //Get Cert info if issued.
-
- String serialNoStr = null;
-
- if (requestType != null && requestStatus == RequestStatus.COMPLETE) {
- X509CertImpl impl[] = new X509CertImpl[1];
- impl[0] = request.getExtDataInCert(IEnrollProfile.REQUEST_ISSUED_CERT);
-
- BigInteger serialNo;
- if (impl[0] != null) {
- serialNo = impl[0].getSerialNumber();
- serialNoStr = serialNo.toString();
- }
- }
-
- if (!StringUtils.isEmpty(serialNoStr)) {
- Path certPath = CertResource.class.getAnnotation(Path.class);
- UriBuilder certBuilder = uriInfo.getBaseUriBuilder();
- certBuilder.path(certPath.value() + "/" + serialNoStr);
- info.setCertURL(certBuilder.build().toString());
- }
-
- return info;
- }
-}
diff --git a/base/common/src/com/netscape/cms/servlet/request/model/CertReviewResponseFactory.java b/base/common/src/com/netscape/cms/servlet/request/model/CertReviewResponseFactory.java
deleted file mode 100644
index a27437d0f..000000000
--- a/base/common/src/com/netscape/cms/servlet/request/model/CertReviewResponseFactory.java
+++ /dev/null
@@ -1,174 +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) 2012 Red Hat, Inc.
-//All rights reserved.
-//--- END COPYRIGHT BLOCK ---
-package com.netscape.cms.servlet.request.model;
-
-import java.util.Enumeration;
-import java.util.Locale;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.core.UriInfo;
-
-import com.netscape.certsrv.apps.CMS;
-import com.netscape.certsrv.base.EBaseException;
-import com.netscape.certsrv.base.IArgBlock;
-import com.netscape.certsrv.base.Nonces;
-import com.netscape.certsrv.profile.EProfileException;
-import com.netscape.certsrv.profile.IPolicyDefault;
-import com.netscape.certsrv.profile.IProfile;
-import com.netscape.certsrv.profile.IProfileInput;
-import com.netscape.certsrv.profile.IProfilePolicy;
-import com.netscape.certsrv.property.EPropertyException;
-import com.netscape.certsrv.request.IRequest;
-import com.netscape.cms.servlet.common.CMSRequest;
-import com.netscape.cms.servlet.processors.Processor;
-import com.netscape.cms.servlet.profile.model.PolicyConstraint;
-import com.netscape.cms.servlet.profile.model.PolicyConstraintFactory;
-import com.netscape.cms.servlet.profile.model.PolicyDefault;
-import com.netscape.cms.servlet.profile.model.PolicyDefaultFactory;
-import com.netscape.cms.servlet.profile.model.ProfileInput;
-import com.netscape.cms.servlet.profile.model.ProfileInputFactory;
-import com.netscape.cms.servlet.profile.model.ProfilePolicy;
-import com.netscape.cms.servlet.profile.model.ProfilePolicySet;
-
-public class CertReviewResponseFactory {
-
- public static CertReviewResponse create(IRequest request, IProfile profile, UriInfo uriInfo, Locale locale) throws EBaseException {
- CertReviewResponse ret = new CertReviewResponse();
-
- if (request.getRequestType().equals("renewal")) {
- ret.setIsRenewal(true);
- } else {
- ret.setIsRenewal(false);
- }
-
- ret.setRequestId(request.getRequestId());
- ret.setRequestType(request.getRequestType());
- ret.setRequestStatus(request.getRequestStatus().toString());
- if (request.getRequestOwner() == null) {
- ret.setRequestOwner("");
- } else {
- ret.setRequestOwner(request.getRequestOwner());
- }
- ret.setRequestCreationTime(request.getCreationTime().toString());
- ret.setRequestModificationTime(request.getModificationTime().toString());
-
- ret.setProfileId(profile.getId());
- ret.setProfileApprovedBy(request.getExtDataInString("profileApprovedBy"));
- ret.setProfileSetId(request.getExtDataInString("profileSetId"));
- if (profile.isVisible()) {
- ret.setProfileIsVisible("true");
- } else {
- ret.setProfileIsVisible("false");
- }
-
- ret.setProfileName(profile.getName(locale));
- ret.setProfileDescription(profile.getDescription(locale));
- ret.setProfileRemoteHost(request.getExtDataInString("profileRemoteHost"));
- ret.setProfileRemoteAddr(request.getExtDataInString("profileRemoteAddr"));
- if (request.getExtDataInString("requestNotes") == null) {
- ret.setRequestNotes("");
- } else {
- ret.setRequestNotes(request.getExtDataInString("requestNotes"));
- }
-
- // populate profile inputs
- Enumeration<String> inputIds = profile.getProfileInputIds();
- while (inputIds.hasMoreElements()) {
- IProfileInput input = profile.getProfileInput(inputIds.nextElement());
- ProfileInput addInput = ProfileInputFactory.create(input, request, locale);
- ret.addInput(addInput);
- }
-
- String profileSetId = request.getExtDataInString("profileSetId");
- CMS.debug("createAgentCertRequestInfo: profileSetId=" + profileSetId);
- Enumeration<String> policyIds = (profileSetId != null && profileSetId.length() > 0) ?
- profile.getProfilePolicyIds(profileSetId) : null;
- ProfilePolicySet dataPolicySet = new ProfilePolicySet();
-
- if (policyIds != null) {
- while (policyIds.hasMoreElements()) {
- String id = policyIds.nextElement();
- CMS.debug("policyId:" + id);
- IProfilePolicy policy = profile.getProfilePolicy(profileSetId, id);
- ProfilePolicy dataPolicy = new ProfilePolicy();
-
- //populate defaults
- IPolicyDefault def = policy.getDefault();
- PolicyDefault dataDef = PolicyDefaultFactory.create(request, locale, def);
- dataPolicy.setDef(dataDef);
-
- //populate constraints
- PolicyConstraint dataCons = PolicyConstraintFactory.create(locale, policy.getConstraint());
- dataPolicy.setConstraint(dataCons);
-
- dataPolicySet.addPolicy(dataPolicy);
- }
- }
-
-
- ret.addProfilePolicySet(dataPolicySet);
-
- // TODO populate profile outputs
- return ret;
- }
-
- public static CertReviewResponse create(CMSRequest cmsReq, IProfile profile, Nonces nonces, Locale locale)
- throws EPropertyException, EProfileException {
- HttpServletRequest req = cmsReq.getHttpReq();
- IRequest ireq = cmsReq.getIRequest();
- IArgBlock params = cmsReq.getHttpParams();
-
- CertReviewResponse ret = new CertReviewResponse();
- ret.setProfileId(profile.getId());
- ret.setRequestNotes(req.getParameter("requestNotes"));
- ret.setRequestId(ireq.getRequestId());
-
- if (nonces != null) {
- ret.setNonce(req.getParameter(Processor.ARG_REQUEST_NONCE));
- }
-
- // populate profile policy values
- String profileSetId = ireq.getExtDataInString("profileSetId");
- Enumeration<String> policyIds = (profileSetId != null && profileSetId.length() > 0) ?
- profile.getProfilePolicyIds(profileSetId) : null;
- ProfilePolicySet dataPolicySet = new ProfilePolicySet();
-
- if (policyIds != null) {
- while (policyIds.hasMoreElements()) {
- String id = policyIds.nextElement();
- CMS.debug("policyId:" + id);
- IProfilePolicy policy = profile.getProfilePolicy(profileSetId, id);
- com.netscape.cms.servlet.profile.model.ProfilePolicy dataPolicy =
- new com.netscape.cms.servlet.profile.model.ProfilePolicy();
-
- //populate defaults
- IPolicyDefault def = policy.getDefault();
- PolicyDefault dataDef = PolicyDefaultFactory.create(params, locale, def);
- dataPolicy.setDef(dataDef);
-
- dataPolicySet.addPolicy(dataPolicy);
- CMS.debug(dataPolicy.toString());
- }
- }
-
- ret.addProfilePolicySet(dataPolicySet);
-
- return ret;
- }
-
-}
diff --git a/base/common/src/com/netscape/cms/servlet/request/model/KeyRequestDAO.java b/base/common/src/com/netscape/cms/servlet/request/model/KeyRequestDAO.java
deleted file mode 100644
index 6e9de9290..000000000
--- a/base/common/src/com/netscape/cms/servlet/request/model/KeyRequestDAO.java
+++ /dev/null
@@ -1,265 +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) 2011 Red Hat, Inc.
-// All rights reserved.
-// --- END COPYRIGHT BLOCK ---
-package com.netscape.cms.servlet.request.model;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.Hashtable;
-import java.util.List;
-
-import javax.ws.rs.Path;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriInfo;
-
-import com.netscape.certsrv.apps.CMS;
-import com.netscape.certsrv.base.EBaseException;
-import com.netscape.certsrv.dbs.keydb.IKeyRecord;
-import com.netscape.certsrv.dbs.keydb.IKeyRepository;
-import com.netscape.certsrv.dbs.keydb.KeyId;
-import com.netscape.certsrv.kra.IKeyRecoveryAuthority;
-import com.netscape.certsrv.profile.IEnrollProfile;
-import com.netscape.certsrv.request.IRequest;
-import com.netscape.certsrv.request.RequestId;
-import com.netscape.certsrv.request.RequestStatus;
-import com.netscape.cms.servlet.key.KeyResource;
-import com.netscape.cms.servlet.request.KeyRequestResource;
-
-/**
- * @author alee
- *
- */
-public class KeyRequestDAO extends CMSRequestDAO {
-
- private static String REQUEST_ARCHIVE_OPTIONS = IEnrollProfile.REQUEST_ARCHIVE_OPTIONS;
- public static final String ATTR_SERIALNO = "serialNumber";
-
- private IKeyRepository repo;
- private IKeyRecoveryAuthority kra;
-
- public KeyRequestDAO() {
- super("kra");
- kra = ( IKeyRecoveryAuthority ) CMS.getSubsystem( "kra" );
- repo = kra.getKeyRepository();
- }
-
- /**
- * Finds list of requests matching the specified search filter.
- *
- * If the filter corresponds to a VLV search, then that search is executed and the pageSize
- * and start parameters are used. Otherwise, the maxResults and maxTime parameters are
- * used in the regularly indexed search.
- *
- * @param filter - ldap search filter
- * @param start - start position for VLV search
- * @param pageSize - page size for VLV search
- * @param maxResults - max results to be returned in normal search
- * @param maxTime - max time for normal search
- * @param uriInfo - uri context of request
- * @return collection of key request info
- * @throws EBaseException
- */
- @SuppressWarnings("unchecked")
- public KeyRequestInfos listRequests(String filter, RequestId start, int pageSize, int maxResults, int maxTime,
- UriInfo uriInfo) throws EBaseException {
-
- CMSRequestInfos cmsInfos = listCMSRequests(filter, start, pageSize, maxResults, maxTime, uriInfo);
- KeyRequestInfos ret = new KeyRequestInfos();
-
- if (cmsInfos == null) {
- ret.setRequests(null);
- ret.setLinks(null);
- return ret;
- }
-
- List<KeyRequestInfo> list = new ArrayList<KeyRequestInfo>();
- ;
- Collection<? extends CMSRequestInfo> cmsList = cmsInfos.getRequests();
-
- // We absolutely know 100% that this list is a list
- // of KeyRequestInfo objects. This is because the method
- // createCMSRequestInfo. Is the only one adding to it
-
- list = (List<KeyRequestInfo>) cmsList;
-
- ret.setLinks(cmsInfos.getLinks());
- ret.setRequests(list);
-
- return ret;
-
- }
-
- /**
- * Gets info for a specific request
- *
- * @param id
- * @return info for specific request
- * @throws EBaseException
- */
- public KeyRequestInfo getRequest(RequestId id, UriInfo uriInfo) throws EBaseException {
- IRequest request = queue.findRequest(id);
- if (request == null) {
- return null;
- }
- KeyRequestInfo info = createKeyRequestInfo(request, uriInfo);
- return info;
- }
-
- /**
- * Submits an archival request and processes it.
- *
- * @param data
- * @return info for the request submitted.
- * @throws EBaseException
- */
- public KeyRequestInfo submitRequest(KeyArchivalRequest data, UriInfo uriInfo) throws EBaseException {
- String clientId = data.getClientId();
- String wrappedSecurityData = data.getWrappedPrivateData();
- String dataType = data.getDataType();
-
- boolean keyExists = doesKeyExist(clientId, "active", uriInfo);
-
- if (keyExists == true) {
- throw new EBaseException("Can not archive already active existing key!");
- }
-
- IRequest request = queue.newRequest(IRequest.SECURITY_DATA_ENROLLMENT_REQUEST);
-
- request.setExtData(REQUEST_ARCHIVE_OPTIONS, wrappedSecurityData);
- request.setExtData(IRequest.SECURITY_DATA_CLIENT_ID, clientId);
- request.setExtData(IRequest.SECURITY_DATA_TYPE, dataType);
-
- queue.processRequest(request);
-
- queue.markAsServiced(request);
-
- return createKeyRequestInfo(request, uriInfo);
- }
-
- /**
- * Submits a key recovery request.
- *
- * @param data
- * @return info on the recovery request created
- * @throws EBaseException
- */
- public KeyRequestInfo submitRequest(KeyRecoveryRequest data, UriInfo uriInfo) throws EBaseException {
- // set data using request.setExtData(field, data)
-
- String wrappedSessionKeyStr = data.getTransWrappedSessionKey();
- String wrappedPassPhraseStr = data.getSessionWrappedPassphrase();
- String nonceDataStr = data.getNonceData();
-
- IRequest request = queue.newRequest(IRequest.SECURITY_DATA_RECOVERY_REQUEST);
-
- KeyId keyId = data.getKeyId();
-
- Hashtable<String, Object> requestParams;
-
- requestParams = ((IKeyRecoveryAuthority) authority).createVolatileRequest(request.getRequestId());
-
- if (requestParams == null) {
- throw new EBaseException("Can not create Volatile params in submitRequest!");
- }
-
- CMS.debug("Create volatile params for recovery request. " + requestParams);
-
- if (wrappedPassPhraseStr != null) {
- requestParams.put(IRequest.SECURITY_DATA_SESS_PASS_PHRASE, wrappedPassPhraseStr);
- }
-
- if (wrappedSessionKeyStr != null) {
- requestParams.put(IRequest.SECURITY_DATA_TRANS_SESS_KEY, wrappedSessionKeyStr);
- }
-
- if (nonceDataStr != null) {
- requestParams.put(IRequest.SECURITY_DATA_IV_STRING_IN, nonceDataStr);
- }
-
- request.setExtData(ATTR_SERIALNO, keyId.toString());
-
- queue.processRequest(request);
-
- return createKeyRequestInfo(request, uriInfo);
- }
-
- public void approveRequest(RequestId id) throws EBaseException {
- IRequest request = queue.findRequest(id);
- request.setRequestStatus(RequestStatus.APPROVED);
- queue.updateRequest(request);
- }
-
- public void rejectRequest(RequestId id) throws EBaseException {
- IRequest request = queue.findRequest(id);
- request.setRequestStatus(RequestStatus.CANCELED);
- queue.updateRequest(request);
- }
-
- public void cancelRequest(RequestId id) throws EBaseException {
- IRequest request = queue.findRequest(id);
- request.setRequestStatus(RequestStatus.REJECTED);
- queue.updateRequest(request);
- }
-
- private KeyRequestInfo createKeyRequestInfo(IRequest request, UriInfo uriInfo) {
- KeyRequestInfo ret = new KeyRequestInfo();
-
- ret.setRequestType(request.getRequestType());
- ret.setRequestStatus(request.getRequestStatus());
-
- Path keyRequestPath = KeyRequestResource.class.getAnnotation(Path.class);
- RequestId rid = request.getRequestId();
-
- UriBuilder reqBuilder = uriInfo.getBaseUriBuilder();
- reqBuilder.path(keyRequestPath.value() + "/" + rid);
- ret.setRequestURL(reqBuilder.build().toString());
-
- Path keyPath = KeyResource.class.getAnnotation(Path.class);
- String kid = request.getExtDataInString("keyrecord");
-
- UriBuilder keyBuilder = uriInfo.getBaseUriBuilder();
- keyBuilder.path(keyPath.value() + "/" + kid);
- ret.setKeyURL(keyBuilder.build().toString());
-
- return ret;
- }
-
- @Override
- public KeyRequestInfo createCMSRequestInfo(IRequest request, UriInfo uriInfo) {
- return createKeyRequestInfo(request, uriInfo);
- }
-
- //We only care if the key exists or not
- private boolean doesKeyExist(String clientId, String keyStatus, UriInfo uriInfo) {
- String state = "active";
- String filter = "(&(" + IRequest.SECURITY_DATA_CLIENT_ID + "=" + clientId + ")"
- + "(" + IRequest.SECURITY_DATA_STATUS + "=" + state + "))";
- try {
- Enumeration<IKeyRecord> existingKeys = null;
-
- existingKeys = repo.searchKeys(filter, 1, 10);
- if (existingKeys != null && existingKeys.hasMoreElements()) {
- return true;
- }
- } catch (EBaseException e) {
- return false;
- }
-
- return false;
- }
-}