diff options
Diffstat (limited to 'pki/base/common/src/com/netscape/cms/servlet/request')
10 files changed, 88 insertions, 64 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 656768f02..cd08f46bb 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 @@ -8,6 +8,8 @@ import javax.ws.rs.Produces; import javax.ws.rs.Consumes; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MultivaluedMap; + +import com.netscape.certsrv.request.RequestId; import com.netscape.cms.servlet.request.model.ArchivalRequestData; import com.netscape.cms.servlet.request.model.KeyRequestInfo; import com.netscape.cms.servlet.request.model.RecoveryRequestData; @@ -24,7 +26,7 @@ public interface KeyRequestResource { @GET @Path("{id}") @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.TEXT_XML }) - public KeyRequestInfo getRequestInfo(@PathParam("id") String id); + public KeyRequestInfo getRequestInfo(@PathParam("id") RequestId id); // Archiving - used to test integration with a browser @POST @@ -54,14 +56,14 @@ public interface KeyRequestResource { @POST @Path("approve/{id}") - public void approveRequest(@PathParam("id") String id); + public void approveRequest(@PathParam("id") RequestId id); @POST @Path("reject/{id}") - public void rejectRequest(@PathParam("id") String id); + public void rejectRequest(@PathParam("id") RequestId id); @POST @Path("cancel/{id}") - public void cancelRequest(@PathParam("id") String id); + public void cancelRequest(@PathParam("id") RequestId 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 index e18407727..43e58bbdc 100644 --- a/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestResourceService.java +++ b/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestResourceService.java @@ -18,13 +18,13 @@ 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.certsrv.request.RequestId; import com.netscape.cms.servlet.base.CMSResourceService; import com.netscape.cms.servlet.request.model.ArchivalRequestData; import com.netscape.cms.servlet.request.model.KeyRequestDAO; @@ -43,7 +43,7 @@ public class KeyRequestResourceService extends CMSResourceService implements Key /** * Used to retrieve key request info for a specific request */ - public KeyRequestInfo getRequestInfo(String id) { + public KeyRequestInfo getRequestInfo(RequestId id) { // auth and authz KeyRequestDAO dao = new KeyRequestDAO(); KeyRequestInfo info; @@ -118,8 +118,8 @@ public class KeyRequestResourceService extends CMSResourceService implements Key return info; } - public void approveRequest(@PathParam("id") String id) { - if ( id == null) { + public void approveRequest(RequestId id) { + if (id == null) { throw new WebApplicationException(Response.Status.BAD_REQUEST); } // auth and authz @@ -133,8 +133,8 @@ public class KeyRequestResourceService extends CMSResourceService implements Key } } - public void rejectRequest(@PathParam("id") String id) { - if ( id == null) { + public void rejectRequest(RequestId id) { + if (id == null) { throw new WebApplicationException(Response.Status.BAD_REQUEST); } // auth and authz @@ -148,8 +148,8 @@ public class KeyRequestResourceService extends CMSResourceService implements Key } } - public void cancelRequest(@PathParam("id") String id) { - if ( id == null) { + public void cancelRequest(RequestId id) { + if (id == null) { throw new WebApplicationException(Response.Status.BAD_REQUEST); } // auth and authz 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 0f8fbc78f..fd6bc4c27 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 @@ -6,15 +6,17 @@ import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; + +import com.netscape.certsrv.request.RequestId; import com.netscape.cms.servlet.request.model.KeyRequestInfos; @Path("/keyrequests") public interface KeyRequestsResource { - 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"; + public static final int DEFAULT_START = 0; + public static final int DEFAULT_PAGESIZE = 20; + public static final int DEFAULT_MAXRESULTS = 100; + public static final int DEFAULT_MAXTIME = 10; /** * Used to generate list of key requests based on the search parameters @@ -24,9 +26,9 @@ public interface KeyRequestsResource { public KeyRequestInfos listRequests(@QueryParam("requestState") String requestState, @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); + @DefaultValue(""+DEFAULT_START) @QueryParam("start") RequestId start, + @DefaultValue(""+DEFAULT_PAGESIZE) @QueryParam("pageSize") int pageSize, + @DefaultValue(""+DEFAULT_MAXRESULTS) @QueryParam("maxResults") int maxResults, + @DefaultValue(""+DEFAULT_MAXTIME) @QueryParam("maxTime") int maxTime); } 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 index 290868ab5..9b11a96d6 100644 --- a/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestsResourceService.java +++ b/pki/base/common/src/com/netscape/cms/servlet/request/KeyRequestsResourceService.java @@ -25,10 +25,11 @@ import javax.ws.rs.core.UriInfo; import com.netscape.certsrv.apps.CMS; import com.netscape.certsrv.base.EBaseException; +import com.netscape.certsrv.request.RequestId; 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 * @@ -42,28 +43,16 @@ public class KeyRequestsResourceService extends CMSResourceService implements Ke * 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) { + RequestId start, 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); - } + if (start == null) { + start = new RequestId(KeyRequestsResource.DEFAULT_START); } KeyRequestDAO reqDAO = new KeyRequestDAO(); diff --git a/pki/base/common/src/com/netscape/cms/servlet/request/ProcessCertReq.java b/pki/base/common/src/com/netscape/cms/servlet/request/ProcessCertReq.java index 68328a73c..ee5581a6d 100644 --- a/pki/base/common/src/com/netscape/cms/servlet/request/ProcessCertReq.java +++ b/pki/base/common/src/com/netscape/cms/servlet/request/ProcessCertReq.java @@ -314,7 +314,7 @@ public class ProcessCertReq extends CMSServlet { IRequest r = null; if (seqNum.compareTo(BigInteger.ONE.negate()) > 0) { - r = mQueue.findRequest(new RequestId(seqNum.toString())); + r = mQueue.findRequest(new RequestId(seqNum)); } if (seqNum.compareTo(BigInteger.ONE.negate()) > 0 && r != null) { @@ -424,7 +424,7 @@ public class ProcessCertReq extends CMSServlet { } try { - IRequest r = mQueue.findRequest(new RequestId(seqNum.toString())); + IRequest r = mQueue.findRequest(new RequestId(seqNum)); if (r != null) { // overwrite "auditRequesterID" if and only if "id" != null diff --git a/pki/base/common/src/com/netscape/cms/servlet/request/ProcessReq.java b/pki/base/common/src/com/netscape/cms/servlet/request/ProcessReq.java index 93457a281..a4eb68b19 100644 --- a/pki/base/common/src/com/netscape/cms/servlet/request/ProcessReq.java +++ b/pki/base/common/src/com/netscape/cms/servlet/request/ProcessReq.java @@ -245,7 +245,7 @@ public class ProcessReq extends CMSServlet { header.addBigIntegerValue("seqNum", seqNum, 10); - IRequest r = mQueue.findRequest(new RequestId(seqNum.toString())); + IRequest r = mQueue.findRequest(new RequestId(seqNum)); if (r != null) { if (doAssign != null) { diff --git a/pki/base/common/src/com/netscape/cms/servlet/request/QueryReq.java b/pki/base/common/src/com/netscape/cms/servlet/request/QueryReq.java index e580cc9a4..181f9f906 100644 --- a/pki/base/common/src/com/netscape/cms/servlet/request/QueryReq.java +++ b/pki/base/common/src/com/netscape/cms/servlet/request/QueryReq.java @@ -414,7 +414,7 @@ public class QueryReq extends CMSServlet { jumptoend = true; // override to '99' during search } - RequestId id = new RequestId(marker.toString()); + RequestId id = new RequestId(marker); IRequestVirtualList list = mQueue.getPagedRequestsByFilter( id, jumptoend, diff --git a/pki/base/common/src/com/netscape/cms/servlet/request/model/KeyRequestDAO.java b/pki/base/common/src/com/netscape/cms/servlet/request/model/KeyRequestDAO.java index 4da4af6d5..d1f1a27bd 100644 --- a/pki/base/common/src/com/netscape/cms/servlet/request/model/KeyRequestDAO.java +++ b/pki/base/common/src/com/netscape/cms/servlet/request/model/KeyRequestDAO.java @@ -29,6 +29,7 @@ import javax.ws.rs.core.UriInfo; import com.netscape.certsrv.apps.CMS; import com.netscape.certsrv.base.EBaseException; +import com.netscape.certsrv.dbs.keydb.KeyId; import com.netscape.certsrv.kra.IKeyRecoveryAuthority; import com.netscape.certsrv.request.IRequest; import com.netscape.certsrv.request.IRequestList; @@ -89,7 +90,7 @@ public class KeyRequestDAO { * @return collection of key request info * @throws EBaseException */ - public KeyRequestInfos listRequests(String filter, int start, int pageSize, int maxResults, int maxTime, + public KeyRequestInfos listRequests(String filter, RequestId start, int pageSize, int maxResults, int maxTime, UriInfo uriInfo) throws EBaseException { List <KeyRequestInfo> list = new ArrayList<KeyRequestInfo>(); List <Link> links = new ArrayList<Link>(); @@ -97,8 +98,7 @@ public class KeyRequestDAO { int current = 0; if (isVLVSearch(filter)) { - RequestId id = new RequestId(Integer.toString(start)); - IRequestVirtualList vlvlist = queue.getPagedRequestsByFilter(id, false, filter, + IRequestVirtualList vlvlist = queue.getPagedRequestsByFilter(start, false, filter, pageSize +1 , "requestId"); totalSize = vlvlist.getSize(); current = vlvlist.getCurrentIndex(); @@ -120,7 +120,7 @@ public class KeyRequestDAO { return null; } while (requests.hasMoreElements()) { - RequestId rid = (RequestId) requests.nextElement(); + RequestId rid = requests.nextElement(); IRequest request = queue.findRequest(rid); if (request != null) { list.add(createKeyRequestInfo(request, uriInfo)); @@ -168,8 +168,8 @@ public class KeyRequestDAO { * @return info for specific request * @throws EBaseException */ - public KeyRequestInfo getRequest(String id, UriInfo uriInfo) throws EBaseException { - IRequest request = queue.findRequest(new RequestId(id)); + public KeyRequestInfo getRequest(RequestId id, UriInfo uriInfo) throws EBaseException { + IRequest request = queue.findRequest(id); if (request == null) { return null; } @@ -189,7 +189,7 @@ public class KeyRequestDAO { boolean keyExists = doesKeyExist(clientId, "active", uriInfo); - if(keyExists == true) { + if (keyExists == true) { throw new EBaseException("Can not archive already active existing key!"); } @@ -221,7 +221,7 @@ public class KeyRequestDAO { IRequest request = queue.newRequest(IRequest.SECURITY_DATA_RECOVERY_REQUEST); - String keyId = data.getKeyId(); + KeyId keyId = data.getKeyId(); Hashtable<String, Object> requestParams; requestParams = kra.createVolatileRequest(request.getRequestId()); @@ -244,27 +244,27 @@ public class KeyRequestDAO { requestParams.put(IRequest.SECURITY_DATA_IV_STRING_IN, nonceDataStr); } - request.setExtData(ATTR_SERIALNO,keyId); + request.setExtData(ATTR_SERIALNO, keyId.toString()); queue.processRequest(request); return createKeyRequestInfo(request, uriInfo); } - public void approveRequest(String id) throws EBaseException { - IRequest request = queue.findRequest(new RequestId(id)); + public void approveRequest(RequestId id) throws EBaseException { + IRequest request = queue.findRequest(id); request.setRequestStatus(RequestStatus.APPROVED); queue.updateRequest(request); } - public void rejectRequest(String id) throws EBaseException { - IRequest request = queue.findRequest(new RequestId(id)); + public void rejectRequest(RequestId id) throws EBaseException { + IRequest request = queue.findRequest(id); request.setRequestStatus(RequestStatus.CANCELED); queue.updateRequest(request); } - public void cancelRequest(String id) throws EBaseException { - IRequest request = queue.findRequest(new RequestId(id)); + public void cancelRequest(RequestId id) throws EBaseException { + IRequest request = queue.findRequest(id); request.setRequestStatus(RequestStatus.REJECTED); queue.updateRequest(request); } @@ -276,7 +276,7 @@ public class KeyRequestDAO { ret.setRequestStatus(request.getRequestStatus().toString()); Path keyRequestPath = KeyRequestResource.class.getAnnotation(Path.class); - String rid = request.getRequestId().toString(); + RequestId rid = request.getRequestId(); UriBuilder reqBuilder = uriInfo.getBaseUriBuilder(); reqBuilder.path(keyRequestPath.value() + "/" + rid); diff --git a/pki/base/common/src/com/netscape/cms/servlet/request/model/KeyRequestInfo.java b/pki/base/common/src/com/netscape/cms/servlet/request/model/KeyRequestInfo.java index d768e2ba9..f07c302dd 100644 --- a/pki/base/common/src/com/netscape/cms/servlet/request/model/KeyRequestInfo.java +++ b/pki/base/common/src/com/netscape/cms/servlet/request/model/KeyRequestInfo.java @@ -23,6 +23,9 @@ import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; +import com.netscape.certsrv.dbs.keydb.KeyId; +import com.netscape.certsrv.request.RequestId; + @XmlRootElement(name="SecurityDataRequestInfo") @XmlAccessorType(XmlAccessType.FIELD) public class KeyRequestInfo { @@ -79,6 +82,14 @@ public class KeyRequestInfo { } /** + * @return the request ID in the requestURL + */ + public RequestId getRequestId() { + String id = requestURL.substring(requestURL.lastIndexOf("/") + 1); + return new RequestId(id); + } + + /** * @param requestURL the requestURL to set */ public void setRequestURL(String requestURL) { @@ -93,6 +104,14 @@ public class KeyRequestInfo { } /** + * @return the key ID in the keyURL + */ + public KeyId getKeyId() { + String id = keyURL.substring(keyURL.lastIndexOf("/") + 1); + return new KeyId(id); + } + + /** * @param keyURL the keyURL to set */ public void setKeyURL(String keyURL) { diff --git a/pki/base/common/src/com/netscape/cms/servlet/request/model/RecoveryRequestData.java b/pki/base/common/src/com/netscape/cms/servlet/request/model/RecoveryRequestData.java index ae8417542..80ec6d127 100644 --- a/pki/base/common/src/com/netscape/cms/servlet/request/model/RecoveryRequestData.java +++ b/pki/base/common/src/com/netscape/cms/servlet/request/model/RecoveryRequestData.java @@ -26,6 +26,12 @@ import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; + +import com.netscape.certsrv.dbs.keydb.KeyId; +import com.netscape.certsrv.dbs.keydb.KeyIdAdapter; +import com.netscape.certsrv.request.RequestId; +import com.netscape.certsrv.request.RequestIdAdapter; /** * @author alee @@ -42,10 +48,12 @@ public class RecoveryRequestData { private static final String NONCE_DATA = "nonceData"; @XmlElement - protected String keyId; + @XmlJavaTypeAdapter(KeyIdAdapter.class) + protected KeyId keyId; @XmlElement - protected String requestId; + @XmlJavaTypeAdapter(RequestIdAdapter.class) + protected RequestId requestId; @XmlElement protected String transWrappedSessionKey; @@ -61,8 +69,12 @@ public class RecoveryRequestData { } public RecoveryRequestData(MultivaluedMap<String, String> form) { - keyId = form.getFirst(KEY_ID); - requestId = form.getFirst(REQUEST_ID); + if (form.containsKey(KEY_ID)) { + keyId = new KeyId(form.getFirst(KEY_ID)); + } + if (form.containsKey(REQUEST_ID)) { + requestId = new RequestId(form.getFirst(REQUEST_ID)); + } transWrappedSessionKey = form.getFirst(TRANS_WRAPPED_SESSION_KEY); sessionWrappedPassphrase = form.getFirst(SESSION_WRAPPED_PASSPHRASE); nonceData = form.getFirst(NONCE_DATA); @@ -71,28 +83,28 @@ public class RecoveryRequestData { /** * @return the keyId */ - public String getKeyId() { + public KeyId getKeyId() { return keyId; } /** * @param keyId the keyId to set */ - public void setKeyId(String keyId) { + public void setKeyId(KeyId keyId) { this.keyId = keyId; } /** * @return the requestId */ - public String getRequestId() { + public RequestId getRequestId() { return requestId; } /** * @param requestId the requestId to set */ - public void setRequestId(String requestId) { + public void setRequestId(RequestId requestId) { this.requestId = requestId; } |