summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--base/ca/src/org/dogtagpki/server/ca/rest/CAApplication.java4
-rw-r--r--base/common/src/com/netscape/certsrv/base/PKIException.java14
-rw-r--r--base/kra/src/org/dogtagpki/server/kra/rest/KRAApplication.java4
-rw-r--r--base/ocsp/src/org/dogtagpki/server/ocsp/rest/OCSPApplication.java4
-rw-r--r--base/server/cms/src/com/netscape/cms/servlet/base/PKIService.java12
-rw-r--r--base/server/cms/src/org/dogtagpki/server/rest/PKIExceptionMapper.java26
-rw-r--r--base/tks/src/org/dogtagpki/server/tks/rest/TKSApplication.java5
-rw-r--r--base/tps-tomcat/src/org/dogtagpki/server/tps/rest/TPSApplication.java5
8 files changed, 46 insertions, 28 deletions
diff --git a/base/ca/src/org/dogtagpki/server/ca/rest/CAApplication.java b/base/ca/src/org/dogtagpki/server/ca/rest/CAApplication.java
index ef8687cc0..d73b794da 100644
--- a/base/ca/src/org/dogtagpki/server/ca/rest/CAApplication.java
+++ b/base/ca/src/org/dogtagpki/server/ca/rest/CAApplication.java
@@ -10,6 +10,7 @@ import org.dogtagpki.server.rest.AccountService;
import org.dogtagpki.server.rest.AuditService;
import org.dogtagpki.server.rest.AuthMethodInterceptor;
import org.dogtagpki.server.rest.GroupService;
+import org.dogtagpki.server.rest.PKIExceptionMapper;
import org.dogtagpki.server.rest.MessageFormatInterceptor;
import org.dogtagpki.server.rest.SecurityDomainService;
import org.dogtagpki.server.rest.SelfTestService;
@@ -19,7 +20,6 @@ import org.dogtagpki.server.rest.UserService;
import com.netscape.certsrv.apps.CMS;
import com.netscape.certsrv.base.EBaseException;
import com.netscape.certsrv.base.IConfigStore;
-import com.netscape.certsrv.base.PKIException;
public class CAApplication extends Application {
@@ -86,7 +86,7 @@ public class CAApplication extends Application {
}
// exception mapper
- classes.add(PKIException.Mapper.class);
+ classes.add(PKIExceptionMapper.class);
// interceptors
singletons.add(new AuthMethodInterceptor());
diff --git a/base/common/src/com/netscape/certsrv/base/PKIException.java b/base/common/src/com/netscape/certsrv/base/PKIException.java
index ae557d465..e9f006658 100644
--- a/base/common/src/com/netscape/certsrv/base/PKIException.java
+++ b/base/common/src/com/netscape/certsrv/base/PKIException.java
@@ -18,8 +18,6 @@
package com.netscape.certsrv.base;
import javax.ws.rs.core.Response;
-import javax.ws.rs.ext.ExceptionMapper;
-import javax.ws.rs.ext.Provider;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.annotation.XmlElement;
@@ -94,18 +92,6 @@ public class PKIException extends RuntimeException {
public String message;
}
- @Provider
- public static class Mapper implements ExceptionMapper<PKIException> {
-
- public Response toResponse(PKIException exception) {
- // convert PKIException into HTTP response
- return Response
- .status(exception.getCode())
- .entity(exception.getData())
- .build();
- }
- }
-
public static void main(String args[]) throws Exception {
Data data = new Data();
data.className = PKIException.class.getName();
diff --git a/base/kra/src/org/dogtagpki/server/kra/rest/KRAApplication.java b/base/kra/src/org/dogtagpki/server/kra/rest/KRAApplication.java
index 4f598cb99..815763cdd 100644
--- a/base/kra/src/org/dogtagpki/server/kra/rest/KRAApplication.java
+++ b/base/kra/src/org/dogtagpki/server/kra/rest/KRAApplication.java
@@ -10,6 +10,7 @@ import org.dogtagpki.server.rest.AccountService;
import org.dogtagpki.server.rest.AuditService;
import org.dogtagpki.server.rest.AuthMethodInterceptor;
import org.dogtagpki.server.rest.GroupService;
+import org.dogtagpki.server.rest.PKIExceptionMapper;
import org.dogtagpki.server.rest.MessageFormatInterceptor;
import org.dogtagpki.server.rest.SecurityDomainService;
import org.dogtagpki.server.rest.SelfTestService;
@@ -19,7 +20,6 @@ import org.dogtagpki.server.rest.UserService;
import com.netscape.certsrv.apps.CMS;
import com.netscape.certsrv.base.EBaseException;
import com.netscape.certsrv.base.IConfigStore;
-import com.netscape.certsrv.base.PKIException;
public class KRAApplication extends Application {
@@ -64,7 +64,7 @@ public class KRAApplication extends Application {
classes.add(SystemCertService.class);
// exception mapper
- classes.add(PKIException.Mapper.class);
+ classes.add(PKIExceptionMapper.class);
// interceptors
singletons.add(new AuthMethodInterceptor());
diff --git a/base/ocsp/src/org/dogtagpki/server/ocsp/rest/OCSPApplication.java b/base/ocsp/src/org/dogtagpki/server/ocsp/rest/OCSPApplication.java
index 392d923f9..1950edf29 100644
--- a/base/ocsp/src/org/dogtagpki/server/ocsp/rest/OCSPApplication.java
+++ b/base/ocsp/src/org/dogtagpki/server/ocsp/rest/OCSPApplication.java
@@ -10,6 +10,7 @@ import org.dogtagpki.server.rest.AccountService;
import org.dogtagpki.server.rest.AuditService;
import org.dogtagpki.server.rest.AuthMethodInterceptor;
import org.dogtagpki.server.rest.GroupService;
+import org.dogtagpki.server.rest.PKIExceptionMapper;
import org.dogtagpki.server.rest.MessageFormatInterceptor;
import org.dogtagpki.server.rest.SecurityDomainService;
import org.dogtagpki.server.rest.SelfTestService;
@@ -19,7 +20,6 @@ import org.dogtagpki.server.rest.UserService;
import com.netscape.certsrv.apps.CMS;
import com.netscape.certsrv.base.EBaseException;
import com.netscape.certsrv.base.IConfigStore;
-import com.netscape.certsrv.base.PKIException;
public class OCSPApplication extends Application {
@@ -60,7 +60,7 @@ public class OCSPApplication extends Application {
classes.add(SystemCertService.class);
// exception mapper
- classes.add(PKIException.Mapper.class);
+ classes.add(PKIExceptionMapper.class);
// interceptors
singletons.add(new AuthMethodInterceptor());
diff --git a/base/server/cms/src/com/netscape/cms/servlet/base/PKIService.java b/base/server/cms/src/com/netscape/cms/servlet/base/PKIService.java
index 9338b9645..866db63fd 100644
--- a/base/server/cms/src/com/netscape/cms/servlet/base/PKIService.java
+++ b/base/server/cms/src/com/netscape/cms/servlet/base/PKIService.java
@@ -87,7 +87,7 @@ public class PKIService {
return null;
}
- public MediaType getResponseFormat() {
+ public static MediaType getResponseFormat(HttpHeaders headers) {
MediaType contentType = headers.getMediaType();
List<MediaType> acceptableFormats = headers.getAcceptableMediaTypes();
@@ -104,10 +104,18 @@ public class PKIService {
} else {
responseFormat = resolveFormat(acceptableFormats);
}
- if (responseFormat == null) throw new PKIException(Response.Status.NOT_ACCEPTABLE);
+
+ if (responseFormat == null) {
+ throw new PKIException(Response.Status.NOT_ACCEPTABLE);
+ }
+
return responseFormat;
}
+ public MediaType getResponseFormat() {
+ return getResponseFormat(headers);
+ }
+
public Response createOKResponse() {
return Response
.ok()
diff --git a/base/server/cms/src/org/dogtagpki/server/rest/PKIExceptionMapper.java b/base/server/cms/src/org/dogtagpki/server/rest/PKIExceptionMapper.java
new file mode 100644
index 000000000..072ac05e6
--- /dev/null
+++ b/base/server/cms/src/org/dogtagpki/server/rest/PKIExceptionMapper.java
@@ -0,0 +1,26 @@
+package org.dogtagpki.server.rest;
+
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.ext.ExceptionMapper;
+import javax.ws.rs.ext.Provider;
+
+import com.netscape.certsrv.base.PKIException;
+import com.netscape.cms.servlet.base.PKIService;
+
+@Provider
+public class PKIExceptionMapper implements ExceptionMapper<PKIException> {
+
+ @Context
+ private HttpHeaders headers;
+
+ public Response toResponse(PKIException exception) {
+ // convert PKIException into HTTP response
+ return Response
+ .status(exception.getCode())
+ .entity(exception.getData())
+ .type(PKIService.getResponseFormat(headers))
+ .build();
+ }
+}
diff --git a/base/tks/src/org/dogtagpki/server/tks/rest/TKSApplication.java b/base/tks/src/org/dogtagpki/server/tks/rest/TKSApplication.java
index 20b10ca40..c0fdc6734 100644
--- a/base/tks/src/org/dogtagpki/server/tks/rest/TKSApplication.java
+++ b/base/tks/src/org/dogtagpki/server/tks/rest/TKSApplication.java
@@ -10,13 +10,12 @@ import org.dogtagpki.server.rest.AccountService;
import org.dogtagpki.server.rest.AuditService;
import org.dogtagpki.server.rest.AuthMethodInterceptor;
import org.dogtagpki.server.rest.GroupService;
+import org.dogtagpki.server.rest.PKIExceptionMapper;
import org.dogtagpki.server.rest.MessageFormatInterceptor;
import org.dogtagpki.server.rest.SelfTestService;
import org.dogtagpki.server.rest.SystemCertService;
import org.dogtagpki.server.rest.UserService;
-import com.netscape.certsrv.base.PKIException;
-
public class TKSApplication extends Application {
private Set<Object> singletons = new LinkedHashSet<Object>();
@@ -47,7 +46,7 @@ public class TKSApplication extends Application {
classes.add(TPSConnectorService.class);
// exception mapper
- classes.add(PKIException.Mapper.class);
+ classes.add(PKIExceptionMapper.class);
// interceptors
singletons.add(new AuthMethodInterceptor());
diff --git a/base/tps-tomcat/src/org/dogtagpki/server/tps/rest/TPSApplication.java b/base/tps-tomcat/src/org/dogtagpki/server/tps/rest/TPSApplication.java
index a8161d203..fc06fd8bb 100644
--- a/base/tps-tomcat/src/org/dogtagpki/server/tps/rest/TPSApplication.java
+++ b/base/tps-tomcat/src/org/dogtagpki/server/tps/rest/TPSApplication.java
@@ -27,14 +27,13 @@ import org.dogtagpki.server.rest.AccountService;
import org.dogtagpki.server.rest.AuditService;
import org.dogtagpki.server.rest.AuthMethodInterceptor;
import org.dogtagpki.server.rest.GroupService;
+import org.dogtagpki.server.rest.PKIExceptionMapper;
import org.dogtagpki.server.rest.MessageFormatInterceptor;
import org.dogtagpki.server.rest.SelfTestService;
import org.dogtagpki.server.rest.SystemCertService;
import org.dogtagpki.server.rest.UserService;
import org.dogtagpki.server.tps.config.ConfigService;
-import com.netscape.certsrv.base.PKIException;
-
/**
* @author Endi S. Dewata <edewata@redhat.com>
*/
@@ -87,7 +86,7 @@ public class TPSApplication extends Application {
classes.add(TokenService.class);
// exception mapper
- classes.add(PKIException.Mapper.class);
+ classes.add(PKIExceptionMapper.class);
// interceptors
singletons.add(new AuthMethodInterceptor());