summaryrefslogtreecommitdiffstats
path: root/pki/base/common/src/com/netscape/cms/servlet/request
diff options
context:
space:
mode:
authorAde Lee <alee@redhat.com>2012-01-18 23:28:11 -0500
committerAde Lee <alee@redhat.com>2012-02-08 16:02:24 -0500
commit0e038046bfdb2cf174450dcb80e2f0b2887947e2 (patch)
treeed274bba39abacd4d6da87a57415efda43e49811 /pki/base/common/src/com/netscape/cms/servlet/request
parentd1247e1a404426c9ca2ceeffc52f2b73a0fb6d06 (diff)
downloadpki-0e038046bfdb2cf174450dcb80e2f0b2887947e2.tar.gz
pki-0e038046bfdb2cf174450dcb80e2f0b2887947e2.tar.xz
pki-0e038046bfdb2cf174450dcb80e2f0b2887947e2.zip
New DRM proxy client and tests
Added new interfaces for each Resource, and renamed old Resource service classes.
Diffstat (limited to 'pki/base/common/src/com/netscape/cms/servlet/request')
-rw-r--r--pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestResource.java141
-rw-r--r--pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestResourceService.java139
-rw-r--r--pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestsResource.java121
-rw-r--r--pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestsResourceService.java111
4 files changed, 279 insertions, 233 deletions
diff --git a/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestResource.java b/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestResource.java
index 154986624..0a476c49c 100644
--- a/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestResource.java
+++ b/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestResource.java
@@ -1,21 +1,3 @@
-// --- 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;
import javax.ws.rs.GET;
@@ -24,146 +6,57 @@ import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.Consumes;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import com.netscape.certsrv.base.EBaseException;
-import com.netscape.cms.servlet.base.CMSResource;
import com.netscape.cms.servlet.request.model.ArchivalRequestData;
-import com.netscape.cms.servlet.request.model.KeyRequestDAO;
import com.netscape.cms.servlet.request.model.KeyRequestInfo;
import com.netscape.cms.servlet.request.model.RecoveryRequestData;
-
-/**
- * @author alee
- *
- */
+
@Path("/keyrequest")
-public class KeyRequestResource extends CMSResource {
+public interface KeyRequestResource {
- @Context
- UriInfo uriInfo;
-
/**
* Used to retrieve key request info for a specific request
*/
@GET
@Path("{id}")
- @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.TEXT_XML })
- public KeyRequestInfo getRequestInfo(@PathParam("id") String id) {
- // auth and authz
- KeyRequestDAO dao = new KeyRequestDAO();
- KeyRequestInfo info;
- try {
- info = dao.getRequest(id, uriInfo);
- } catch (EBaseException e) {
- // log error
- e.printStackTrace();
- throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
- }
- if (info == null) {
- // request does not exist
- throw new WebApplicationException(Response.Status.NOT_FOUND);
- }
- return info;
- }
-
+ @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.TEXT_XML })
+ public KeyRequestInfo getRequestInfo(@PathParam("id") String id);
+
// Archiving - used to test integration with a browser
@POST
@Path("archive")
@Produces({ MediaType.TEXT_XML })
- public KeyRequestInfo archiveKey(MultivaluedMap<String, String> form) {
- ArchivalRequestData data = new ArchivalRequestData(form);
- return archiveKey(data);
- }
+ public KeyRequestInfo archiveKey(MultivaluedMap<String, String> form);
@POST
@Path("archive")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.TEXT_XML })
@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
- public KeyRequestInfo archiveKey(ArchivalRequestData data) {
- // auth and authz
- KeyRequestDAO dao = new KeyRequestDAO();
- KeyRequestInfo info;
- try {
- info = dao.submitRequest(data, uriInfo);
- } catch (EBaseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
- }
- return info;
- }
-
+ public KeyRequestInfo archiveKey(ArchivalRequestData data);
+
//Recovery - used to test integration with a browser
@POST
@Path("recover")
@Produces({ MediaType.TEXT_XML })
- public KeyRequestInfo recoverKey(MultivaluedMap<String, String> form) {
- RecoveryRequestData data = new RecoveryRequestData(form);
- return recoverKey(data);
- }
+ public KeyRequestInfo recoverKey(MultivaluedMap<String, String> form);
@POST
@Path("recover")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.TEXT_XML })
@Consumes({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
- public KeyRequestInfo recoverKey(RecoveryRequestData data) {
- // auth and authz
- KeyRequestDAO dao = new KeyRequestDAO();
- KeyRequestInfo info;
- try {
- info = dao.submitRequest(data, uriInfo);
- } catch (EBaseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
- }
- return info;
- }
-
+ public KeyRequestInfo recoverKey(RecoveryRequestData data);
+
@POST
@Path("approve/{id}")
- public void approveRequest(@PathParam("id") String id) {
- // auth and authz
- KeyRequestDAO dao = new KeyRequestDAO();
- try {
- dao.approveRequest(id);
- } catch (EBaseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
- }
- }
-
+ public void approveRequest(@PathParam("id") String id);
+
@POST
@Path("reject/{id}")
- public void rejectRequest(@PathParam("id") String id) {
- // auth and authz
- KeyRequestDAO dao = new KeyRequestDAO();
- try {
- dao.rejectRequest(id);
- } catch (EBaseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
- }
- }
-
+ public void rejectRequest(@PathParam("id") String id);
+
@POST
@Path("cancel/{id}")
- public void cancelRequest(@PathParam("id") String id) {
- // auth and authz
- KeyRequestDAO dao = new KeyRequestDAO();
- try {
- dao.cancelRequest(id);
- } catch (EBaseException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
- }
- }
+ public void cancelRequest(@PathParam("id") String id);
+
}
diff --git a/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestResourceService.java b/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestResourceService.java
new file mode 100644
index 000000000..da08c4d69
--- /dev/null
+++ b/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestResourceService.java
@@ -0,0 +1,139 @@
+// --- 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;
+
+import javax.ws.rs.PathParam;
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
+import com.netscape.certsrv.base.EBaseException;
+import com.netscape.cms.servlet.base.CMSResourceService;
+import com.netscape.cms.servlet.request.model.ArchivalRequestData;
+import com.netscape.cms.servlet.request.model.KeyRequestDAO;
+import com.netscape.cms.servlet.request.model.KeyRequestInfo;
+import com.netscape.cms.servlet.request.model.RecoveryRequestData;
+
+/**
+ * @author alee
+ *
+ */
+public class KeyRequestResourceService extends CMSResourceService implements KeyRequestResource {
+
+ @Context
+ UriInfo uriInfo;
+
+ /**
+ * Used to retrieve key request info for a specific request
+ */
+ public KeyRequestInfo getRequestInfo(String id) {
+ // auth and authz
+ KeyRequestDAO dao = new KeyRequestDAO();
+ KeyRequestInfo info;
+ try {
+ info = dao.getRequest(id, uriInfo);
+ } catch (EBaseException e) {
+ // log error
+ e.printStackTrace();
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ if (info == null) {
+ // request does not exist
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
+ }
+ return info;
+ }
+
+ // Archiving - used to test integration with a browser
+ public KeyRequestInfo archiveKey(MultivaluedMap<String, String> form) {
+ ArchivalRequestData data = new ArchivalRequestData(form);
+ return archiveKey(data);
+ }
+
+ public KeyRequestInfo archiveKey(ArchivalRequestData data) {
+ // auth and authz
+ KeyRequestDAO dao = new KeyRequestDAO();
+ KeyRequestInfo info;
+ try {
+ info = dao.submitRequest(data, uriInfo);
+ } catch (EBaseException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ return info;
+ }
+
+ //Recovery - used to test integration with a browser
+ public KeyRequestInfo recoverKey(MultivaluedMap<String, String> form) {
+ RecoveryRequestData data = new RecoveryRequestData(form);
+ return recoverKey(data);
+ }
+
+ public KeyRequestInfo recoverKey(RecoveryRequestData data) {
+ // auth and authz
+ KeyRequestDAO dao = new KeyRequestDAO();
+ KeyRequestInfo info;
+ try {
+ info = dao.submitRequest(data, uriInfo);
+ } catch (EBaseException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ return info;
+ }
+
+ public void approveRequest(@PathParam("id") String id) {
+ // auth and authz
+ KeyRequestDAO dao = new KeyRequestDAO();
+ try {
+ dao.approveRequest(id);
+ } catch (EBaseException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+
+ public void rejectRequest(@PathParam("id") String id) {
+ // auth and authz
+ KeyRequestDAO dao = new KeyRequestDAO();
+ try {
+ dao.rejectRequest(id);
+ } catch (EBaseException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+
+ public void cancelRequest(@PathParam("id") String id) {
+ // auth and authz
+ KeyRequestDAO dao = new KeyRequestDAO();
+ try {
+ dao.cancelRequest(id);
+ } catch (EBaseException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ }
+}
diff --git a/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestsResource.java b/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestsResource.java
index ce53053d4..0f8fbc78f 100644
--- a/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestsResource.java
+++ b/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestsResource.java
@@ -1,21 +1,3 @@
-// --- 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;
import javax.ws.rs.DefaultValue;
@@ -23,32 +5,16 @@ import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-
-import com.netscape.certsrv.apps.CMS;
-import com.netscape.certsrv.base.EBaseException;
-import com.netscape.cms.servlet.base.CMSResource;
-import com.netscape.cms.servlet.request.model.KeyRequestDAO;
import com.netscape.cms.servlet.request.model.KeyRequestInfos;
-
-/**
- * @author alee
- *
- */
-@Path("/keyrequests")
-public class KeyRequestsResource extends CMSResource {
- private static final int DEFAULT_START = 0;
- private static final String DEFAULT_PAGESIZE = "20";
- private static final String DEFAULT_MAXRESULTS = "100";
- private static final String DEFAULT_MAXTIME = "10";
+@Path("/keyrequests")
+public interface KeyRequestsResource {
- @Context
- UriInfo uriInfo;
+ public static final String DEFAULT_START = "0";
+ public static final String DEFAULT_PAGESIZE = "20";
+ public static final String DEFAULT_MAXRESULTS = "100";
+ public static final String DEFAULT_MAXTIME = "10";
/**
* Used to generate list of key requests based on the search parameters
@@ -56,74 +22,11 @@ public class KeyRequestsResource extends CMSResource {
@GET
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.TEXT_XML })
public KeyRequestInfos listRequests(@QueryParam("requestState") String requestState,
- @QueryParam("requestType") String requestType,
- @QueryParam("clientID") String clientID,
- @QueryParam("start") String start_s,
- @DefaultValue(DEFAULT_PAGESIZE) @QueryParam("pageSize") int pageSize,
- @DefaultValue(DEFAULT_MAXRESULTS) @QueryParam("maxResults") int maxResults,
- @DefaultValue(DEFAULT_MAXTIME) @QueryParam("maxTime") int maxTime) {
- // auth and authz
-
- // get ldap filter
- String filter = createSearchFilter(requestState, requestType, clientID);
- CMS.debug("listRequests: filter is " + filter);
-
-
- // get start marker
- int start = DEFAULT_START;
- if (start_s != null) {
- try {
- if (start_s.trim().startsWith("0x")) {
- start = Integer.parseInt(start_s.trim().substring(2), 16);
- } else {
- start = Integer.parseInt(start_s.trim());
- }
- } catch (NumberFormatException e) {
- CMS.debug("listRequests: NumberformatException: Invalid value for start " + start_s);
- throw new WebApplicationException(Response.Status.NOT_FOUND);
- }
- }
-
- KeyRequestDAO reqDAO = new KeyRequestDAO();
- KeyRequestInfos requests;
- try {
- requests = reqDAO.listRequests(filter, start, pageSize, maxResults, maxTime, uriInfo);
- } catch (EBaseException e) {
- CMS.debug("listRequests: error in obtaining request results" + e);
- e.printStackTrace();
- throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
- }
- return requests;
- }
+ @QueryParam("requestType") String requestType,
+ @QueryParam("clientID") String clientID,
+ @DefaultValue(DEFAULT_START) @QueryParam("start") String start_s,
+ @DefaultValue(DEFAULT_PAGESIZE) @QueryParam("pageSize") int pageSize,
+ @DefaultValue(DEFAULT_MAXRESULTS) @QueryParam("maxResults") int maxResults,
+ @DefaultValue(DEFAULT_MAXTIME) @QueryParam("maxTime") int maxTime);
- private String createSearchFilter(String requestState, String requestType, String clientID) {
- String filter = "";
- int matches = 0;
-
- if ((requestState == null) && (requestType == null) && (clientID == null)) {
- filter = "(requeststate=*)";
- return filter;
- }
-
- if (requestState != null) {
- filter += "(requeststate=" + requestState + ")";
- matches ++;
- }
-
- if (requestType != null) {
- filter += "(requesttype=" + requestType + ")";
- matches ++;
- }
-
- if (clientID != null) {
- filter += "(clientID=" + clientID + ")";
- matches ++;
- }
-
- if (matches > 1) {
- filter = "(&" + filter + ")";
- }
-
- return filter;
- }
}
diff --git a/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestsResourceService.java b/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestsResourceService.java
new file mode 100644
index 000000000..290868ab5
--- /dev/null
+++ b/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestsResourceService.java
@@ -0,0 +1,111 @@
+// --- 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;
+
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriInfo;
+
+import com.netscape.certsrv.apps.CMS;
+import com.netscape.certsrv.base.EBaseException;
+import com.netscape.cms.servlet.base.CMSResourceService;
+import com.netscape.cms.servlet.request.model.KeyRequestDAO;
+import com.netscape.cms.servlet.request.model.KeyRequestInfos;
+
+/**
+ * @author alee
+ *
+ */
+public class KeyRequestsResourceService extends CMSResourceService implements KeyRequestsResource{
+
+ @Context
+ UriInfo uriInfo;
+
+ /**
+ * Used to generate list of key requests based on the search parameters
+ */
+ public KeyRequestInfos listRequests(String requestState, String requestType, String clientID,
+ String start_s, int pageSize, int maxResults,
+ int maxTime) {
+ // auth and authz
+
+ // get ldap filter
+ String filter = createSearchFilter(requestState, requestType, clientID);
+ CMS.debug("listRequests: filter is " + filter);
+
+
+ // get start marker
+ int start = Integer.parseInt(KeyRequestsResource.DEFAULT_START);
+ if (start_s != null) {
+ try {
+ if (start_s.trim().startsWith("0x")) {
+ start = Integer.parseInt(start_s.trim().substring(2), 16);
+ } else {
+ start = Integer.parseInt(start_s.trim());
+ }
+ } catch (NumberFormatException e) {
+ CMS.debug("listRequests: NumberformatException: Invalid value for start " + start_s);
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
+ }
+ }
+
+ KeyRequestDAO reqDAO = new KeyRequestDAO();
+ KeyRequestInfos requests;
+ try {
+ requests = reqDAO.listRequests(filter, start, pageSize, maxResults, maxTime, uriInfo);
+ } catch (EBaseException e) {
+ CMS.debug("listRequests: error in obtaining request results" + e);
+ e.printStackTrace();
+ throw new WebApplicationException(Response.Status.INTERNAL_SERVER_ERROR);
+ }
+ return requests;
+ }
+
+ private String createSearchFilter(String requestState, String requestType, String clientID) {
+ String filter = "";
+ int matches = 0;
+
+ if ((requestState == null) && (requestType == null) && (clientID == null)) {
+ filter = "(requeststate=*)";
+ return filter;
+ }
+
+ if (requestState != null) {
+ filter += "(requeststate=" + requestState + ")";
+ matches ++;
+ }
+
+ if (requestType != null) {
+ filter += "(requesttype=" + requestType + ")";
+ matches ++;
+ }
+
+ if (clientID != null) {
+ filter += "(clientID=" + clientID + ")";
+ matches ++;
+ }
+
+ if (matches > 1) {
+ filter = "(&" + filter + ")";
+ }
+
+ return filter;
+ }
+}