From a34d15a4000c70ed89cb44884b33d7c95499ebcc Mon Sep 17 00:00:00 2001 From: Ade Lee Date: Wed, 19 Feb 2014 09:43:24 -0500 Subject: Add methods to getKeyInfo and change key status --- .../src/com/netscape/certsrv/key/KeyClient.java | 10 ++++ .../netscape/certsrv/key/KeyNotFoundException.java | 62 ++++++++++++++++++++++ .../src/com/netscape/certsrv/key/KeyResource.java | 14 +++++ 3 files changed, 86 insertions(+) create mode 100644 base/common/src/com/netscape/certsrv/key/KeyNotFoundException.java (limited to 'base/common/src/com/netscape/certsrv/key') diff --git a/base/common/src/com/netscape/certsrv/key/KeyClient.java b/base/common/src/com/netscape/certsrv/key/KeyClient.java index 374b793ff..cb5d59772 100644 --- a/base/common/src/com/netscape/certsrv/key/KeyClient.java +++ b/base/common/src/com/netscape/certsrv/key/KeyClient.java @@ -187,4 +187,14 @@ public class KeyClient extends Client { Response response = keyRequestClient.cancelRequest(id); client.getEntity(response, Void.class); } + + public KeyInfo getKeyInfo(KeyId id) { + Response response = keyClient.getKeyInfo(id); + return client.getEntity(response, KeyInfo.class); + } + + public void modifyKeyStatus(KeyId id, String status) { + Response response = keyClient.modifyKeyStatus(id, status); + client.getEntity(response, Void.class); + } } diff --git a/base/common/src/com/netscape/certsrv/key/KeyNotFoundException.java b/base/common/src/com/netscape/certsrv/key/KeyNotFoundException.java new file mode 100644 index 000000000..be21aa79d --- /dev/null +++ b/base/common/src/com/netscape/certsrv/key/KeyNotFoundException.java @@ -0,0 +1,62 @@ +package com.netscape.certsrv.key; + +//--- BEGIN COPYRIGHT BLOCK --- +//This program is free software; you can redistribute it and/or modify +//it under the terms of the GNU General Public License as published by +//the Free Software Foundation; version 2 of the License. +// +//This program is distributed in the hope that it will be useful, +//but WITHOUT ANY WARRANTY; without even the implied warranty of +//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +//GNU General Public License for more details. +// +//You should have received a copy of the GNU General Public License along +//with this program; if not, write to the Free Software Foundation, Inc., +//51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +//(C) 2007 Red Hat, Inc. +//All rights reserved. +//--- END COPYRIGHT BLOCK --- + +import com.netscape.certsrv.base.ResourceNotFoundException; +import com.netscape.certsrv.dbs.keydb.KeyId; + +public class KeyNotFoundException extends ResourceNotFoundException { + + private static final long serialVersionUID = -4688477890485145493L; + + public KeyId keyID; + + public KeyNotFoundException(KeyId keyId) { + this(keyId, "Key ID " + keyId.toHexString() + " not found"); + } + + public KeyNotFoundException(KeyId keyId, String message) { + super(message); + this.keyID = keyId; + } + + public KeyNotFoundException(KeyId keyId, String message, Throwable cause) { + super(message, cause); + this.keyID = keyId; + } + + public KeyNotFoundException(Data data) { + super(data); + keyID = new KeyId(data.getAttribute("KeyId")); + } + + public Data getData() { + Data data = super.getData(); + data.setAttribute("KeyId", keyID.toString()); + return data; + } + + public KeyId getKeyId() { + return keyID; + } + + public void setRequestId(KeyId KeyId) { + this.keyID = KeyId; + } +} diff --git a/base/common/src/com/netscape/certsrv/key/KeyResource.java b/base/common/src/com/netscape/certsrv/key/KeyResource.java index 78ce15344..5b5bf7a74 100644 --- a/base/common/src/com/netscape/certsrv/key/KeyResource.java +++ b/base/common/src/com/netscape/certsrv/key/KeyResource.java @@ -15,6 +15,7 @@ import org.jboss.resteasy.annotations.ClientResponseType; import com.netscape.certsrv.acls.ACLMapping; import com.netscape.certsrv.authentication.AuthMethodMapping; +import com.netscape.certsrv.dbs.keydb.KeyId; @Path("agent/keys") @@ -38,6 +39,19 @@ public interface KeyResource { @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) public Response getActiveKeyInfo(@PathParam("clientID") String clientID); + @GET + @Path("{id}") + @ClientResponseType(entityType=KeyInfo.class) + @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + public Response getKeyInfo(@PathParam("id") KeyId id); + + @POST + @Path("{id}") + @ClientResponseType(entityType=Void.class) + @Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON }) + public Response modifyKeyStatus(@PathParam("id") KeyId id, + @QueryParam("status") String status); + /** * Used to retrieve a key * @param data -- cgit