diff options
| author | Endi S. Dewata <edewata@redhat.com> | 2014-02-17 16:07:52 -0500 |
|---|---|---|
| committer | Endi S. Dewata <edewata@redhat.com> | 2014-02-19 11:10:13 -0500 |
| commit | abda3f089591fb9db31f6ddeb174e86c6bc0fbee (patch) | |
| tree | c87095613684e80e4320426cc7bc529d01d5efbf /base/server/cms/src/com | |
| parent | f28f20174d269dc0ef8ed67fb927e7d4efad7ed2 (diff) | |
| download | pki-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/com')
| -rw-r--r-- | base/server/cms/src/com/netscape/cms/servlet/key/KeyService.java | 43 | ||||
| -rw-r--r-- | base/server/cms/src/com/netscape/cms/servlet/request/KeyRequestService.java | 18 |
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()); |
