diff options
Diffstat (limited to 'base/kra/src/org/dogtagpki/server/kra/rest')
-rw-r--r-- | base/kra/src/org/dogtagpki/server/kra/rest/KeyRequestService.java | 20 | ||||
-rw-r--r-- | base/kra/src/org/dogtagpki/server/kra/rest/KeyService.java | 25 |
2 files changed, 33 insertions, 12 deletions
diff --git a/base/kra/src/org/dogtagpki/server/kra/rest/KeyRequestService.java b/base/kra/src/org/dogtagpki/server/kra/rest/KeyRequestService.java index a67ce08a5..81ebe3e88 100644 --- a/base/kra/src/org/dogtagpki/server/kra/rest/KeyRequestService.java +++ b/base/kra/src/org/dogtagpki/server/kra/rest/KeyRequestService.java @@ -34,8 +34,6 @@ import javax.ws.rs.core.Request; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; -import netscape.security.x509.X509CertImpl; - import org.mozilla.jss.crypto.SymmetricKey; import com.netscape.certsrv.apps.CMS; @@ -65,6 +63,8 @@ import com.netscape.cms.servlet.key.KeyRequestDAO; import com.netscape.cmsutil.ldap.LDAPUtil; import com.netscape.cmsutil.util.Utils; +import netscape.security.x509.X509CertImpl; + /** * @author alee * @@ -321,11 +321,11 @@ public class KeyRequestService extends PKIService implements KeyRequestResource */ @Override public Response listRequests(String requestState, String requestType, String clientKeyID, - RequestId start, Integer pageSize, Integer maxResults, Integer maxTime) { + RequestId start, Integer pageSize, Integer maxResults, Integer maxTime, String realm) { // auth and authz // get ldap filter - String filter = createSearchFilter(requestState, requestType, clientKeyID); + String filter = createSearchFilter(requestState, requestType, clientKeyID, realm); CMS.debug("listRequests: filter is " + filter); start = start == null ? new RequestId(KeyRequestService.DEFAULT_START) : start; @@ -345,13 +345,13 @@ public class KeyRequestService extends PKIService implements KeyRequestResource return createOKResponse(requests); } - private String createSearchFilter(String requestState, String requestType, String clientKeyID) { + private String createSearchFilter(String requestState, String requestType, String clientKeyID, String realm) { String filter = ""; int matches = 0; if ((requestState == null) && (requestType == null) && (clientKeyID == null)) { filter = "(requeststate=*)"; - return filter; + matches ++; } if (requestState != null) { @@ -369,6 +369,14 @@ public class KeyRequestService extends PKIService implements KeyRequestResource matches ++; } + if (realm != null) { + filter += "(realm=" + LDAPUtil.escapeFilter(realm) + ")"; + matches++; + } else { + filter += "(!(realm=*))"; + matches++; + } + if (matches > 1) { filter = "(&" + filter + ")"; } diff --git a/base/kra/src/org/dogtagpki/server/kra/rest/KeyService.java b/base/kra/src/org/dogtagpki/server/kra/rest/KeyService.java index f4445bb65..43a5f540a 100644 --- a/base/kra/src/org/dogtagpki/server/kra/rest/KeyService.java +++ b/base/kra/src/org/dogtagpki/server/kra/rest/KeyService.java @@ -399,15 +399,15 @@ public class KeyService extends PKIService implements KeyResource { */ @Override public Response listKeys(String clientKeyID, String status, Integer maxResults, Integer maxTime, - Integer start, Integer size) { + Integer start, Integer size, String realm) { String method = "KeyService.listKeys: "; CMS.debug(method + "begins."); - return createOKResponse(listKeyInfos(clientKeyID, status, maxResults, maxTime, start, size)); + return createOKResponse(listKeyInfos(clientKeyID, status, maxResults, maxTime, start, size, realm)); } public KeyInfoCollection listKeyInfos(String clientKeyID, String status, Integer maxResults, Integer maxTime, - Integer start, Integer size) { + Integer start, Integer size, String realm) { String method = "KeyService.listKeyInfos: "; String auditInfo = "KeyService.listKeyInfos; status =" + status; CMS.debug(method + "begins."); @@ -416,7 +416,7 @@ public class KeyService extends PKIService implements KeyResource { size = size == null ? DEFAULT_SIZE : size; // get ldap filter - String filter = createSearchFilter(status, clientKeyID); + String filter = createSearchFilter(status, clientKeyID, realm); CMS.debug("listKeys: filter is " + filter); maxResults = maxResults == null ? DEFAULT_MAXRESULTS : maxResults; @@ -479,6 +479,7 @@ public class KeyService extends PKIService implements KeyResource { null, null, null, + null, null ); @@ -513,6 +514,10 @@ public class KeyService extends PKIService implements KeyResource { if (rec.getPublicKeyData() != null && getPublicKey) { ret.setPublicKey(rec.getPublicKeyData()); } + String realm = rec.getRealm(); + if (realm != null) { + ret.setRealm(realm); + } Path keyPath = KeyResource.class.getAnnotation(Path.class); BigInteger serial = rec.getSerialNumber(); @@ -524,13 +529,13 @@ public class KeyService extends PKIService implements KeyResource { return ret; } - private String createSearchFilter(String status, String clientKeyID) { + private String createSearchFilter(String status, String clientKeyID, String realm) { String filter = ""; int matches = 0; if ((status == null) && (clientKeyID == null)) { filter = "(serialno=*)"; - return filter; + matches ++; } if (status != null) { @@ -543,6 +548,14 @@ public class KeyService extends PKIService implements KeyResource { matches ++; } + if (realm != null) { + filter += "(realm=" + LDAPUtil.escapeFilter(realm) + ")"; + matches ++; + } else { + filter += "(!(realm=*))"; + matches ++; + } + if (matches > 1) { filter = "(&" + filter + ")"; } |