diff options
| author | Ade Lee <alee@redhat.com> | 2014-02-19 09:43:24 -0500 |
|---|---|---|
| committer | Ade Lee <alee@redhat.com> | 2014-02-19 13:10:38 -0500 |
| commit | a34d15a4000c70ed89cb44884b33d7c95499ebcc (patch) | |
| tree | 352aace9ce8ad81981ae548bab5c657e967caf1a /base/server/cms/src/com | |
| parent | fda9b5c579d62498f846ab9c313ccbe1a85b0cdb (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.java | 41 |
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()); + } + } + + } |
