diff options
| author | Ade Lee <alee@redhat.com> | 2014-01-30 10:30:49 -0500 |
|---|---|---|
| committer | Ade Lee <alee@redhat.com> | 2014-02-04 13:37:31 -0500 |
| commit | d33998c72a34dc9f04e29ce0248fc2b7b88e0fc5 (patch) | |
| tree | 2e162b63d487cf1f43102325cc466a9a2b7bbc32 /base/server/cms/src/com | |
| parent | 3e48a7560406e0f4430bc620e35762bdd00099c0 (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.java | 36 |
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()); } - } + } } |
