summaryrefslogtreecommitdiffstats
path: root/base/server/cms/src/com
diff options
context:
space:
mode:
authorAde Lee <alee@redhat.com>2014-02-19 09:43:24 -0500
committerAde Lee <alee@redhat.com>2014-02-19 13:10:38 -0500
commita34d15a4000c70ed89cb44884b33d7c95499ebcc (patch)
tree352aace9ce8ad81981ae548bab5c657e967caf1a /base/server/cms/src/com
parentfda9b5c579d62498f846ab9c313ccbe1a85b0cdb (diff)
Add methods to getKeyInfo and change key status
Diffstat (limited to 'base/server/cms/src/com')
-rw-r--r--base/server/cms/src/com/netscape/cms/servlet/key/KeyService.java41
1 files changed, 41 insertions, 0 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 d6f252f7b..31dd2c0aa 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
@@ -47,12 +47,16 @@ 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.EDBRecordNotFoundException;
+import com.netscape.certsrv.dbs.Modification;
+import com.netscape.certsrv.dbs.ModificationSet;
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.KeyData;
import com.netscape.certsrv.key.KeyInfo;
import com.netscape.certsrv.key.KeyInfoCollection;
+import com.netscape.certsrv.key.KeyNotFoundException;
import com.netscape.certsrv.key.KeyRecoveryRequest;
import com.netscape.certsrv.key.KeyRequestInfo;
import com.netscape.certsrv.key.KeyResource;
@@ -515,4 +519,41 @@ public class KeyService extends PKIService implements KeyResource {
return keyData;
}
+
+ @Override
+ public Response getKeyInfo(KeyId keyId) {
+ IKeyRecord rec = null;
+ try {
+ rec = repo.readKeyRecord(keyId.toBigInteger());
+ KeyInfo info = createKeyDataInfo(rec);
+
+ return createOKResponse(info);
+ } catch (EDBRecordNotFoundException e) {
+ throw new KeyNotFoundException(keyId);
+ } catch (Exception e) {
+ CMS.debug("Unable to retrieve key record: " + e);
+ e.printStackTrace();
+ throw new PKIException(e.getMessage());
+ }
+ }
+
+ @Override
+ public Response modifyKeyStatus(KeyId keyId, String status) {
+ try {
+
+ ModificationSet mods = new ModificationSet();
+ mods.add(IKeyRecord.ATTR_STATUS, Modification.MOD_REPLACE,
+ status);
+ repo.modifyKeyRecord(keyId.toBigInteger(), mods);
+ return createNoContentResponse();
+ } catch (EDBRecordNotFoundException e) {
+ throw new KeyNotFoundException(keyId);
+ } catch (Exception e) {
+ CMS.debug("Unable to retrieve key record: " + e);
+ e.printStackTrace();
+ throw new PKIException(e.getMessage());
+ }
+ }
+
+
}