summaryrefslogtreecommitdiffstats
path: root/base/server/cms/src/com/netscape/cms
diff options
context:
space:
mode:
authorAde Lee <alee@redhat.com>2014-02-05 13:03:46 -0500
committerAde Lee <alee@redhat.com>2014-02-10 11:23:27 -0500
commit552953c15e8456b0d5e5a33a65da5553d14e6853 (patch)
tree82078b75785f0833ee5120ded1140265b641b344 /base/server/cms/src/com/netscape/cms
parentb5cfe1746ca36861a0bf8039681f27275b9b9e59 (diff)
downloadpki-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/netscape/cms')
-rw-r--r--base/server/cms/src/com/netscape/cms/servlet/key/KeyRequestDAO.java31
-rw-r--r--base/server/cms/src/com/netscape/cms/servlet/request/KeyRequestService.java41
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) {