summaryrefslogtreecommitdiffstats
path: root/base/server/cms/src/com
diff options
context:
space:
mode:
authorAde Lee <alee@redhat.com>2014-01-30 10:30:49 -0500
committerAde Lee <alee@redhat.com>2014-02-04 13:37:31 -0500
commitd33998c72a34dc9f04e29ce0248fc2b7b88e0fc5 (patch)
tree2e162b63d487cf1f43102325cc466a9a2b7bbc32 /base/server/cms/src/com
parent3e48a7560406e0f4430bc620e35762bdd00099c0 (diff)
Rename KeyRequest to ResourceMessage
Refactor ResourceMessage to include classname instead of Request Type. Also changed PKIException.Data to extend ResourceMessage. Modifications to the server code to get the tests working.
Diffstat (limited to 'base/server/cms/src/com')
-rw-r--r--base/server/cms/src/com/netscape/cms/servlet/request/KeyRequestService.java36
1 files changed, 22 insertions, 14 deletions
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 6b78e69ec..dc24a4c0e 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
@@ -18,6 +18,7 @@
package com.netscape.cms.servlet.request;
+import java.lang.reflect.InvocationTargetException;
import java.math.BigInteger;
import java.net.URI;
import java.net.URISyntaxException;
@@ -38,10 +39,10 @@ import com.netscape.certsrv.apps.CMS;
import com.netscape.certsrv.base.BadRequestException;
import com.netscape.certsrv.base.EBaseException;
import com.netscape.certsrv.base.PKIException;
+import com.netscape.certsrv.base.ResourceMessage;
import com.netscape.certsrv.dbs.keydb.KeyId;
import com.netscape.certsrv.key.KeyArchivalRequest;
import com.netscape.certsrv.key.KeyRecoveryRequest;
-import com.netscape.certsrv.key.KeyRequest;
import com.netscape.certsrv.key.KeyRequestInfo;
import com.netscape.certsrv.key.KeyRequestInfoCollection;
import com.netscape.certsrv.key.KeyRequestResource;
@@ -379,22 +380,29 @@ public class KeyRequestService extends PKIService implements KeyRequestResource
@Override
public Response createRequest(MultivaluedMap<String, String> form) {
- KeyRequest data = new KeyRequest(form);
+ ResourceMessage data = new ResourceMessage(form);
return createRequest(data);
}
@Override
- public Response createRequest(KeyRequest data) {
- String requestType = data.getRequestType();
- switch(requestType) {
- case KeyRequestResource.ARCHIVAL_REQUEST:
- return archiveKey((KeyArchivalRequest) data);
- case KeyRequestResource.RECOVERY_REQUEST:
- return recoverKey((KeyRecoveryRequest) data);
- case KeyRequestResource.KEY_GENERATION_REQUEST:
- return generateSymKey((SymKeyGenerationRequest) data);
- default:
- throw new BadRequestException("Invalid request");
+ public Response createRequest(ResourceMessage data) {
+ Object request = null;
+ try {
+ Class<?> requestClazz = Class.forName(data.getClassName());
+ request = requestClazz.getDeclaredConstructor(ResourceMessage.class).newInstance(data);
+ } catch (ClassNotFoundException | NoSuchMethodException | SecurityException | InstantiationException
+ | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ throw new BadRequestException("Invalid request class." + e);
+ }
+
+ if (request instanceof KeyArchivalRequest) {
+ return archiveKey(new KeyArchivalRequest(data));
+ } else if (request instanceof KeyRecoveryRequest) {
+ return recoverKey(new KeyRecoveryRequest(data));
+ } else if (request instanceof SymKeyGenerationRequest) {
+ return generateSymKey(new SymKeyGenerationRequest(data));
+ } else {
+ throw new BadRequestException("Invalid request class.");
}
}
@@ -419,5 +427,5 @@ public class KeyRequestService extends PKIService implements KeyRequestResource
auditArchivalRequestMade(null, ILogger.FAILURE, data.getClientId());
throw new PKIException(e.toString());
}
- }
+ }
}