diff options
author | Ade Lee <alee@redhat.com> | 2014-02-05 13:03:46 -0500 |
---|---|---|
committer | Ade Lee <alee@redhat.com> | 2014-02-10 11:23:27 -0500 |
commit | 552953c15e8456b0d5e5a33a65da5553d14e6853 (patch) | |
tree | 82078b75785f0833ee5120ded1140265b641b344 /base/server/cms/src/com | |
parent | b5cfe1746ca36861a0bf8039681f27275b9b9e59 (diff) | |
download | pki-552953c15e8456b0d5e5a33a65da5553d14e6853.tar.gz pki-552953c15e8456b0d5e5a33a65da5553d14e6853.tar.xz pki-552953c15e8456b0d5e5a33a65da5553d14e6853.zip |
Change the return type for KeyRequest creation operations
We will likely want to extend the REST API to allow the immediate return
of a generated key, and perhaps of a recovered key in a single step.
This change allows us to do that.
Diffstat (limited to 'base/server/cms/src/com')
-rw-r--r-- | base/server/cms/src/com/netscape/cms/servlet/key/KeyRequestDAO.java | 31 | ||||
-rw-r--r-- | base/server/cms/src/com/netscape/cms/servlet/request/KeyRequestService.java | 41 |
2 files changed, 47 insertions, 25 deletions
diff --git a/base/server/cms/src/com/netscape/cms/servlet/key/KeyRequestDAO.java b/base/server/cms/src/com/netscape/cms/servlet/key/KeyRequestDAO.java index ac728d593..7a63b113d 100644 --- a/base/server/cms/src/com/netscape/cms/servlet/key/KeyRequestDAO.java +++ b/base/server/cms/src/com/netscape/cms/servlet/key/KeyRequestDAO.java @@ -36,10 +36,12 @@ 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.key.KeyArchivalRequest; +import com.netscape.certsrv.key.KeyData; import com.netscape.certsrv.key.KeyRecoveryRequest; import com.netscape.certsrv.key.KeyRequestInfo; import com.netscape.certsrv.key.KeyRequestInfoCollection; import com.netscape.certsrv.key.KeyRequestResource; +import com.netscape.certsrv.key.KeyRequestResponse; import com.netscape.certsrv.key.KeyResource; import com.netscape.certsrv.key.SymKeyGenerationRequest; import com.netscape.certsrv.kra.IKeyRecoveryAuthority; @@ -133,7 +135,7 @@ public class KeyRequestDAO extends CMSRequestDAO { * @return info for the request submitted. * @throws EBaseException */ - public KeyRequestInfo submitRequest(KeyArchivalRequest data, UriInfo uriInfo) throws EBaseException { + public KeyRequestResponse submitRequest(KeyArchivalRequest data, UriInfo uriInfo) throws EBaseException { String clientId = data.getClientId(); String wrappedSecurityData = data.getWrappedPrivateData(); String dataType = data.getDataType(); @@ -162,7 +164,7 @@ public class KeyRequestDAO extends CMSRequestDAO { queue.markAsServiced(request); - return createKeyRequestInfo(request, uriInfo); + return createKeyRequestResponse(request, uriInfo); } /** @@ -172,7 +174,7 @@ public class KeyRequestDAO extends CMSRequestDAO { * @return info on the recovery request created * @throws EBaseException */ - public KeyRequestInfo submitRequest(KeyRecoveryRequest data, UriInfo uriInfo) throws EBaseException { + public KeyRequestResponse submitRequest(KeyRecoveryRequest data, UriInfo uriInfo) throws EBaseException { // set data using request.setExtData(field, data) String wrappedSessionKeyStr = data.getTransWrappedSessionKey(); @@ -209,10 +211,10 @@ public class KeyRequestDAO extends CMSRequestDAO { queue.processRequest(request); - return createKeyRequestInfo(request, uriInfo); + return createKeyRequestResponse(request, uriInfo); } - public KeyRequestInfo submitRequest(SymKeyGenerationRequest data, UriInfo uriInfo) throws EBaseException { + public KeyRequestResponse submitRequest(SymKeyGenerationRequest data, UriInfo uriInfo) throws EBaseException { String clientId = data.getClientId(); String algName = data.getKeyAlgorithm(); int size = data.getKeySize(); @@ -258,7 +260,7 @@ public class KeyRequestDAO extends CMSRequestDAO { queue.processRequest(request); queue.markAsServiced(request); - return createKeyRequestInfo(request, uriInfo); + return createKeyRequestResponse(request, uriInfo); } public void approveRequest(RequestId id) throws EBaseException { @@ -302,11 +304,28 @@ public class KeyRequestDAO extends CMSRequestDAO { return ret; } + private KeyData createKeyData(IRequest request, UriInfo uriInfo) { + // TODO - to be implemented when we enable one-shot generation and recovery + // with retrieval + return null; + } + + private KeyRequestResponse createKeyRequestResponse(IRequest request, UriInfo uriInfo) { + KeyRequestResponse response = new KeyRequestResponse(); + response.setRequestInfo(createKeyRequestInfo(request, uriInfo)); + response.setKeyData(createKeyData(request, uriInfo)); + return response; + } + @Override public KeyRequestInfo createCMSRequestInfo(IRequest request, UriInfo uriInfo) { return createKeyRequestInfo(request, uriInfo); } + public KeyRequestResponse createCMSRequestResponse(IRequest request, UriInfo uriInfo) { + return createKeyRequestResponse(request, uriInfo); + } + //We only care if the key exists or not private boolean doesKeyExist(String clientId, String keyStatus, UriInfo uriInfo) { String state = "active"; 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 19f053d0e..c919f10ea 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 @@ -51,6 +51,7 @@ import com.netscape.certsrv.key.KeyRecoveryRequest; import com.netscape.certsrv.key.KeyRequestInfo; import com.netscape.certsrv.key.KeyRequestInfoCollection; import com.netscape.certsrv.key.KeyRequestResource; +import com.netscape.certsrv.key.KeyRequestResponse; import com.netscape.certsrv.key.SymKeyGenerationRequest; import com.netscape.certsrv.kra.IKeyRecoveryAuthority; import com.netscape.certsrv.kra.IKeyService; @@ -176,14 +177,14 @@ public class KeyRequestService extends PKIService implements KeyRequestResource } KeyRequestDAO dao = new KeyRequestDAO(); - KeyRequestInfo info; + KeyRequestResponse response; try { - info = dao.submitRequest(data, uriInfo); - auditArchivalRequestMade(info.getRequestId(), ILogger.SUCCESS, data.getClientId()); + response = dao.submitRequest(data, uriInfo); + auditArchivalRequestMade(response.getRequestInfo().getRequestId(), ILogger.SUCCESS, data.getClientId()); return Response - .created(new URI(info.getRequestURL())) - .entity(info) + .created(new URI(response.getRequestInfo().getRequestURL())) + .entity(response) .type(MediaType.APPLICATION_XML) .build(); } catch (EBaseException | URISyntaxException e) { @@ -210,15 +211,16 @@ public class KeyRequestService extends PKIService implements KeyRequestResource throw new BadRequestException("No wrapped session key."); } KeyRequestDAO dao = new KeyRequestDAO(); - KeyRequestInfo info; + KeyRequestResponse response; try { - info = (data.getCertificate() != null)? + response = (data.getCertificate() != null)? requestKeyRecovery(data): dao.submitRequest(data, uriInfo); - auditRecoveryRequestMade(info.getRequestId(), ILogger.SUCCESS, data.getKeyId()); + auditRecoveryRequestMade(response.getRequestInfo().getRequestId(), + ILogger.SUCCESS, data.getKeyId()); return Response - .created(new URI(info.getRequestURL())) - .entity(info) + .created(new URI(response.getRequestInfo().getRequestURL())) + .entity(response) .type(MediaType.APPLICATION_XML) .build(); } catch (EBaseException | URISyntaxException e) { @@ -228,8 +230,8 @@ public class KeyRequestService extends PKIService implements KeyRequestResource } } - private KeyRequestInfo requestKeyRecovery(KeyRecoveryRequest data) { - KeyRequestInfo info = null; + private KeyRequestResponse requestKeyRecovery(KeyRecoveryRequest data) { + KeyRequestResponse response = null; if (data == null) { throw new BadRequestException("Invalid request."); } @@ -250,9 +252,9 @@ public class KeyRequestService extends PKIService implements KeyRequestResource } catch (EBaseException e) { } KeyRequestDAO dao = new KeyRequestDAO(); - info = dao.createCMSRequestInfo(request, uriInfo); + response = dao.createCMSRequestResponse(request, uriInfo); - return info; + return response; } @Override @@ -447,14 +449,15 @@ public class KeyRequestService extends PKIService implements KeyRequestResource } KeyRequestDAO dao = new KeyRequestDAO(); - KeyRequestInfo info; + KeyRequestResponse response; try { - info = dao.submitRequest(data, uriInfo); - auditSymKeyGenRequestMade(info.getRequestId(), ILogger.SUCCESS, data.getClientId()); + response = dao.submitRequest(data, uriInfo); + auditSymKeyGenRequestMade(response.getRequestInfo().getRequestId(), ILogger.SUCCESS, + data.getClientId()); return Response - .created(new URI(info.getRequestURL())) - .entity(info) + .created(new URI(response.getRequestInfo().getRequestURL())) + .entity(response) .type(MediaType.APPLICATION_XML) .build(); } catch (EBaseException | URISyntaxException e) { |