summaryrefslogtreecommitdiffstats
path: root/base/server/cms/src/org/dogtagpki/server/rest/PKIExceptionMapper.java
blob: 072ac05e65679baf455ef5fa5ecb0aac4cde50dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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();
    }
}