diff options
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.java | 6 | ||||
-rw-r--r-- | base/common/src/com/netscape/cms/servlet/request/KeyRequestService.java | 2 | ||||
-rw-r--r-- | base/common/src/com/netscape/cms/servlet/request/model/CertEnrollmentRequestFactory.java | 51 | ||||
-rw-r--r-- | base/common/src/com/netscape/cms/servlet/request/model/CertRequestDAO.java | 215 | ||||
-rw-r--r-- | base/common/src/com/netscape/cms/servlet/request/model/CertRequestInfoFactory.java | 83 | ||||
-rw-r--r-- | base/common/src/com/netscape/cms/servlet/request/model/CertReviewResponseFactory.java | 174 | ||||
-rw-r--r-- | base/common/src/com/netscape/cms/servlet/request/model/KeyRequestDAO.java | 265 |
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; - } -} |