summaryrefslogtreecommitdiffstats
path: root/base/server/cms/src/com/netscape/cms/servlet/tks/TPSConnectorService.java
diff options
context:
space:
mode:
Diffstat (limited to 'base/server/cms/src/com/netscape/cms/servlet/tks/TPSConnectorService.java')
-rw-r--r--base/server/cms/src/com/netscape/cms/servlet/tks/TPSConnectorService.java38
1 files changed, 32 insertions, 6 deletions
diff --git a/base/server/cms/src/com/netscape/cms/servlet/tks/TPSConnectorService.java b/base/server/cms/src/com/netscape/cms/servlet/tks/TPSConnectorService.java
index 26f25bd4f..9351ffe60 100644
--- a/base/server/cms/src/com/netscape/cms/servlet/tks/TPSConnectorService.java
+++ b/base/server/cms/src/com/netscape/cms/servlet/tks/TPSConnectorService.java
@@ -8,6 +8,7 @@ import java.security.NoSuchAlgorithmException;
import java.security.cert.X509Certificate;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Iterator;
import java.util.TreeSet;
import javax.servlet.http.HttpServletRequest;
@@ -53,21 +54,46 @@ public class TPSConnectorService implements TPSConnectorResource {
@Context
private HttpServletRequest servletRequest;
+ public final static int DEFAULT_SIZE = 20;
+
public IUGSubsystem userGroupManager = (IUGSubsystem) CMS.getSubsystem(CMS.SUBSYSTEM_UG);
@Override
- public TPSConnectorCollection listConnectors() {
+ public TPSConnectorCollection findConnectors(Integer start, Integer size) {
try {
- TPSConnectorCollection ret = new TPSConnectorCollection();
String tpsList = cs.getString(TPS_LIST, "");
+ Iterator<String> entries = Arrays.asList(StringUtils.split(tpsList,",")).iterator();
+
+ TPSConnectorCollection response = new TPSConnectorCollection();
+ int i = 0;
+
+ // skip to the start of the page
+ for ( ; i<start && entries.hasNext(); i++) entries.next();
+
+ // return entries up to the page size
+ for ( ; i<start+size && entries.hasNext(); i++) {
+ response.addEntry(createTPSConnectorData(entries.next()));
+ }
+
+ // count the total entries
+ for ( ; entries.hasNext(); i++) entries.next();
+ response.setTotal(i);
- for (String tpsID : StringUtils.split(tpsList,",")) {
- ret.addEntry(createTPSConnectorData(tpsID));
+ if (start > 0) {
+ URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", Math.max(start-size, 0)).build();
+ response.addLink(new Link("prev", uri));
}
- return ret;
+
+ if (start+size < i) {
+ URI uri = uriInfo.getRequestUriBuilder().replaceQueryParam("start", start+size).build();
+ response.addLink(new Link("next", uri));
+ }
+
+ return response;
+
} catch (EBaseException e) {
e.printStackTrace();
- throw new PKIException("Unable to get TPS connection data" + e);
+ throw new PKIException("Unable to get TPS connection data: " + e);
}
}