From f28f20174d269dc0ef8ed67fb927e7d4efad7ed2 Mon Sep 17 00:00:00 2001 From: "Endi S. Dewata" Date: Fri, 14 Feb 2014 22:27:56 -0500 Subject: Added REST client for system certificates. A new REST client has been added to access system certificates. Ticket #554 --- .../src/com/netscape/certsrv/kra/KRAClient.java | 13 +----- .../netscape/certsrv/system/SystemCertClient.java | 48 ++++++++++++++++++++++ .../src/com/netscape/cms/servlet/test/DRMTest.java | 7 +++- 3 files changed, 55 insertions(+), 13 deletions(-) create mode 100644 base/common/src/com/netscape/certsrv/system/SystemCertClient.java (limited to 'base') diff --git a/base/common/src/com/netscape/certsrv/kra/KRAClient.java b/base/common/src/com/netscape/certsrv/kra/KRAClient.java index b2bced319..52ec25349 100644 --- a/base/common/src/com/netscape/certsrv/kra/KRAClient.java +++ b/base/common/src/com/netscape/certsrv/kra/KRAClient.java @@ -7,7 +7,6 @@ import java.util.List; import javax.ws.rs.core.Response; -import com.netscape.certsrv.cert.CertData; import com.netscape.certsrv.client.PKIClient; import com.netscape.certsrv.client.SubsystemClient; import com.netscape.certsrv.dbs.keydb.KeyId; @@ -26,7 +25,7 @@ import com.netscape.certsrv.key.SymKeyGenerationRequest; import com.netscape.certsrv.logging.AuditClient; import com.netscape.certsrv.request.RequestId; import com.netscape.certsrv.selftests.SelfTestClient; -import com.netscape.certsrv.system.SystemCertResource; +import com.netscape.certsrv.system.SystemCertClient; import com.netscape.certsrv.user.UserClient; import com.netscape.cmsutil.util.Utils; @@ -34,7 +33,6 @@ public class KRAClient extends SubsystemClient { private KeyResource keyClient; private KeyRequestResource keyRequestClient; - private SystemCertResource systemCertClient; public KRAClient(PKIClient client) throws URISyntaxException { super(client, "kra"); @@ -46,20 +44,13 @@ public class KRAClient extends SubsystemClient { addClient(new AuditClient(client, name)); addClient(new GroupClient(client, name)); addClient(new SelfTestClient(client, name)); + addClient(new SystemCertClient(client, name)); addClient(new UserClient(client, name)); - systemCertClient = createProxy(SystemCertResource.class); keyRequestClient = createProxy(KeyRequestResource.class); keyClient = createProxy(KeyResource.class); } - public String getTransportCert() { - Response response = systemCertClient.getTransportCert(); - CertData certData = client.getEntity(response, CertData.class); - String transportCert = certData.getEncoded(); - return transportCert; - } - public Collection listRequests(String requestState, String requestType) { KeyRequestInfoCollection infos = keyRequestClient.listRequests( requestState, requestType, null, new RequestId(0), 100, 100, 10 diff --git a/base/common/src/com/netscape/certsrv/system/SystemCertClient.java b/base/common/src/com/netscape/certsrv/system/SystemCertClient.java new file mode 100644 index 000000000..8e9e344bf --- /dev/null +++ b/base/common/src/com/netscape/certsrv/system/SystemCertClient.java @@ -0,0 +1,48 @@ +//--- 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) 2014 Red Hat, Inc. +//All rights reserved. +//--- END COPYRIGHT BLOCK --- +package com.netscape.certsrv.system; + +import java.net.URISyntaxException; + +import javax.ws.rs.core.Response; + +import com.netscape.certsrv.cert.CertData; +import com.netscape.certsrv.client.Client; +import com.netscape.certsrv.client.PKIClient; + +/** + * @author Endi S. Dewata + */ +public class SystemCertClient extends Client { + + public SystemCertResource resource; + + public SystemCertClient(PKIClient client, String subsystem) throws URISyntaxException { + super(client, subsystem, "systemcert"); + init(); + } + + public void init() throws URISyntaxException { + resource = createProxy(SystemCertResource.class); + } + + public CertData getTransportCert() { + Response response = resource.getTransportCert(); + return client.getEntity(response, CertData.class); + } +} diff --git a/base/kra/functional/src/com/netscape/cms/servlet/test/DRMTest.java b/base/kra/functional/src/com/netscape/cms/servlet/test/DRMTest.java index 30ac1a650..5e7dd855f 100644 --- a/base/kra/functional/src/com/netscape/cms/servlet/test/DRMTest.java +++ b/base/kra/functional/src/com/netscape/cms/servlet/test/DRMTest.java @@ -53,6 +53,7 @@ import com.netscape.certsrv.kra.KRAClient; import com.netscape.certsrv.request.IRequest; import com.netscape.certsrv.request.RequestId; import com.netscape.certsrv.request.RequestNotFoundException; +import com.netscape.certsrv.system.SystemCertClient; import com.netscape.cms.servlet.base.PKIService; import com.netscape.cmsutil.crypto.CryptoUtil; import com.netscape.cmsutil.util.Utils; @@ -203,12 +204,14 @@ public class DRMTest { KRAClient client; + SystemCertClient systemCertClient; try { ClientConfig config = new ClientConfig(); config.setServerURI(protocol + "://" + host + ":" + port + "/kra"); config.setCertNickname(clientCertNickname); client = new KRAClient(new PKIClient(config)); + systemCertClient = (SystemCertClient)client.getClient("systemcert"); } catch (Exception e) { e.printStackTrace(); @@ -216,7 +219,7 @@ public class DRMTest { } // Test 1: Get transport certificate from DRM - transportCert = client.getTransportCert(); + transportCert = systemCertClient.getTransportCert().getEncoded(); transportCert = transportCert.substring(PKIService.HEADER.length(), transportCert.indexOf(PKIService.TRAILER)); @@ -544,7 +547,7 @@ public class DRMTest { // Test 1: Get transport certificate from DRM - transportCert = client.getTransportCert(); + transportCert = systemCertClient.getTransportCert().getEncoded(); transportCert = transportCert.substring(PKIService.HEADER.length(), transportCert.indexOf(PKIService.TRAILER)); -- cgit