From 058f1cf1e657ba441f1fcd590fa4cec8ca96e5b0 Mon Sep 17 00:00:00 2001 From: Fraser Tweedale Date: Tue, 1 Sep 2015 09:57:42 -0400 Subject: Lightweight CAs: REST cert request param to specify authority Add the optional "ca" query parameter for REST cert request submission. Also update the ca-cert-request-submit CLI command with an option to provide an AuthorityID. Part of: https://fedorahosted.org/pki/ticket/1213 --- .../common/src/com/netscape/certsrv/cert/CertClient.java | 16 ++++++++++++++-- .../com/netscape/certsrv/cert/CertRequestResource.java | 5 ++++- 2 files changed, 18 insertions(+), 3 deletions(-) (limited to 'base/common/src/com/netscape') diff --git a/base/common/src/com/netscape/certsrv/cert/CertClient.java b/base/common/src/com/netscape/certsrv/cert/CertClient.java index 42b04b702..1d4ccd2cf 100644 --- a/base/common/src/com/netscape/certsrv/cert/CertClient.java +++ b/base/common/src/com/netscape/certsrv/cert/CertClient.java @@ -17,16 +17,19 @@ //--- END COPYRIGHT BLOCK --- package com.netscape.certsrv.cert; +import java.io.IOException; import java.net.URISyntaxException; import javax.ws.rs.core.Response; +import com.netscape.certsrv.ca.AuthorityID; import com.netscape.certsrv.client.Client; import com.netscape.certsrv.client.PKIClient; import com.netscape.certsrv.client.SubsystemClient; import com.netscape.certsrv.dbs.certdb.CertId; import com.netscape.certsrv.profile.ProfileDataInfos; import com.netscape.certsrv.request.RequestId; +import netscape.security.x509.X500Name; /** * @author Endi S. Dewata @@ -85,8 +88,17 @@ public class CertClient extends Client { return client.getEntity(response, CertRequestInfo.class); } - public CertRequestInfos enrollRequest(CertEnrollmentRequest data) { - Response response = certRequestClient.enrollCert(data); + public CertRequestInfos enrollRequest( + CertEnrollmentRequest data, AuthorityID aid, X500Name adn) { + String aidString = aid != null ? aid.toString() : null; + String adnString = null; + if (adn != null) { + try { + adnString = adn.toLdapDNString(); + } catch (IOException e) { + } + } + Response response = certRequestClient.enrollCert(data, aidString, adnString); return client.getEntity(response, CertRequestInfos.class); } diff --git a/base/common/src/com/netscape/certsrv/cert/CertRequestResource.java b/base/common/src/com/netscape/certsrv/cert/CertRequestResource.java index 7f08b4af3..493f6f53a 100644 --- a/base/common/src/com/netscape/certsrv/cert/CertRequestResource.java +++ b/base/common/src/com/netscape/certsrv/cert/CertRequestResource.java @@ -37,7 +37,10 @@ public interface CertRequestResource { @POST @Path("certrequests") @ClientResponseType(entityType=CertRequestInfos.class) - public Response enrollCert(CertEnrollmentRequest data); + public Response enrollCert( + CertEnrollmentRequest data, + @QueryParam("issuer-id") String caIDString, + @QueryParam("issuer-dn") String caDNString); /** * Used to retrieve cert request info for a specific request -- cgit