summaryrefslogtreecommitdiffstats
path: root/base/server/cms/src
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2014-02-17 16:07:52 -0500
committerEndi S. Dewata <edewata@redhat.com>2014-02-19 11:10:13 -0500
commitabda3f089591fb9db31f6ddeb174e86c6bc0fbee (patch)
treec87095613684e80e4320426cc7bc529d01d5efbf /base/server/cms/src
parentf28f20174d269dc0ef8ed67fb927e7d4efad7ed2 (diff)
downloadpki-abda3f089591fb9db31f6ddeb174e86c6bc0fbee.tar.gz
pki-abda3f089591fb9db31f6ddeb174e86c6bc0fbee.tar.xz
pki-abda3f089591fb9db31f6ddeb174e86c6bc0fbee.zip
Updated REST interface for keys.
The REST interface for keys has been modified to return Response objects to allow better handling of server responses. Key-related methods in KRAClient have been moved into KeyClient. The DRMTest has been updated accordingly. Ticket #554
Diffstat (limited to 'base/server/cms/src')
-rw-r--r--base/server/cms/src/com/netscape/cms/servlet/key/KeyService.java43
-rw-r--r--base/server/cms/src/com/netscape/cms/servlet/request/KeyRequestService.java18
2 files changed, 45 insertions, 16 deletions
diff --git a/base/server/cms/src/com/netscape/cms/servlet/key/KeyService.java b/base/server/cms/src/com/netscape/cms/servlet/key/KeyService.java
index 20d263fff..d6f252f7b 100644
--- a/base/server/cms/src/com/netscape/cms/servlet/key/KeyService.java
+++ b/base/server/cms/src/com/netscape/cms/servlet/key/KeyService.java
@@ -22,8 +22,10 @@ package com.netscape.cms.servlet.key;
import java.math.BigInteger;
import java.net.URI;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Enumeration;
import java.util.Hashtable;
+import java.util.Iterator;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
@@ -32,6 +34,7 @@ import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Request;
+import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriBuilder;
import javax.ws.rs.core.UriInfo;
@@ -42,6 +45,7 @@ import com.netscape.certsrv.base.BadRequestException;
import com.netscape.certsrv.base.EBaseException;
import com.netscape.certsrv.base.HTTPGoneException;
import com.netscape.certsrv.base.PKIException;
+import com.netscape.certsrv.base.ResourceNotFoundException;
import com.netscape.certsrv.base.UnauthorizedException;
import com.netscape.certsrv.dbs.keydb.IKeyRecord;
import com.netscape.certsrv.dbs.keydb.IKeyRepository;
@@ -106,7 +110,7 @@ public class KeyService extends PKIService implements KeyResource {
* @return
*/
@Override
- public KeyData retrieveKey(KeyRecoveryRequest data) {
+ public Response retrieveKey(KeyRecoveryRequest data) {
if (data == null) {
CMS.debug("retrieveKey: data is null");
throw new BadRequestException("Cannot retrieve key. Invalid request");
@@ -142,12 +146,13 @@ public class KeyService extends PKIService implements KeyResource {
throw new HTTPGoneException("No key record.");
}
auditRetrieveKey(ILogger.SUCCESS, requestID, keyId, "None");
- return keyData;
+
+ return createOKResponse(keyData);
}
// retrieval - used to test integration with a browser
@Override
- public KeyData retrieveKey(MultivaluedMap<String, String> form) {
+ public Response retrieveKey(MultivaluedMap<String, String> form) {
KeyRecoveryRequest data = new KeyRecoveryRequest(form);
return retrieveKey(data);
}
@@ -323,7 +328,12 @@ public class KeyService extends PKIService implements KeyResource {
* Used to generate list of key infos based on the search parameters
*/
@Override
- public KeyInfoCollection listKeys(String clientID, String status, Integer maxResults, Integer maxTime,
+ public Response listKeys(String clientID, String status, Integer maxResults, Integer maxTime,
+ Integer start, Integer size) {
+ return createOKResponse(listKeyInfos(clientID, status, maxResults, maxTime, start, size));
+ }
+
+ public KeyInfoCollection listKeyInfos(String clientID, String status, Integer maxResults, Integer maxTime,
Integer start, Integer size) {
start = start == null ? 0 : start;
@@ -377,6 +387,31 @@ public class KeyService extends PKIService implements KeyResource {
return infos;
}
+ @Override
+ public Response getActiveKeyInfo(String clientID) {
+
+ KeyInfoCollection infos = listKeyInfos(
+ clientID,
+ "active",
+ null,
+ null,
+ null,
+ null
+ );
+
+ Collection<KeyInfo> list = infos.getEntries();
+ Iterator<KeyInfo> iter = list.iterator();
+
+ while (iter.hasNext()) {
+ KeyInfo info = iter.next();
+ if (info != null) {
+ // return the first one
+ return createOKResponse(info);
+ }
+ }
+
+ throw new ResourceNotFoundException("Key not found.");
+ }
public KeyInfo createKeyDataInfo(IKeyRecord rec) throws EBaseException {
KeyInfo ret = new KeyInfo();
diff --git a/base/server/cms/src/com/netscape/cms/servlet/request/KeyRequestService.java b/base/server/cms/src/com/netscape/cms/servlet/request/KeyRequestService.java
index de17c8a96..a81ca0acb 100644
--- a/base/server/cms/src/com/netscape/cms/servlet/request/KeyRequestService.java
+++ b/base/server/cms/src/com/netscape/cms/servlet/request/KeyRequestService.java
@@ -181,10 +181,8 @@ public class KeyRequestService extends PKIService implements KeyRequestResource
response = dao.submitRequest(data, uriInfo);
auditArchivalRequestMade(response.getRequestInfo().getRequestId(), ILogger.SUCCESS, data.getClientId());
- return Response
- .created(new URI(response.getRequestInfo().getRequestURL()))
- .entity(response)
- .build();
+ return createCreatedResponse(response, new URI(response.getRequestInfo().getRequestURL()));
+
} catch (EBaseException | URISyntaxException e) {
e.printStackTrace();
auditArchivalRequestMade(null, ILogger.FAILURE, data.getClientId());
@@ -216,10 +214,8 @@ public class KeyRequestService extends PKIService implements KeyRequestResource
auditRecoveryRequestMade(response.getRequestInfo().getRequestId(),
ILogger.SUCCESS, data.getKeyId());
- return Response
- .created(new URI(response.getRequestInfo().getRequestURL()))
- .entity(response)
- .build();
+ return createCreatedResponse(response, new URI(response.getRequestInfo().getRequestURL()));
+
} catch (EBaseException | URISyntaxException e) {
e.printStackTrace();
auditRecoveryRequestMade(null, ILogger.FAILURE, data.getKeyId());
@@ -452,10 +448,8 @@ public class KeyRequestService extends PKIService implements KeyRequestResource
auditSymKeyGenRequestMade(response.getRequestInfo().getRequestId(), ILogger.SUCCESS,
data.getClientId());
- return Response
- .created(new URI(response.getRequestInfo().getRequestURL()))
- .entity(response)
- .build();
+ return createCreatedResponse(response, new URI(response.getRequestInfo().getRequestURL()));
+
} catch (EBaseException | URISyntaxException e) {
e.printStackTrace();
auditArchivalRequestMade(null, ILogger.FAILURE, data.getClientId());